Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   como actualizar un solo registro en firebird 2.1? (https://www.clubdelphi.com/foros/showthread.php?t=62948)

El_Raso 22-01-2009 16:46:43

como actualizar un solo registro en firebird 2.1?
 
Que tal a todos...

DB = Firebird 2.1
Componente = FIBplus 6.8

Mi caso es el siguiente... Tengo una tabla FACTURA y DETALLEFACTURA
le asigno un numero de identificacion de la PC y luego de grabar ejecuto un Store Procedure para ponerle el numero original (el ultimo mas uno) de 4 usuario, y luego necesito leer y/o actualizar el registro para mandar a imprimir
la factura con su numero original..

He usado el Refresh y no me funciona... si uso Fullrefresh me funciona pero es muy lento y tengo que dar un LOCATE para posicionarme nuevamente en el registro que quiero imprimir...

Una idea por favor... Gracias

Al González 22-01-2009 20:33:48

¡Hola!

No he manejado los componentes FIBPlus, pero creo que se te ha presentado ese problema algo común ya y por el cual pocos se preocupan. Me he dado cuenta que muchas veces se opta por usar un "Refresh" de todo el listado, lo cual, como bien has señalado, es pesado.

En caso de que por sí mismos los FIBPlus no tengan la siguiente característica, te invito a usar TClientDataSet, ya que una ventaja más de este estupendo componente nativo es su capacidad de eliminar e insertar filas en su cursor de memoria, gracias a lo cual puedes realizar una especie de RefreshRecord consultante.

En este otro hilo StartKill llevo a cabo una exitosa implementación de ese mecanismo: http://www.clubdelphi.com/foros/showthread.php?t=62154

Espero haber orientado.

Saludos.

Al. :)

Chris 22-01-2009 20:49:23

Recuerdo que hace unas semanas tenía el mismo problema con FIB, estaba utilizando un "cacheInsert" y luego llamaba el refresh para obtener detalles de un registro que se acaba de crear en otro ventana. Sin embargo, por más que intentaba con el refresh, éste no me daba.

No recuerdo exactamente como lo resolví, y no puedo revisar pues no tengo el código fuente a mano en este momento. Pero la solución va más o menos así:
Escribí yo mismo el código SQL de refresh. Luego asigne a "False" una de estas dos propiedades "AutoRewriteSQL" o "CanChangeSQL", una de ellas, sin embargo, a como dijé anteriormete, no recuerdo exactamente. De todos modos haz la prueba y luego me comentas que has conseguido.

Saludos.

PD.: En mi caso, los código SQL para "UpdateSQL", "InsertSQL" estaban en blanco, por lo cual FIBPlus se encargaba de crearlos automáticamente, el único que especifiqué fue el "RefreshSQL", hasta donde recuerdo no tenía nada extraordinario, era el típico RefreshSQL que se utiliza en la mayoría de los Datasets.

El_Raso 23-01-2009 14:03:23

Gracias a ambos por su respuesta... D&W podrias cuando puedas hacer un esfuerzo y buscar la solucion exacta de como lo resolviste... te lo agradecere mil veces...


Un saludo...

Chris 23-01-2009 15:24:56

Cita:

Empezado por El_Raso (Mensaje 335655)
Gracias a ambos por su respuesta... D&W podrias cuando puedas hacer un esfuerzo y buscar la solucion exacta de como lo resolviste... te lo agradecere mil veces...


Un saludo...

Raso, por el momento deberías buscar x otro lado, ya que podré postear la solución exacta hasta el lunes, y auque quieras esperar, no es seguro que vaya a servir en tu caso. Por el momento sigue intentando y si de aquí al lunes no tienes una solución, con gusto comparto la mía.

Saludos.


La franja horaria es GMT +2. Ahora son las 18:34:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi