Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-03

Error al actualizar

20 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ismael L. Donis García

Al modificar los datos de un tdbgrid me da el siguiente error:

En la propiedad UpdateSQL tengo: execute procedure pu_eaum(:entidad, :um)

En el procedimiento almacenado de la bd de firebird 2.1.3 tengo:
update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad);

Como podr�a solucionar dicho problema.

GRACIAS
=========
|| ISMAEL ||
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100315/61094dff/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 20749 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100315/61094dff/attachment-0001.jpe>

Reply by email

christian Ortiz
to Ismael L. Donis García

Al parecer tratas de modificar una llave primaria por una ya existente ...

2010/3/15 Ismael L. Donis Garc�a <ismael en citricos.co.cu>

Show quoted text 19 lines
Al modificar los datos de un tdbgrid me da el siguiente error: En la propiedad UpdateSQL tengo: execute procedure pu_eaum(:entidad, :um) En el procedimiento almacenado de la bd de firebird 2.1.3 tengo: update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); Como podr�a solucionar dicho problema. GRACIAS ========= || ISMAEL || ========= _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100315/88137451/attachment-0001.html> ------------ pr�xima parte ------------ A non-text attachment was scrubbed... Name: no disponible Type: image/jpeg Size: 20749 bytes Desc: no disponible URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100315/88137451/attachment-0001.jpe>

Reply by email

Ismael L. Donis García
to christian Ortiz

Eso es lo que dice el mensaje, pero no es cierto. Lo prob� con 2 registros y falla y al modificar uno le pongo un valor distinto al otro, pero si tiene un solo registro si me modifica sin problema, no as� cuando hay m�s de un registro. El error me lo da en la siguiente l�nea:

procedure Tdm.rsAfterPost(DataSet: TDataSet);
begin
  rs.ApplyUpdates;   // error me lo da aqu� (TSQLQuery)
  tra.CommitRetaining; // (TSQLTransaction)
end;

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 12 lines
----- Original Message ----- From: christian Ortiz To: Spanish version of Lazarus List Sent: Monday, March 15, 2010 4:07 PM Subject: Re: [Lazarus-es] Error al actualizar Al parecer tratas de modificar una llave primaria por una ya existente ... ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100316/4c854412/attachment.html>

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Tuesday, March 16, 2010, 2:23:05 PM, you wrote:

ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros y falla y al modificar uno le pongo un ILDG> valor distinto al otro, pero si tiene un solo registro si me ILDG> modifica sin problema, no as� cuando hay m�s de un registro. El ILDG> error me lo da en la siguiente l�nea:

Este tipo de errores se dan siempre por problemas de integridad de los datos, esto es, un campo con indice unico intenta crear una clave duplicada, un campo obligatorio no NULL est� con valor NULL, una referencia cruzada (foreign key) no contiene un valor v�lido, o cosas similares.

Ese error lo est� dando el SQL no el componente de Lazarus.

Best regards, Jos�

Reply by email

Maxi
to José Mejuto

El d�a 16 de marzo de 2010 13:48, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 28 lines
Hello Ismael, Tuesday, March 16, 2010, 2:23:05 PM, you wrote: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros y falla y al modificar uno le pongo un ILDG> valor distinto al otro, pero si tiene un solo registro si me ILDG> modifica sin problema, no as� cuando hay m�s de un registro. El ILDG> error me lo da en �la siguiente l�nea: Este tipo de errores se dan siempre por problemas de integridad de los datos, esto es, un campo con indice unico intenta crear una clave duplicada, un campo obligatorio no NULL est� con valor NULL, una referencia cruzada (foreign key) no contiene un valor v�lido, o cosas similares. Ese error lo est� dando el SQL no el componente de Lazarus. -- Best regards, �Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

tenes mal los parametros o los pasaste a la lista incorrectamente en el procedimiento definiste:
pu_eaum(:entidad, :um)

y en el sql pones como parametros :vch_um y :vch_entidad

update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad);

No creo que ande nunca asi.

Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to José Mejuto: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros…

