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)
-   -   Problema al intentar ir al ultimo registro de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=67448)

schdamian 17-04-2010 22:35:22

Problema al intentar ir al ultimo registro de una tabla (solucionado)
 
Hola a todos, tengo un problema al ir al ultimo registro de una tabla, no pasa siempre pero a veces va al anteultimo, es como si no guadara el ultimo Post.

Uso delphi 2009 con Mysql y componentes ADO.

* DM1 es el DataModule.

esto se produce en el OnClick de un Button
Código Delphi [-]
  DM1.TTablaCampo.Value:= Edit1.Text;
  DM1.TTabla.Post;
  Imprimir;
  DM1.TTabla.Insert;
...sigue

el Proceso imprimir es bien simple, va al ultimo y lo manda a una impresora epson serie.

Código Delphi [-]
procedure Imprimir;
var
  TM: TextFile;
begin
  DM1.TTabla.Last;
  AssignFile(TM, 'COM1');
  Rewrite(TM);
  Write(TM, DM1.TTablaCampo.Value);
..sigue

El problema es que a veces pareciera que no hace el Last o mejor dicho lo hace pero aun no se ah grabado el post anterior antes de llamar al procedimiento Imprimir.

Lo mas raro es que intento de todo, antes de ir a last cierro la tabla y la conexion, vuelvo a abrir voy al ultimo y asi y todo algunas veces me imrpime el anteultimo, al registro lo guarda bien porque lo veo con MySQL Administrator, si cierro y abro el programa comienza a funcionar bien de nuevo.

antes de hacer Last le mande todo esto y sigue imprimiendo el anteultimo.
Código Delphi [-]
  DM1.TTabla.Active:= False;
  DM1.ADOC1.Connected:= False;
  DM1.ADOC1.Connected:= True;
  DM1.ADOC1.Close;
  DM1.ADOC1.Open();
  DM1.TTabla.Active:= True;

a ver si alguien me puede dar una mano, desde ya muchas gracias.

Caral 17-04-2010 23:37:42

Hola
Código Delphi [-]
  DM1.TTabla.Last;
  DM1.TTabla.Insert;
  DM1.TTablaCampo.Value:= Edit1.Text;
  DM1.TTabla.Post;
 // Imprimir;
...sigue
Saludos

schdamian 18-04-2010 03:43:36

Hola Caral, gracias por responder, cuando lei tu respuesta ya lo habia solucionado de otra forma, con una consulta select max(id) from tabla ese me devolvia el ultimo ID ingresado e iba derecho a ese registro antes de mandar a imprimir, calculo que tu solucion tambien funciona por ahora lo dejo asi, al cliente le quedo funcionando que era lo importante.

Muchas Gracias igualmente! Saludos!


La franja horaria es GMT +2. Ahora son las 11:18:05.

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