[Lazarus-es] Dudas con Zeos

Fredy Gonzales fredyg1965 en gmail.com
Lun Sep 6 19:47:47 CEST 2010


Hola,

Algo parecido me sucedio a mi con respecto al refresco, hasta que encontre una solucion de Delphi, lo cual lo aplique a lazarus y funciono.

El punto era realizar el refresco del dbgrid, para esto te agrego el procedimiento que encontre, puedes colocar este procedimiento en un modulo general, que 
siempre este referenciado en cada unidad que trabajes, tambien puedes agregarlo en tu unidad de trabajo para que veas como funciona.

Acuerdate colocar al inicio de la unidad  en Type esta instruccion

Type
THackDBGrid = class(TDBGrid);

/* Procedimiento */
procedure Refresh_gridrow(dbgrid1: TDBGrid);
var
  rowDelta: Integer;
  row: integer;
  recNo: integer;
  ds : TDataSet;
begin
  ds := THackDBGrid(dbgrid1).DataSource.DataSet;

  rowDelta := -1 + THackDBGrid(dbgrid1).Row;
  row := ds.RecNo;

  ds.Refresh;

  with ds do
  begin
    DisableControls;
    RecNo := row;
    MoveBy(-rowDelta) ;
    MoveBy(rowDelta) ;
    EnableControls;
  end;
  ds:=Nil
end;          

Ahora para usarlo te dejo un ejemplo:

procedure Tfservicios.btnNewClick(Sender: TObject);
begin

     Application.CreateForm(Tftomaservicios, ftomaservicios);
     with ftomaservicios do
           Begin
            caption:='Servicio Nuevo';
            if(ShowModal = mrOK ) Then
               Begin
                  Refresh_gridrow(dbmovimiento); // dbmovimiento es el dbgrid que contiene el enlace con el query
               end;
     end;
     FreeAndNil(ftomaservicios);
end;

Trata de probarlo y mira si es lo que necesitas.

Saludos.

FG

  ----- Original Message ----- 
  From: LEANDRO GARCIA 
  To: lazarus-es en lists.lazarus.freepascal.org 
  Sent: Monday, September 06, 2010 11:42 AM
  Subject: [Lazarus-es] Dudas con Zeos


  Hola gente de la lista, primero quisiera felicitarlos, por ser parte de esta comunidad y estar atentos a las dudas y problemas que podamos tener, mi nombre es Leandro, y desde hace un tiempo estoy incursionando en Lazarus, y como primer proyecto estoy migrando un sistema que tenia echo en Visual fox.

  Experimentando un poco con las librerias Zeos me surguio un inconveniente.

  Intentando hacer un ABM simple utilize el componente tzconection(conectado a Mysql 5), un TZQuery (siene un select con un inner join) y un TZtable, y muestro el contenido del TZQuery en un dbgrid.
  Todos configurados en tiempo de diseño.


  Uso el TZtable para guardar nuevos registros de la siguiente manera.
  tabla.Insert; 
  tabla.FieldByName('nombre').Text:=Edit1.Text; 
  tabla.Post;  

  Y los datos se guardan perfectamente en la tabla, pero el grid no me refleja los cambios, sigue mostrando el listado hasta el momento antes de agregar un registro nuevo.


  Osea, si conecto el grid con el Query el listado no es completo, si conecto el componente TZtable si se reflejan los cambios, pero no me sirve, pues yo con el query puedo mostrar otros datos extra con el inner join.
  Desde ya mil gracias, espero no sea una burrada lo q estoy intentando hacer, pero ya lo intente todo y no hay caso.
  Saludos








------------------------------------------------------------------------------


  _______________________________________________
  Lazarus-es mailing list
  Lazarus-es en lists.lazarus.freepascal.org
  http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20100906/6ab4ae37/attachment-0002.html>


More information about the Lazarus-es mailing list