Tu me disculpas pero SI est� dado en el componente porque si tengo un campo que tiene AA y otro BB y trato de cambiar el de AA por CC no puede dar ese tipo de error y sin embargo DA EL ERROR. O acaso me vas a decir que BB = CC

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 31 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 11:48 AM Subject: Re: [Lazarus-es] Error al actualizar Hello Ismael, Tuesday, March 16, 2010, 2:23:05 PM, you wrote: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros y falla y al modificar uno le pongo un ILDG> valor distinto al otro, pero si tiene un solo registro si me ILDG> modifica sin problema, no as� cuando hay m�s de un registro. El ILDG> error me lo da en la siguiente l�nea: Este tipo de errores se dan siempre por problemas de integridad de los datos, esto es, un campo con indice unico intenta crear una clave duplicada, un campo obligatorio no NULL est� con valor NULL, una referencia cruzada (foreign key) no contiene un valor v�lido, o cosas similares. Ese error lo est� dando el SQL no el componente de Lazarus. -- Best regards, Jos�

Reply by email

Ismael L. Donis García
to José Mejuto: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros…

Si quieres te paso un ejemplo que reproduce el error a tu privado. DB en Firebird 2.1.3

Lazarus-0.9.29-23803-fpc-2.4.1-20100228-win32.exe

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 31 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 11:48 AM Subject: Re: [Lazarus-es] Error al actualizar Hello Ismael, Tuesday, March 16, 2010, 2:23:05 PM, you wrote: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros y falla y al modificar uno le pongo un ILDG> valor distinto al otro, pero si tiene un solo registro si me ILDG> modifica sin problema, no as� cuando hay m�s de un registro. El ILDG> error me lo da en la siguiente l�nea: Este tipo de errores se dan siempre por problemas de integridad de los datos, esto es, un campo con indice unico intenta crear una clave duplicada, un campo obligatorio no NULL est� con valor NULL, una referencia cruzada (foreign key) no contiene un valor v�lido, o cosas similares. Ese error lo est� dando el SQL no el componente de Lazarus. -- Best regards, Jos�

Reply by email

Ismael L. Donis García
to José Mejuto: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros…

No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la siguiente forma:

SET TERM ^ ;
CREATE PROCEDURE PU_EAUM (
VCH_ENTIDAD Varchar(7),
VCH_UM Varchar(7) )
AS
begin
/* Procedimiento para modificar las unidades de medidas */

  update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad);

end^
SET TERM ; ^

GRANT EXECUTE
 ON PROCEDURE PU_EAUM TO SYSDBA;

Y lo llamo en Lazarus de la siguiente forma: execute procedure pu_eaum(:entidad, :um)

El nombre de los par�metros en Lazarus no tienen que ser igual al nombre de los par�metros dentro de la BD de firebird, lo que importa es el orden en que pases los par�metros.

:entidad y :um son los nombres de los par�metros dentro de Lazarus y vch_entidad y vch_um dentro de la BD y tanto es as� que el de insertar me funciona perfecto y lo tengo de la siguiente manera:

execute procedure pi_eaum(:entidad, :um)

mientras que dentro de la BD est� de la siguiente forma: SET TERM ^ ;
CREATE PROCEDURE PI_EAUM (
VCH_ENTIDAD Varchar(7),
VCH_UM Varchar(7) )
AS
begin
/* Procedimiento para agregar las unidades de medidas */

  insert into eaum (entidad, um) values (:vch_entidad, :vch_um);

end^
SET TERM ; ^

GRANT EXECUTE
 ON PROCEDURE PI_EAUM TO SYSDBA;

Con esa misma tabla y esos mismos par�metros creo un ejemplo en Visual Basic y funciona perfecto.

Disc�lpenme por mi respuesta, pero cr�enme aunque no conozco nada de Delphi ni de Lazarus, pero llevo m�s de 15 a�os trabajando en la l�nea de Microsoft y mis conocimientos sobre bases de datos y dem�s no son pocos que digamos.

Mis m�s sinceros saludos a todos y aun mucho m�s a los que me han ayudado o intentado ayudar en el mundo de Lazarus y del soft libre. =========
|| ISMAEL ||
=========

Earlier message 26 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 1:24 PM Subject: Re: [Lazarus-es] Error al actualizar tenes mal los parametros o los pasaste a la lista incorrectamente en el procedimiento definiste: pu_eaum(:entidad, :um) y en el sql pones como parametros :vch_um y :vch_entidad update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); No creo que ande nunca asi. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Maxi
to Ismael L. Donis García

El d�a 16 de marzo de 2010 17:27, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�:

