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)
-   -   Introducir / Actualizar Datos en Interbase (https://www.clubdelphi.com/foros/showthread.php?t=4952)

jsc 03-11-2003 18:56:45

Introducir / Actualizar Datos en Interbase
 
Mi pregunta está relacionada con Interbase ;

Perdonar la evidencia de mis consultas, soy nuevo en esto.
Realmente necesito desarrollar un programa sencillito que actualice online los datos que se introduzcan a una Bd en Remoto de Interbase (Servidor). Consigo introducir los datos en la Bd Remota de Interbase a través Interbase accediendo desde un cliente, pero en mi aplicación, no se refrescan estos cambios hasta que no la cierro y la vuelvo a abrir.
Incluso, cuando modifico registros desde Delphi, en la Bd Interbase no veo los cambios a no ser que cierre la aplicación Delphi y haga un "commit" sobre la Bd Interbase en el servidor.
En delphi, utilizo componentes propios de Interbase (IBDatabase, IBTable, IBQuery's) y accedo a la Bd Remota directamente desde Delphi, no a través del BDE.
Creo entendido que Interbase me permite hacer esto que necesito, ¿alguien podría echarme una mano u orientarme un poco para ver lo que podría hacer ?
Espero que hayan entendido mi consulta.
Muchas gracias de antemano.
Un saludo,

judoboy 03-11-2003 19:06:42

Prueba a hacer Refresh sobre la tabla de datos que estes consultando

kinobi 03-11-2003 23:04:01

Hola,

Cita:

jsc comentó:
Incluso, cuando modifico registros desde Delphi, en la Bd Interbase no veo los cambios a no ser que cierre la aplicación Delphi y haga un "commit" sobre la Bd Interbase en el servidor.
prueba a hacer un Commit (o CommitRetaining) desde tu aplicación cliente.

No importa el método utilizado (componentes de acceso, el API InterBase, una herramienta que te permita mandar sentencias SQL al servidor, ...) todos ellos actualizan (y leen) la base de datos dentro del contexto de una transacción y, lo que es más importante, ninguna otra transacción puede ver esos cambios hasta que hayan sido confirmados (Commit). Además, desde otras transacciones sólo podrás ver esos cambios (confirmados) si tienen un nivel de aislamiento lo suficientemente bajo para verlos (READ_COMMITTED) y, evidentemente, vuelves a lanzar la consulta.

Saludos.

jachguate 04-11-2003 06:55:01

Hola amigo. Creo que te conviene leer un poco sobre transacciones SQL.

Podes bajar el nivel de aislamiento de tus transacciones a DirtyRead para conseguir lo que queres, aunque regularmente no es aconsejable. La valoración de esto, en cualquier caso, es tu responsabilidad.

Hasta luego.

;)

kinobi 04-11-2003 12:21:06

Hola,

Cita:

jachguate comentó:
Podes bajar el nivel de aislamiento de tus transacciones a DirtyRead para conseguir lo que queres, [...]
Supongo que te refieres al nivel de aislamiento de alguno de los métodos de acceso (BDE y similares) que puede utilizar para conectarse al servidor. De todas formas, un servidor InterBase no soporta niveles de aislamiento menores de READ_COMMITTED para las transacciones. Vamos, que no hay forma de ver cambios no confirmados (con Commit) de otras transacciones, aun utilizando (en el cliente) niveles de aislamiento DIRTY_READ (o READ_UNCOMMITTED, ..., o cómo quieran llamarlo).

Saludos.

jachguate 04-11-2003 14:03:24

ups...

No sabia que interbase no lo soportaba... en fin. Sorry. ;)


La franja horaria es GMT +2. Ahora son las 10:53:36.

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