Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-09

Dudas con Zeos

8 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

LEANDRO GARCIA

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
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100906/2190c0ba/attachment.html>

Reply by email

José Mejuto
to LEANDRO GARCIA

Hello LEANDRO,

Monday, September 6, 2010, 6:42:10 PM, you wrote:

LG> Uso el TZtable para guardar nuevos registros de la siguiente manera. LG> tabla.Insert;
LG> tabla.FieldByName('nombre').Text:=Edit1.Text;
LG> tabla.Post;
LG> Y los datos se guardan perfectamente en la tabla, pero el grid no me refleja LG> los cambios, sigue mostrando el listado hasta el momento antes de agregar un LG> registro nuevo.

Para que la otra conexi�n pueda ver los nuevos datos tienes que hacer un commit o un CommitRetaining, como prefieras, para que los datos pasen a formar parte definitiva de la base de datos, hasta que lo haces (el commit) con un rollback siempre puedes volver atr�s.

Best regards, Jos�

Reply by email

Fredy Gonzales
to LEANDRO GARCIA: Hola gente de la lista, primero quisiera felicitarlos, por ser parte de esta comunidad y…

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

Earlier message 37 lines
----- 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 ------------------------------------------------------------------------------

Reply by email

LEANDRO GARCIA
to Fredy Gonzales

Gracias Jose, Fredy.

Muy bueno el dato del procedimiento para refrescar el grid, pero aparentemente no no es un tema con el refresco, prob� el c�digo pero todo sigue igual que antes.

Jose, el commit lo aplico al Conector , al Table o atrvez del string del query a la base de datos?
En el Conector tengo habilitada la propiedad autocommit. Es raro esto, exploro la tabla con el phpmyadmin y los datos est�n!

seguramente hay algo q se me esta escapando, mientras continuo viendo q puede ser.
Saludos
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100906/e1686c63/attachment.html>

Reply by email

José Mejuto
to LEANDRO GARCIA

Hello LEANDRO,

Monday, September 6, 2010, 8:42:08 PM, you wrote:

LG> Jose, el commit lo aplico al Conector , al Table o atrvez del string del LG> query a la base de datos?

Commit es la acci�n, por ejemplo si lo haces a un query creo que es "ApplyUpdates" el que hace el commit.

LG> En el Conector tengo habilitada la propiedad autocommit.

Hmmmm... no se que es autocommit en este caso :-?

LG> Es raro esto, exploro la tabla con el phpmyadmin y los datos est�n!

Si los ves con phpadmin eso es que han sido "commit" y el "problema" lo tienes en el componente que muestra la tabla. As� que a ese componente, o al query que haya por detr�s, tendr�s que hacerle un refresh, resync o algo por el estilo.

Best regards, Jos�

Reply by email

Paola Bruccoleri

Jos�.. (perd�n el off)
ahhhh.... vos sos JoshyFun.. soy distra�da y reci�n veo tu casilla de correo... hace d�as estaba por escribir a la lista preguntando por Joshy, porque hab�a desaparecido!! :)

----Mensaje original---- De: joshyfun en gmail.com Fecha: 06/09/2010 17:23 Para: "Spanish version of Lazarus List"<lazarus-es en lists.lazarus.

freepascal.org>

Show quoted text 5 lines
Asunto: Re: [Lazarus-es] Dudas con Zeos -- Best regards, Jos�

Reply by email

Nicolas Lopez de Lerma Aymerich
to Paola Bruccoleri

Hola a todos!

EL problema es que tienes una consulta para ver en el grid, y la modificaci�n la haces directamente sobre otro componente (tabla) que no es la consulta (query), esta toma el valor del texto sql que le pongas al activarla y no se entera&#341;a de los cambios que hagas en el otro componente (tabla), aunque los grabes al disco.

Para esto yo utilizo la funci�n refresh del query, cada vez que hagas modificaciones en la tabla, refrescas el query. Esto lleva un inconveniente, y es que perder�s la posici�n actual que tiene el cursor en el grid, al refrescar el query esta se pierde, yo lo que hago es quedarme con el bookmark del query y despues de hacer el refresh vuelvo a poner la posici�n anterior con el bookmark.

Saludos.

Reply by email

José Mejuto
to Paola Bruccoleri: Jos�.. (perd�n el off) ahhhh.... vos sos JoshyFun.. soy distra�da y reci�n veo tu…

Hello Paola,

Monday, September 6, 2010, 10:41:01 PM, you wrote:

PB> Jos�.. (perd�n el off)
PB> ahhhh.... vos sos JoshyFun.. soy distra�da y reci�n veo tu casilla de PB> correo... hace d�as estaba por escribir a la lista preguntando por PB> Joshy, porque hab�a desaparecido!! :)

Simplemente he dejado de usar el "nombre de guerra" en los foros serios :)

Best regards, Jos�

Reply by email