Show quoted text 94 lines
No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la siguiente forma: SET TERM ^ ; CREATE PROCEDURE PU_EAUM ( � VCH_ENTIDAD Varchar(7), � VCH_UM Varchar(7) ) AS begin �/* Procedimiento para modificar las unidades de medidas */ �update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); end^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE PU_EAUM TO SYSDBA; Y lo llamo en Lazarus de la siguiente forma: execute procedure pu_eaum(:entidad, :um) El nombre de los par�metros en Lazarus no tienen que ser igual al nombre de los par�metros dentro de la BD de firebird, lo que importa es el orden en que pases los par�metros. :entidad y :um son los nombres de los par�metros dentro de Lazarus y vch_entidad y vch_um dentro de la BD y tanto es as� que el de insertar me funciona perfecto y lo tengo de la siguiente manera: execute procedure pi_eaum(:entidad, :um) mientras que dentro de la BD est� de la siguiente forma: SET TERM ^ ; CREATE PROCEDURE PI_EAUM ( � VCH_ENTIDAD Varchar(7), � VCH_UM Varchar(7) ) AS begin �/* Procedimiento para agregar las unidades de medidas */ �insert into eaum (entidad, um) values (:vch_entidad, :vch_um); end^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE PI_EAUM TO SYSDBA; Con esa misma tabla y esos mismos par�metros creo un ejemplo en Visual Basic y funciona perfecto. Disc�lpenme por mi respuesta, pero cr�enme aunque no conozco nada de Delphi ni de Lazarus, pero llevo m�s de 15 a�os trabajando en la l�nea de Microsoft y mis conocimientos sobre bases de datos y dem�s no son pocos que digamos. Mis m�s sinceros saludos a todos y aun mucho m�s a los que me han ayudado o intentado ayudar en el mundo de Lazarus y del soft libre. ========= || ISMAEL || ========= ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 1:24 PM Subject: Re: [Lazarus-es] Error al actualizar tenes mal los parametros o los pasaste a la lista incorrectamente en el procedimiento definiste: pu_eaum(:entidad, :um) y en el sql pones como parametros :vch_um y :vch_entidad update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); No creo que ande nunca asi. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos. _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

probaste de ejecutar el procedimiento desde la consola (flamerobin) con los mismos valores que lo haces desde el programa? Esto descartaria un problema de datos o de componente.

Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to José Mejuto: ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo ILDG> prob� con 2 registros…

Para que no tengas dudas fu� a la BD y cambi� los nombre de los par�metros por entidad y um y sigue dando el mismo error.

Repito estoy tratando con los componentes:

TIBConnection
TDatasource
TSQLQuery
TSQLTransaction

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 57 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 1:24 PM Subject: Re: [Lazarus-es] Error al actualizar El d�a 16 de marzo de 2010 13:48, Jos� Mejuto <joshyfun en gmail.com> escribi�: > Hello Ismael, > > Tuesday, March 16, 2010, 2:23:05 PM, you wrote: > > ILDG> Eso es lo que dice el mensaje, pero no es cierto. Lo > ILDG> prob� con 2 registros y falla y al modificar uno le pongo un > ILDG> valor distinto al otro, pero si tiene un solo registro si me > ILDG> modifica sin problema, no as� cuando hay m�s de un registro. El > ILDG> error me lo da en la siguiente l�nea: > > Este tipo de errores se dan siempre por problemas de integridad de los > datos, esto es, un campo con indice unico intenta crear una clave > duplicada, un campo obligatorio no NULL est� con valor NULL, una > referencia cruzada (foreign key) no contiene un valor v�lido, o cosas > similares. > > Ese error lo est� dando el SQL no el componente de Lazarus. > > -- > Best regards, > Jos� > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > tenes mal los parametros o los pasaste a la lista incorrectamente en el procedimiento definiste: pu_eaum(:entidad, :um) y en el sql pones como parametros :vch_um y :vch_entidad update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); No creo que ande nunca asi. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…

No lo hab�a realizado, pero al realizarlo el flamerobin me dio el error.

1 Mill�n de gracias. Tienes 100% de raz�n el error estaba en el procedimiento almacenado.
=========
|| ISMAEL ||
=========

