[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