<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.28.1">
</HEAD>
<BODY BGCOLOR="#ffffff">
Hola, no será que el componente trabaja sobre una transacción y el procedimiento y trigger trabajan sobre otra transaccion? <BR>
Una pregunta, abres una transacción antes de ejecutar el post en el TDataset?<BR>
<BR>
Pregunto para hacerme una idea de como puede estar trabajando el insert sobre la base de datos.<BR>
Un saludo.<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<BR>
<HR NOSHADE>
<BR>
<BR>
<B><FONT SIZE="2">ARTEX TRADING S.A.</FONT></B><BR>
<I><FONT SIZE="2">José Antonio Cuello Principal</FONT></I><BR>
<BR>
<BR>
<BR>
</TD>
</TR>
</TABLE>
El lun, 22-11-2010 a las 16:36 -0500, Ismael L. Donis García escribió:
<BLOCKQUOTE TYPE=CITE>
Estoy tratando que ingresar datos directamente sobre un grid, pero me da error el cual me dice que la llave primaría es requerida pero realmente yo la lleno en el tigger por lo que no debería dar ese error, es más si lo mando a ejecutar en consola funciona perfecto al igual que desde otros lenguajes de programación, solo en Lazarus es donde estoy enredado.
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
uso Firebird, TIBConnection, TSQLTransaction, TSQLQuery, TDataSource y TDBGrid
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
Tengo las siguientes propiedades:
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
InsertSQL := execute procedure pi_scorg(:NEW_nombre)
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
DeleteSQL := execute procedure pd_scorg(:OLD_idorg)
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
UpdateSQL := execute procedure pu_scorg(:OLD_idorg, :NEW_nombre)
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
El procedimiento pi_scorg como:
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
DECLARE VARIABLE INT_ID INTEGER; <BR>
BEGIN<BR>
/* Procedimiento para agregar los organismos */<BR>
select a.idorg from scorg a where (a.nombre = :vch_nombre) into :int_id;<BR>
if (int_id is null) then<BR>
insert into scorg (nombre) values (:vch_nombre);<BR>
else<BR>
exception e_org_e;<BR>
END
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
Y un tigger Before Insert como:
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
if (new.idorg is null) then<BR>
new.idorg = gen_id(gen_scorg_id, 1);
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
Saludos
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
=========<BR>
|| ISMAEL ||<BR>
=========
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<PRE>
_______________________________________________
Lazarus-es mailing list
<A HREF="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</A>
<A HREF="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</A>
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>