Earlier message 124 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 3:31 PM Subject: Re: [Lazarus-es] Error al actualizar El d�a 16 de marzo de 2010 17:27, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�: > No no est�n mal, dentro de la base de datos tengo defino el procedimiento > de > la siguiente forma: > > SET TERM ^ ; > CREATE PROCEDURE PU_EAUM ( > VCH_ENTIDAD Varchar(7), > VCH_UM Varchar(7) ) > AS > begin > /* Procedimiento para modificar las unidades de medidas */ > update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); > end^ > SET TERM ; ^ > > GRANT EXECUTE > ON PROCEDURE PU_EAUM TO SYSDBA; > > Y lo llamo en Lazarus de la siguiente forma: execute procedure > pu_eaum(:entidad, :um) > > El nombre de los par�metros en Lazarus no tienen que ser igual al nombre > de > los par�metros dentro de la BD de firebird, lo que importa es el orden en > que pases los par�metros. > > :entidad y :um son los nombres de los par�metros dentro de Lazarus y > vch_entidad y vch_um dentro de la BD y tanto es as� que el de insertar me > funciona perfecto y lo tengo de la siguiente manera: > > execute procedure pi_eaum(:entidad, :um) > > mientras que dentro de la BD est� de la siguiente forma: > SET TERM ^ ; > CREATE PROCEDURE PI_EAUM ( > VCH_ENTIDAD Varchar(7), > VCH_UM Varchar(7) ) > AS > begin > /* Procedimiento para agregar las unidades de medidas */ > insert into eaum (entidad, um) values (:vch_entidad, :vch_um); > end^ > SET TERM ; ^ > > GRANT EXECUTE > ON PROCEDURE PI_EAUM TO SYSDBA; > > Con esa misma tabla y esos mismos par�metros creo un ejemplo en Visual > Basic > y funciona perfecto. > > Disc�lpenme por mi respuesta, pero cr�enme aunque no conozco nada de > Delphi > ni de Lazarus, pero llevo m�s de 15 a�os trabajando en la l�nea de > Microsoft > y mis conocimientos sobre bases de datos y dem�s no son pocos que digamos. > > Mis m�s sinceros saludos a todos y aun mucho m�s a los que me han ayudado > o > intentado ayudar en el mundo de Lazarus y del soft libre. > ========= > || ISMAEL || > ========= > ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Tuesday, March 16, 2010 1:24 PM > Subject: Re: [Lazarus-es] Error al actualizar > > > tenes mal los parametros o los pasaste a la lista incorrectamente > en el procedimiento definiste: > pu_eaum(:entidad, :um) > > y en el sql pones como parametros :vch_um y :vch_entidad > > update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); > > No creo que ande nunca asi. > > -- > Maximiliano Duarte > Linux User #495070 > Ubuntu User #28504 > > Tolerancia significa disculpar los defectos de los dem�s; tacto, no > reparar en ellos. > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > probaste de ejecutar el procedimiento desde la consola (flamerobin) con los mismos valores que lo haces desde el programa? Esto descartaria un problema de datos o de componente. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…

Ya lo revis� en Lazarus y funciona perfecto. Gracias reiteradas. Al revisarlo con flamerobin expuso claramente el problema.

Ahora lo que tengo pendiente es solo ver puedo obtener el valor de una celda al presionar enter dentro de un tdbgrid en el evento KeyDown?

Saludos
=========
|| ISMAEL ||
=========

