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)
-   -   mostrar los registros (https://www.clubdelphi.com/foros/showthread.php?t=12729)

chona 26-07-2004 15:37:19

mostrar los registros
 
Hola amigos, tengo un problemita para mostrar los registros recién cargados. desde una aplicacion delphi 5 e interbase 6.Lo hago de la siguinete manera:
Legajo:TIBTable

Para cargar los registros:
Código Delphi [-]
datamodule.DataModule1.Legajo01.Open;
datamodule.DataModule1.Legajo01.Insert;
DataModule1.Legajo01.FieldByName('tipdoc_01').AsString:=tipo_1;
...
DataModule1.Legajo01.FieldByName('observ_01').AsString:=observ.Text;
DataModule1.Legajo01.Post;
DataModule1.Legajo01.Refresh;
DataModule1.IBTransaction1.CommitRetaining;
datamodule.DataModule1.Legajo01.Close;

//y despues muestro los datos con un IBQuery llamado existe:
 
procedure TForm1.numdocExit(Sender: TObject);//evento
var campo:string;
begin
  existe.Params[0].AsString:=tipdoc.Text;
  existe.Params[1].AsString:=numdoc.Text;
  existe.Active:=true;
  if existe.RecordCount<>0 then
    begin
 
      observ.Text:=existe.FieldByName('observ_01').AsString;
      ...
      nacion.Text:=decoder(existe.FieldByName('idnaci_01').AsString);
    end;
  end.
end;
Los pasos que hago son, primero cargo un registro, despues lo quiero listar con el evento y el existe.RecordCount me da cero, sindo que recién cargue el registro. Cierro la aplicacion y la vuelvo abrir, ejecuto el evento y ahí si el existe.RecordCount me da distinto de cero. ¿Que pasa con esto?

StartKill 26-07-2004 20:28:24

Hola, en verdad no soy muy experto en esto y por lo datos que das podria deducir el problema. :)

El RecordCount te dice cuando registros hay no? humm, pero exactamente no es asi-hay que hacer alguna tarea con los registros,

Por ejemplo que tienes una grilla que solo permiten como primer plasmazo en pantalla de 4 registros el RecordCount te dira que solo hay 4, si navegas por la regilla un total de 40 registros el RecordCount te dara 40, entonces teniendo esto en cuenta: HAy que traajar con los registros (todos) si desas todos...

existe.last //si tipeas esta linea antes de contar..
if existe.RecordCount then

creo que con esto solucionas este problema.

Your friend :cool:

StartKill
Lima-Peru

chona 26-07-2004 22:50:27

El problema es que no me refresca los datos recién insertado. para que me muestre estos datos (recien insertados) tengo que cerrar la aplicacion y volver a ejecutarla.

Gydba 27-07-2004 10:58:32

Hola,

Fijáte el tipo de transacción que estás usando, de todas maneras no me fiaría del RecordCount.

Saludos!

marto 27-07-2004 11:05:43

Wop!

Te recomiendo que encierres tus trocos de código entre tags [delphi], [sql] o [code] según corresponda, de esta manera quedará mucho más legible. Ésta vez te lo he modificado yo para que veas lo bien que queda ;)

También te recomiendo que te leas la guia de estilo del club! ;)

chona 27-07-2004 17:20:45

Gracias amigos, pero ya lo solucioné. Les cuento por si le pasa a alguno, antes de activar la consulta ejecuté lo siguiente:

Código Delphi [-]
 
existe.Transaction.Active:=true;
existe.Transaction.Commit;

Gracias marto por la recomendación.


La franja horaria es GMT +2. Ahora son las 09:23:11.

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