Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Actualizacion Bd (https://www.clubdelphi.com/foros/showthread.php?t=21400)

sara 16-05-2005 20:35:33

Actualizacion Bd
 
no puedo ver los cambios realizados sobre la bd hasta que salgo del ejecutable.
Me gustaria saber si pueden verse los cambios directamente porque tengo un grid y creo que debido a esto no se actualiza hasta que vuelvo a ejecutar el programa.
Gracias

vtdeleon 17-05-2005 05:01:24

Saludos.

Pon un poco del codigo que utilizas para realizar los cambios.

Que base de datos usas?
Qeu componentes usas para conectarte al mismo?

sara 17-05-2005 10:39:27

codigo grabar
 
if ((modificar.Tag=0)and (controla=true)) then
begin
with query do begin
//tabla.Last;
sql.Clear;
SQL.Add('SELECT MAX(RIG) FROM VER_CABECERAS_AVI_SAT');
open;
rig:=Fields.Fields[0].AsInteger;
//showmessage(inttostr(rig));
sql.Clear;
SQL.Add('insert into ver_cabeceras_avi_sat ');
SQL.Add('(Rig,Fecha,num_serie,cliente,contacto,recepcionado,garantia,su_referencia,tarifa,serie,id_s ,averia,descripcion,observaciones)');
SQL.Add('values(');
sql.Add(inttostr(rig+1)+',');
SQL.Add(chr(39)+formatdatetime('dd.mm.yyyy',txtfecha.DateTime)+chr(39)+',');
SQL.Add(txtnumeroserie.Text+',');
SQL.Add(txtcliente.text+',');
SQL.Add(txtcontactos.Text+',');
sql.Add(txtrecepcionado.Text+',');
sql.Add(chr(39)+txtgarantia.Text+chr(39)+',');
sql.Add(chr(39)+txtsureferencia.Text+chr(39)+',');
sql.Add('2,');
sql.Add('UPPER('+chr(39)+txtserie.Text+chr(39)+'),');
sql.Add('1,');
sql.Add(chr(39)+averia.Text+chr(39)+',');
sql.Add(chr(39)+descripcion.text+chr(39)+',');
sql.Add(chr(39)+observaciones.Text+chr(39)+')');
showmessage(sql.Text);
open;
SQL.Add('commit;');
showmessage('Aviso guardado');
sql.Clear;

end;
Esto es un poco del codigo que tengo en grabar, la tabla en la que quiero ver los cambios es VER_CABECERAS_AVI_SAT y para esto utilizo:
IBDatabase:enlazado con la bd de marathon
IBTable:que conecta con la tabla: VER_CABECERAS_AVI_SAT
IBtransaction
IBQuery:con la que hago las consultas

Para el grid tengo un DataSource enlazado a otra query en la que selecciono los campos que quiero que se vean:
SELECT avi.rig,avi.fecha,avi.cliente,ter.nombre_comercial,avi.num_serie,avi.recepcionado,avi.garantia,avi.s u_referencia,avi.observaciones,avi.descripcion,avi.notas,avi.averia
FROM ver_cabeceras_avi_sat avi, sys_terceros ter
WHERE avi.cliente=ter.tercero;
Esta query a su vez esta enlazada con el IBTable y con IBTransaction
----------------------------------------------------------------------
Si quieres saber algo mas dimelo
es que soy novata en este lenguaje

vtdeleon 17-05-2005 21:09:29

Saludos.
:rolleyes:Me imagino que usas Interbase o Firebird y tambien dos Query's. Uno para hacer movimientos y otro para consultar.

En el query que esta enlazado al grid donde quieres mostrar lo datos, abrelo y cierrarlo despues de grabar.
Ej:
Código Delphi [-]
if ((modificar.Tag=0)and (controla=true)) then
 Begin
 
  //tu Codigo para grabar
   ...
   ...
   ...
   Querydbgrid.close;
   Querydbgrid.Open;
 end;
Intenta esto haber si te funciona:p

sara 18-05-2005 11:08:46

El problema es que en la bd no se guardan los cambios hasta que salgo del ejecutable, por eso no se ven los cambios en el grid.
Si yo añado datos a la tabla no los veo hasta que salgo del ejecutable y abro la tabla de nuevo.
No se si me explico bien...
De todas formas gracias

sara 18-05-2005 12:01:49

Graciassssssssssssssssssssssssssssssssss
 
Lo he probado y si que funciona
Muchas gracias por tu ayuda

sara 18-05-2005 14:23:05

Ya que te enviado el codigo de añadir, me sabrias decir xq no graba al final de la tabla??

vtdeleon 18-05-2005 20:30:24

Saludos.

Creo que porqeu en la consulto no le especificas qeu lo organize. Supongo que el campo RIG va incrementando a medida que vas granbando, entonces en la consulta, ordenalo por este campo (ascendente o descendente) a tu gusto.

sara 19-05-2005 20:47:37

Muchas gracias, me ha servido mucho tu ayuda ;)

Nelson Polanco 19-05-2005 23:09:30

Saludos.

Tambien puedes usar Refresh despues del Commit, para refrescar los datos y poder visualizarlos.


La franja horaria es GMT +2. Ahora son las 01:08:09.

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