Earlier message 124 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 3:31 PM Subject: Re: [Lazarus-es] Error al actualizar El d�a 16 de marzo de 2010 17:27, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�: > No no est�n mal, dentro de la base de datos tengo defino el procedimiento > de > la siguiente forma: > > SET TERM ^ ; > CREATE PROCEDURE PU_EAUM ( > VCH_ENTIDAD Varchar(7), > VCH_UM Varchar(7) ) > AS > begin > /* Procedimiento para modificar las unidades de medidas */ > update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); > end^ > SET TERM ; ^ > > GRANT EXECUTE > ON PROCEDURE PU_EAUM TO SYSDBA; > > Y lo llamo en Lazarus de la siguiente forma: execute procedure > pu_eaum(:entidad, :um) > > El nombre de los par�metros en Lazarus no tienen que ser igual al nombre > de > los par�metros dentro de la BD de firebird, lo que importa es el orden en > que pases los par�metros. > > :entidad y :um son los nombres de los par�metros dentro de Lazarus y > vch_entidad y vch_um dentro de la BD y tanto es as� que el de insertar me > funciona perfecto y lo tengo de la siguiente manera: > > execute procedure pi_eaum(:entidad, :um) > > mientras que dentro de la BD est� de la siguiente forma: > SET TERM ^ ; > CREATE PROCEDURE PI_EAUM ( > VCH_ENTIDAD Varchar(7), > VCH_UM Varchar(7) ) > AS > begin > /* Procedimiento para agregar las unidades de medidas */ > insert into eaum (entidad, um) values (:vch_entidad, :vch_um); > end^ > SET TERM ; ^ > > GRANT EXECUTE > ON PROCEDURE PI_EAUM TO SYSDBA; > > Con esa misma tabla y esos mismos par�metros creo un ejemplo en Visual > Basic > y funciona perfecto. > > Disc�lpenme por mi respuesta, pero cr�enme aunque no conozco nada de > Delphi > ni de Lazarus, pero llevo m�s de 15 a�os trabajando en la l�nea de > Microsoft > y mis conocimientos sobre bases de datos y dem�s no son pocos que digamos. > > Mis m�s sinceros saludos a todos y aun mucho m�s a los que me han ayudado > o > intentado ayudar en el mundo de Lazarus y del soft libre. > ========= > || ISMAEL || > ========= > ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Tuesday, March 16, 2010 1:24 PM > Subject: Re: [Lazarus-es] Error al actualizar > > > tenes mal los parametros o los pasaste a la lista incorrectamente > en el procedimiento definiste: > pu_eaum(:entidad, :um) > > y en el sql pones como parametros :vch_um y :vch_entidad > > update eaum set um=:vch_um where ((eaum.entidad)=:vch_entidad); > > No creo que ande nunca asi. > > -- > Maximiliano Duarte > Linux User #495070 > Ubuntu User #28504 > > Tolerancia significa disculpar los defectos de los dem�s; tacto, no > reparar en ellos. > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > probaste de ejecutar el procedimiento desde la consola (flamerobin) con los mismos valores que lo haces desde el programa? Esto descartaria un problema de datos o de componente. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

José Mejuto
to Ismael L. Donis García

Hello Ismael,

Tuesday, March 16, 2010, 11:01:40 PM, you wrote:

ILDG> Ahora lo que tengo pendiente es solo ver puedo obtener el valor de una celda ILDG> al presionar enter dentro de un tdbgrid en el evento KeyDown?

El problema que hay con esto es que no sabes que celda est�s editando, en el keydown puedes saber que fila est�s editanto consultando el dataset, pero no que columna.

Si eso te da igual y es un campo de texto se har�a as�, suministrando un editor de datos propio en vez del que crea el grid por defecto.

var
  MyEditor: TStringCellEditor;

[..........]

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  s: string;
begin
  if Key=VK_RETURN then begin
    if Assigned(MyEditor) then S:=MyEditor.Text;
    //S contiene el valor editado antes del post.
  end;
end;
procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn; var Editor: TWinControl);
begin
  if MyEditor=nil then begin
    MyEditor:=TStringCellEditor.Create(DBGrid1);
  end;
  if Column.Index=1 then begin //Columna que interesa
    Editor:=MyEditor;
  end;
end;
Best regards, Jos�

Reply by email

Maxi
to Ismael L. Donis García: Ya lo revis� en Lazarus y funciona perfecto. Gracias reiteradas. Al revisarlo con…

El d�a 16 de marzo de 2010 19:01, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�:

Ya lo revis� en Lazarus y funciona perfecto. Gracias reiteradas. Al revisarlo con flamerobin expuso claramente el problema.

Ismael, como delphizero desde sus comienzos y usuario de firebird desde la 1.5 te recomiendo lo siguiente como programador sin animo de ofencder. Tdodo procedimiento, vistas, triggers que hagas en la BD, primero probalas directamente sobre la BD desde flamerobin o cualquier consola. Despues de que estas seguro que anda lo pones a prueba desde codigo con el lenguaje que quieras. Asi evitas largos hilos con un supuesto error.
Te repieto no quiero ofender ni creerme mas listo, solo que los a�os programando ense�an que uno puede tener el error en frente y no verlo.

Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…

Gracias, por la sugerencia.

He estado una semana fuera (cumpliendo otras misiones de trabajo), reci�n llego ver� todas las sugerencias sobre lo que me queda pendiente de ver si he editado o no la celda donde tengo el cursor del TDBGrid.

