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)
-   -   Refresh con ZeosLib (https://www.clubdelphi.com/foros/showthread.php?t=92973)

Jose Roman 06-04-2018 05:55:24

Refresh con ZeosLib
 
Cordial saludo,
Trabajo con Zeoslib, Mysql y Delphi XE7, cuando he trabajado con Firebird y FibPlus al realizar un Refresh la base de datos lo realiza bien y me muestra el registro en la posición que debe estar, es decir si esta con ORDER BY NOMBRE y se ingresa un registro Bernardo, este al hacer el refresh el registro quedará después de los registros que empiezan por A y el cursor quedara en BERNARDO, pero trato de hacer refresh con Zeoslib y no funciona, habrá alguna otra manera de hacerlo o hay q configurar a Zeoslib algo para que realice esto?

Casimiro Notevi 06-04-2018 10:01:46

Cita:

Empezado por Jose Roman (Mensaje 525490)
... pero trato de hacer refresh con Zeoslib y no funciona ...

Deberías aclarar qué quieres decir con que "no funciona".

Jose Roman 08-04-2018 03:18:14

Bueno te comento, en firebird con FIBPLUS el SelectSQL es el siguiente:
Código SQL [-]
SELECT
    CODCLIENTE,
    DOCUMENTO,
    NOMBRE,
    DIR,
    TEL1,
    TEL2,
    CELU,
    PLAZO,
    LISTA,
    TIPO
FROM
    CLIENTES
ORDER BY DOCUMENTO
El RefreshSQL lo genera automaticamente sin errores al hacer un Refresh al DataSet, asi:
Código SQL [-]
SELECT
    CODCLIENTE,
    DOCUMENTO,
    NOMBRE,
    DIR,
    TEL1,
    TEL2,
    CELU,
    PLAZO,
    LISTA,
    TIPO
FROM
    CLIENTES
 WHERE 
        CLIENTES.CODCLIENTE = :OLD_CODCLIENTE

Con ZeosLib y MySql genero el mismo SelectSQL y RefreshSQL pero al realizar el Refresh al Dataset genera este error:


No se que estara mal?

yusnerqui 08-04-2018 04:28:55

En lo personal no uso los refresh, sino que hago un close y un open de la query o tabla que deseo refrescar y listo. claro que eso tienes sus inconvenientes para regresar a la posición en la que estabas, pues nada, eso hay que currarse con los marcadores y otras marañas :)

Jose Roman 08-04-2018 04:32:59

Esa es la parte, no quedo en la posición cuando hay pocos registros no hay problema pero si hay miles?, como se trabaja con marcadores? esa no lo sabria hacer? que me aconsejas para trabajarlo

ecfisa 08-04-2018 05:46:13

Hola Jose.

Un ejemplo:
Código Delphi [-]
procedure TForm1.btnRefreshClick(Sender: TObject);
var
  BM: TBookmark;
begin
  BM := ZQuery.GetBookmark;  // guardar posicion actual
  try
    // ...
    ZQuery.Close;  // cerrar
    ZQuery.Open;   // abrir
    ZQuery.GotoBookmark(BM)  // ir a la posicion guardada
  finally
    ZQuery.FreeBookmark(BM); // liberar
  end;
end;

Saludos :)


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

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