¿Cómo hacer que un dbgrid muestre los nuevos datos registrados instantáneamente?
#1
Escrito 01 agosto 2010 - 11:00
y dbgrid1.refresh;
yo suponía que al hacer esto deben aparecer los nuevos datos en el dbgrid que esta aparte después de agregar el nuevo campo y guardarlo inmediatamente debe aparecer en la lista del database grid que debo hacer para que esto suceda osea que la lista de datos registrado en el dbgrid se actualice al momento de grabarlo y aparezcan los nuevos gracias de antemano.
#2
Escrito 01 agosto 2010 - 11:14
AdoTable1.Post // Guarda AdoTable1.CheckBrowseMode // Guarda y deja la tabla en estado de edición AdoTable1.Insert // Inserta un nuevo registro en el lugar del cursor AdoTable1.Append //Inserta un nuevo registro al final de la tabla o DBGrid AdoTable1.Edit //Puedes editar (modificar tu tabla) AdoTable1.Cancel //Cancelas los cambios AdoTable1.Refresh //Actualiza los datos en todos los controles asociados
#3
Escrito 01 agosto 2010 - 11:29
Gracias pero ya lo solucione.
delphi
AdoTable1.Post // Guarda AdoTable1.CheckBrowseMode // Guarda y deja la tabla en estado de edición AdoTable1.Insert // Inserta un nuevo registro en el lugar del cursor AdoTable1.Append //Inserta un nuevo registro al final de la tabla o DBGrid AdoTable1.Edit //Puedes editar (modificar tu tabla) AdoTable1.Cancel //Cancelas los cambios AdoTable1.Refresh //Actualiza los datos en todos los controles asociados
Adotable1.close;
adotable1.open;
en secuencia hace que se actualice todo de manera automática gracias de todos modos.
#5
Escrito 01 agosto 2010 - 11:50
Saludos
#6
Escrito 01 agosto 2010 - 12:15
...
Adotable1.close;
adotable1.open;...
Ésto no es una solución, es una chapuza o trampa, llevado ahí por la desesperación. Creo que te conviene darle una vueltecita más extensa a la ayuda de ADOTable y ADOQuery, para que éste tipo de problemillas no te orillen a ser un programador tramposo. En el área de descargas me parece que todavía hay un par de documentos que hablan sobre éste tipo de componentes...
Delphi se distingue por la elegancia de su estructura y sentencias, no lo arruines.
#7
Escrito 01 agosto 2010 - 01:21
Una de las cosas que hay que pensar es en las transacciones.
Un POST, guarda los datos, pero no es tan contundente como un Commit.
En todos los motores y con todos los componentes se usa para tener un mejor control de las transacciones de la BD:
Con ado:
BeginTrans, CommitTrans, RollbackTrans.
Cada motor tiene su transaccion, pero es conveniente usarla, sobre todo si el programa lo usa mas de una persona a la vez.
Yo no me confiaria de un simple Post.
Saludos
#8
Escrito 01 agosto 2010 - 01:51
Las transacciones son muy útiles cuando hay que actualizar mas de un registro a la vez(Dígase varios Post) bien sea en la misma tabla, diferente tabla o incluso diferente Db. Por ejemplo un traslado de dinero de una cuenta bancaria a otra, el movimiento de debitar en una y acreditar en la otra debe ser completo.Hola
Una de las cosas que hay que pensar es en las transacciones.
Un POST, guarda los datos, pero no es tan contundente como un Commit.
En todos los motores y con todos los componentes se usa para tener un mejor control de las transacciones de la BD:
Con ado:
BeginTrans, CommitTrans, RollbackTrans.
Cada motor tiene su transaccion, pero es conveniente usarla, sobre todo si el programa lo usa mas de una persona a la vez.
Yo no me confiaria de un simple Post.
Saludos
En el caso particular deADO para actualizar un solo registro en una tabla, si nó se inicia una transacción explícita, la conexión la inicia "implícitamente" entonces al hacer Post si todo va bien se graba (commit) o de lo contrario devuelve un error (rollback).
Saludos
#9
Escrito 02 agosto 2010 - 02:43
Gracias pero ya lo solucione.
Adotable1.close;
adotable1.open;
en secuencia hace que se actualice todo de manera automática gracias de todos modos.
Y eso no es lo mismo que
ADOTable.Requery;
#10
Escrito 03 agosto 2010 - 08:28