Saludos cordiales a todos
=========
|| ISMAEL ||
=========

Earlier message 33 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 7:48 PM Subject: Re: [Lazarus-es] Error al actualizar El d�a 16 de marzo de 2010 19:01, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�: > Ya lo revis� en Lazarus y funciona perfecto. Gracias reiteradas. Al > revisarlo con flamerobin expuso claramente el problema. > Ismael, como delphizero desde sus comienzos y usuario de firebird desde la 1.5 te recomiendo lo siguiente como programador sin animo de ofencder. Tdodo procedimiento, vistas, triggers que hagas en la BD, primero probalas directamente sobre la BD desde flamerobin o cualquier consola. Despues de que estas seguro que anda lo pones a prueba desde codigo con el lenguaje que quieras. Asi evitas largos hilos con un supuesto error. Te repieto no quiero ofender ni creerme mas listo, solo que los a�os programando ense�an que uno puede tener el error en frente y no verlo. -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…
Jos� que Unit tengo que poner en uso para la definici�n:
var
  MyEditor: TStringCellEditor;

Me da el siguiente error:

ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor"

Gracias reiteradas
=========
|| ISMAEL ||
=========

Earlier message 57 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 6:29 PM Subject: Re: [Lazarus-es] Error al actualizar Hello Ismael, Tuesday, March 16, 2010, 11:01:40 PM, you wrote: ILDG> Ahora lo que tengo pendiente es solo ver puedo obtener el valor de una celda ILDG> al presionar enter dentro de un tdbgrid en el evento KeyDown? El problema que hay con esto es que no sabes que celda est�s editando, en el keydown puedes saber que fila est�s editanto consultando el dataset, pero no que columna. Si eso te da igual y es un campo de texto se har�a as�, suministrando un editor de datos propio en vez del que crea el grid por defecto. var MyEditor: TStringCellEditor; [..........] procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var s: string; begin if Key=VK_RETURN then begin if Assigned(MyEditor) then S:=MyEditor.Text; //S contiene el valor editado antes del post. end; end; procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn; var Editor: TWinControl); begin if MyEditor=nil then begin MyEditor:=TStringCellEditor.Create(DBGrid1); end; if Column.Index=1 then begin //Columna que interesa Editor:=MyEditor; end; end; -- Best regards, Jos�

Reply by email

Maxi
to Ismael L. Donis García

El d�a 22 de marzo de 2010 13:25, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�:

Show quoted text 80 lines
Jos� que Unit tengo que poner en uso para la definici�n: var �MyEditor: TStringCellEditor; Me da el siguiente error: ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor" Gracias reiteradas ========= || ISMAEL || ========= ----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Tuesday, March 16, 2010 6:29 PM Subject: Re: [Lazarus-es] Error al actualizar Hello Ismael, Tuesday, March 16, 2010, 11:01:40 PM, you wrote: ILDG> Ahora lo que tengo pendiente es solo ver puedo obtener el valor de una celda ILDG> al presionar enter dentro de un tdbgrid en el evento KeyDown? El problema que hay con esto es que no sabes que celda est�s editando, en el keydown puedes saber que fila est�s editanto consultando el dataset, pero no que columna. Si eso te da igual y es un campo de texto se har�a as�, suministrando un editor de datos propio en vez del que crea el grid por defecto. var �MyEditor: TStringCellEditor; [..........] procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var �s: string; begin �if Key=VK_RETURN then begin � if Assigned(MyEditor) then S:=MyEditor.Text; � //S contiene el valor editado antes del post. �end; end; procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn; var Editor: TWinControl); begin �if MyEditor=nil then begin � MyEditor:=TStringCellEditor.Create(DBGrid1); �end; �if Column.Index=1 then begin //Columna que interesa � Editor:=MyEditor; �end; end; -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

insmael, tenes que usar alguno de estos eventos: onvalidate,ongettext onsettext del campo o, con ellos vas a saber que esta haciendo el usuario sobre el campo antes de que llegue a la tabla. La unidad que queres usar es de la componente dbgrid, y no le vas a poder dar mucho uso.-

Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

José Mejuto
to Ismael L. Donis García: Jos� que Unit tengo que poner en uso para la definici�n: var MyEditor:…

Hello Ismael,

Monday, March 22, 2010, 5:25:34 PM, you wrote:

ILDG> Jos� que Unit tengo que poner en uso para la definici�n: ILDG> var
ILDG> MyEditor: TStringCellEditor;
ILDG> Me da el siguiente error:
ILDG> ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor"

Grids. Ahora no tengo el fuente, lo prob� en un momento y nada m�s.

Best regards, Jos�

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…

Realmente lo que quiero es capturar en el evento KeyDown de grid cuando se presiona Enter y en ese caso verificar si se escrito algo en la celda o no.

Jos� me pas� un c�digo pero me da error cuando declaro la variable y he buscado en la literatura que tengo y no he encontrado nada que haga referencia a TStringCellEditor.

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 108 lines
----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Monday, March 22, 2010 12:47 PM Subject: Re: [Lazarus-es] Error al actualizar El d�a 22 de marzo de 2010 13:25, Ismael L. Donis Garc�a <ismael en citricos.co.cu> escribi�: > Jos� que Unit tengo que poner en uso para la definici�n: > var > MyEditor: TStringCellEditor; > > Me da el siguiente error: > > ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor" > > Gracias reiteradas > ========= > || ISMAEL || > ========= > ----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> > To: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Sent: Tuesday, March 16, 2010 6:29 PM > Subject: Re: [Lazarus-es] Error al actualizar > > > Hello Ismael, > > Tuesday, March 16, 2010, 11:01:40 PM, you wrote: > > ILDG> Ahora lo que tengo pendiente es solo ver puedo obtener el valor de > una > celda > ILDG> al presionar enter dentro de un tdbgrid en el evento KeyDown? > > El problema que hay con esto es que no sabes que celda est�s editando, > en el keydown puedes saber que fila est�s editanto consultando el > dataset, pero no que columna. > > Si eso te da igual y es un campo de texto se har�a as�, suministrando > un editor de datos propio en vez del que crea el grid por defecto. > > var > MyEditor: TStringCellEditor; > > [..........] > > procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: > TShiftState); > var > s: string; > begin > if Key=VK_RETURN then begin > if Assigned(MyEditor) then S:=MyEditor.Text; > //S contiene el valor editado antes del post. > end; > end; > > procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn; var > Editor: TWinControl); > begin > if MyEditor=nil then begin > MyEditor:=TStringCellEditor.Create(DBGrid1); > end; > if Column.Index=1 then begin //Columna que interesa > Editor:=MyEditor; > end; > end; > > > > -- > Best regards, > Jos� > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > insmael, tenes que usar alguno de estos eventos: onvalidate,ongettext onsettext del campo o, con ellos vas a saber que esta haciendo el usuario sobre el campo antes de que llegue a la tabla. La unidad que queres usar es de la componente dbgrid, y no le vas a poder dar mucho uso.- -- Maximiliano Duarte Linux User #495070 Ubuntu User #28504 Tolerancia significa disculpar los defectos de los dem�s; tacto, no reparar en ellos.

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: No no est�n mal, dentro de la base de datos tengo defino el procedimiento de la…

Me funciona como quiero, podr�a decir que perfecto si no fuera porque si salgo del formulario y intento entrar de nuevo me saca el error en la clase External: SIGSEGV

Y me abre en el proyecto una pesta�a con el nombre de Grids y se me posiciona dando error en:

    if FEditor.Parent=nil then
      FEditor.Visible:=False;

�sea en la l�nea 2162

Tengo la versi�n:
Lazarus-0.9.29-23803-fpc-2.4.1-20100228-win32.exe

Ser� porque el grid que uso para introducir los datos es un DBGrids y no un Grids.

Tengo en uso las siguientes Units
uses
Classes, SysUtils, sqldb, db, FileUtil, LResources, Forms, Controls,

  Graphics, Dialogs, StdCtrls, DBGrids, DbCtrls, Grids;

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 25 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Monday, March 22, 2010 2:51 PM Subject: Re: [Lazarus-es] Error al actualizar Hello Ismael, Monday, March 22, 2010, 5:25:34 PM, you wrote: ILDG> Jos� que Unit tengo que poner en uso para la definici�n: ILDG> var ILDG> MyEditor: TStringCellEditor; ILDG> Me da el siguiente error: ILDG> ufrmum.pas(44,30) Error: Identifier not found "TStringCellEditor" Grids. Ahora no tengo el fuente, lo prob� en un momento y nada m�s. -- Best regards, Jos�

Reply by email