Delphi - ZeosLib, mysql ayuda.

 
Vista:

ZeosLib, mysql ayuda.

Publicado por Oscar (1 intervención) el 15/02/2009 22:18:42
Saludos..

Veran mi problema es el siguiente:

Tenia una aplicacion hecha para fibrebird, y usaba los controles TIBQUERY
pasando estos objetos a una funcion que solo le agrebana los comandos necesarios y ejecutaba el sql.

El problema ahora es que lo estoy pasando a Mysql. Para esto baje el ZeosDBO 6.6.4 y utiizo objetos TZQUERY, en lugar de TIBQUERY.

veran el problema surge cuando hago esto.....

en un DataModule tengo lo siguiente

mi objeto zqGridInventario (TZQUERY) y las siguientes funciones.......

//el comando es opcional.......
function TMD.ActualizarGridInventario(Comando: String): boolean;
var
Campos : String;
begin
Campos := 'ID, CVE_PROD, DESCRIPCION, STATUS, STOCK, EXISTENCIA ';
if(Comando<>'') then
begin
Result := MD.RefreshQuery( zqGridInventario, Comando );
Exit;
end;

// AQUI MARCA ACCESS VIOLATION AL OBJETO zqGridInventario, como si no existiera.
if( zqGridInventario.SQL.Text = '' ) then
begin
zqGridInventario.sql.Text := 'SELECT ' + Campos + 'FROM INVENTARIO ' +
' ORDER BY DESCRIPCION ';
end;

//aqui tambien marca access violation
if( not self.ZQGridInventario.Active ) then
zQGridInventario.Active := true;

Result := RefreshQuery( self.zqGridInventario );
end;

function TMD.RefreshQuery( Q: TZQUERY; Comando: String ): boolean;
var
Bm : TBookMarkStr;
begin

Bm := Self.GetBookMark ( Q ) ; // estas fnciones estan bien... no hay error ahi....

if(Comando<>'') then
begin
Result := Self.doSelect(Q, Comando); //funcion bien........ solo pasa el comando al objeto.
Exit;
end;

Q.Close;
Q.Open;

RestoreBookMark(Q, Bm); //regresar el cursor al registro activo.....
Result := not Q.IsEmpty;

end;//end proc.........

y en el formulario principal hago esta llamada :

procedure TfrMain.Algo();
begin
MD.ActualizarGridInventario; //se muere en las lineas marcadas......
end;

El punto es que el programa se muere marcando un error al momento de hacer una refrencia al objeto zqGridInventario, ya sea desde dentro del DataModule o desde otro formulario,
como si este objeto no se pudiera pasar como parametro a otra funcion o no se hubiera creado. Lo raro es que el objeto o compoponente si existe, y si esta asociado con un ZConnection a mysql, y si le doy active = true, el ZQGRIDINVENTARIO se habre perfectamente en tiempo de diseño, mostrando la informacion que quiero, solo en tiempo de ejecucion es cuando se muere...

cualquier ayuda de porque se muere gracias de antemano....

uso mysql 5, y mi ZConection esta configurado asi:

ZConnection1.Protocol := 'mysql'; //tambien le pongo mysql-5, y pasa igual.....
ZConnection1.Database := 'inventario';
ZConnection1.HostName := Server;
ZConnection1.user := 'root';
ZConnection1.password := 'admin';
ZConnection1.Connected := true;

ni siquiera me permite hacer esto

MD.zqGRIDInventario.close;
MD.zqGRIDInventario.Open;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Solucionado....

Publicado por Oscar (8 intervenciones) el 16/02/2009 03:17:12
Saludos..

al parecer encontre mi error, aunque tuve que bajar la version 663 de ZeosDBO y actualizar mis controles a esa version.

Parece que el problema estaba en que tenia otro data module con un control con el mismo nombre. y aunque ese Datamodule no lo usaba parece que era lo que estaba dando problemas.......asi que elimine los controles (tambie de Zeos) de ese Datamodule.

Gracias.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ZeosLib, mysql ayuda.

Publicado por Carlos Lara (1 intervención) el 31/03/2009 08:01:32
Yo estoy en el momento de enviarte respuesta, recien con Zeos, ME GUSTARIA que me envies los fuentes ejemplo, textos, como lo hiziste, etc ya que en Form1 (prueba) esta en pañales (ni eso) y hacer las pruevas y ayudarnos.

[email protected]

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar