Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2010
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Zeoslib TZTables

Buenas,

Quisiera haerles una consulta.
Tengo dos Tablas, Tabla_01 y Tabla_02, la Tabla_01 es la tabla padre y la Tabla_02 es la tabla hija.

Ahora, si en la Tabla_01 estoy en le regisitro 5 y en la Tabla_02 en el registro 10, pero cuando grabo el registro 5 de la Tabla_01, la posicion de la Tabla_02 se va hasta el final ¿porque sucede eso? y como podria evitarlo.

Conclusion si yo grabo un registro en la Tabla_01 se mueve el registro de la Tabla_02 hasta el final porque??

Gracias
Responder Con Cita
  #2  
Antiguo 21-09-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Connor.

Cita:
Empezado por connor Ver Mensaje
si yo grabo un registro en la Tabla_01 se mueve el registro de la Tabla_02 hasta el final porque??
Asumo que con grabar te refieres a llamar al método Post del componente. Pues sí que es un comportamiento raro, pero nada que no pueda investigarse con el depurador de Delphi.

No conozco gran cosa de la biblioteca ZeosLib, pero algo que se me ocurre es que uses el evento AfterScroll de la tabla detalle para colocar en él un punto de ruptura (tecla F5), el cual esté habilitado en el momento de hacer el guardado del registro maestro.

Esto para que, una vez detenido el programa en ese punto, hagas aparecer la pila de llamadas (Ctrl+Alt+S) y con ella conocer el camino que siguió el programa (que rutinas se fueron llamando en cadena), desde que hiciste el Post hasta que se llamó al evento AfterScroll (suponiendo que este evento sí es disparado cuando la tabla detalle se posiciona en el último registro).

¿Podrías hacer lo anterior y decirnos qué ves? De preferencia copia aquí la pila de llamadas que te aparece (una imagen de la misma si te resulta más fácil), para que podamos echarle un vistazo.

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 21-09-2010
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Gracias por responder,

No se como hacer lo que dices, y si, hago post en la tabla padre y en la tabla hija el registro se va hasta el final, el registro deberia quedarse en su posicion actual y no irse hasta el final, solo deberia irse hasta el principio si hiciera un scroll y no hasta el final. Esto no se como resolverlo, es un comportamiento raro como dices no se que hacer.

Otro error con los componentes zeoslib son que al insertar un nuevo registro no se refrescan las grillas se quedan con los datos anteriores, tengo que usar un afterInsert y refrescarlas manualmente.
Responder Con Cita
  #4  
Antiguo 21-09-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por connor Ver Mensaje
Gracias por responder,

No se como hacer lo que dices...
¿Cuál parte en específico? ¿Qué has investigado de lo que no comprendes? Te animo a desglosar tus dudas, pregunta.

Cita:
Empezado por connor Ver Mensaje
Otro error con los componentes zeoslib son que al insertar un nuevo registro no se refrescan las grillas se quedan con los datos anteriores, tengo que usar un afterInsert y refrescarlas manualmente.
Tema nuevo, hilo nuevo.
Responder Con Cita
  #5  
Antiguo 21-09-2010
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Mira ya decubri el error de porque pasaba eso, el problema es que yo pintaba los DDGrids en el evento DBGrid1DrawColumnCell y le quite y ahora funciona muy bien, el problema es que ahora tengo mis DBGrids Standard como vienen, la idea era "Pintar la fila seleccionada del DBGrid", ahi estaba el problema.

Código Delphi [-]
 
procedure TForm_BeEMPPRJ.DBGrid_MTRPRTDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  // Init
  DBGrid_MTRPRT.Canvas.Font.Style := [];
  DBGrid_MTRPRT.Canvas.Font.Color := clWindowText;
  if (DBGrid_MTRPRT.DataSource.DataSet.RecNo = MTRPRT_RecNo) then
    DbGrid_MTRPRT.Canvas.Brush.Color := $00EFD3C6
  else
    DbGrid_MTRPRT.Canvas.Brush.Color := clWindow;
  if (gdSelected in State) and
     (DBGrid_MTRPRT.Focused) then
  begin
    DBGrid_MTRPRT.Canvas.Font.Color := clWindow;
    DbGrid_MTRPRT.Canvas.Brush.Color := clHighlight;
  end;
  // Continue
  DBGrid_MTRPRT.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

La variable "MTRMRD_RecNo" la actualizaba en el evento Dataset "DataChage" y el DBGrid lo refrescaba en el Evento AfterScroll, quite los eventos "DrawColumnCell" y ahora si funciona claro quite todos los eventos de pintado de grilla.

Como Podria pintar un DBGrid pero solo la Fila seleccionada, he visto ejemplos aca pero no funcionan alguna idea.


Gracias

Última edición por RebeccaGL fecha: 21-09-2010 a las 19:55:04.
Responder Con Cita
  #6  
Antiguo 21-09-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
A simple vista no veo la relación entre ese evento y el posicionamiento de la tabla detalle en el último registro.

Sería muy útil que hicieras lo que te sugerí primero. En este foro, en la ayuda y en la Red en general encuentras muchos temas sobre los puntos de ruptura (breakpoints) y la pila de llamadas (call stack) del depurador de Delphi. Pero a lo visto no has estimado esa sugerencia que muy probablemente daría con la clave de por qué ocurre tal efecto.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Opiniones ZeosLib alquimista_gdl Conexión con bases de datos 20 15-03-2009 20:06:57
ZeosLIB cmm07 Varios 6 11-11-2008 01:34:35
zeoslib 6.6.2 rc geolife Noticias 17 17-08-2008 08:21:23
ZeosLib y MySQL 5 onlytk Conexión con bases de datos 2 31-12-2005 03:37:52


La franja horaria es GMT +2. Ahora son las 07:53:00.


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
Copyright 1996-2007 Club Delphi