Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conexion Zeos con delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=77241)

franroju 06-01-2012 15:13:09

Conexion Zeos con delphi 7
 
Hola. Soy nuevo en Zeos pero leyendo por estos foros vi que esta muy recomendado y decidí utilizarlo en una aplicación de prueba. Me surgió el siguiente problema:

Tengo en un form un ZConnection, un ZTable, un DataSource y un DBGrid. Creo la base de datos externamente, es decir, con un soft. de administración de base de datos, conecto las "piezas" y funciona perfectamente.

Ahora bien, quiero crear la base de datos y las tablas desde delphi, para facilitar la instalación en el cliente. Para esto utilizo un ZSQLProcessor en el cual escribo los scripts SQL, y no me informa ningún error, pero el DBGrid queda en blanco, es decir, sin datos y sin el nombre de las columnas. Como que algo falla en la conexión. Les paso el código para que vean las propiedades que modifico, tal vez olvido alguna o hago algo mal y no me doy cuenta.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ZSQLProcessor1.Script.Add('CREATE DATABASE IF NOT EXISTS prueba;');
  ZSQLProcessor1.Script.Add('USE prueba;');
  ZSQLProcessor1.Script.Add('CREATE TABLE IF NOT EXISTS `cuentacorriente` (`numero` int(9) NOT NULL, `nombre` varchar(20) NOT NULL, `monto` float(8,2) NOT NULL,  PRIMARY KEY  (`numero`));');
  ZSQLProcessor1.Execute;

  con.Database := 'prueba'; //ZConnection
  con.Catalog := 'prueba';
  con.Connect;
  con.Connected;
  ZTable1.TableName := 'cuentacorriente';
  ZTable1.Properties.Add('select * from cuentacorriente;');
  ZTable1.Active;
end;

La base de datos y la tabla las crea. Supongo que hay alguna falla con el ZTable pero no me doy cuenta cual puede ser. Hago un Showmessage de la propiedad Active de la tabla y me da 0, o sea que no queda activa y no puedo saber por qué.
Muchas gracias y espero su ayuda.

ecfisa 06-01-2012 16:01:43

Hola franroju.

No especificas con que motor de base de datos estás trabajando, pero si es Firebird, revisá este enlace:
Un saludo.

franroju 06-01-2012 17:31:37

Perdón, me olvidé ese detalle. Utilizo Mysql server 5.1

kapcomx 09-01-2012 23:38:02

conexion zeos
 
ke tal amigo, yo trabajo en zeos de la sig manera:

1. tengo un zconnection en el cual pongo las sig propiedades:

catalog: xxxx (aqui pongo el nombre que le di an dns en origenes de datos).
database: xxxx (el nombre de tu base de datos).
hostname: 192.168.x.x (aqui la ip de la maquina donde tengo instalado e mysql)
password: xxxxxxxx (password de tu usuario).
port: 3306 (el que usa por defecto MySql)
protocol: mysql-5
user: xxxxxx (el nombre de usuario que definiste para accesar a la bd desde mysql)
connect: true (desde el momento en que le das true te marca si se pudo o no conectar)

2. a tu componente ztable le debes asignar a la propiedad connection el nombre de tu zconnection y darle las sig propiedades

connection: zconection1
table: nombre de la tabla
active: true

3. si quieres verlo en un dbgrid necesitas un componente data source ( de la paleta data access) a quien le asignas en su propiedad dataset el nombre de tu ztable. a tu db grid le asignas en su propiedad data source el nombre de tu componente data source.


espero te sirva...
Saludos...

franroju 10-01-2012 14:26:32

Gracias por la respuesta kapcomx. Pero todo lo que me decís que haga está puesto en el código cuando abrí este hilo. La asociación del DBGrid con el DataSource y de este con la tabla, no es por código, por eso no la puse. Todavía no lo pude solucionar, así que si alguien me quiere ayudar, se los agradecería mucho.

beginner01 10-01-2012 17:40:37

Cita:

Empezado por franroju (Mensaje 422453)
Hola. Soy nuevo en Zeos pero leyendo por estos foros vi que esta muy recomendado y decidí utilizarlo en una aplicación de prueba. Me surgió el siguiente problema:

Tengo en un form un ZConnection, un ZTable, un DataSource y un DBGrid. Creo la base de datos externamente, es decir, con un soft. de administración de base de datos, conecto las "piezas" y funciona perfectamente.

Ahora bien, quiero crear la base de datos y las tablas desde delphi, para facilitar la instalación en el cliente. Para esto utilizo un ZSQLProcessor en el cual escribo los scripts SQL, y no me informa ningún error, pero el DBGrid queda en blanco, es decir, sin datos y sin el nombre de las columnas. Como que algo falla en la conexión. Les paso el código para que vean las propiedades que modifico, tal vez olvido alguna o hago algo mal y no me doy cuenta.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ZSQLProcessor1.Script.Add('CREATE DATABASE IF NOT EXISTS prueba;');
  ZSQLProcessor1.Script.Add('USE prueba;');
  ZSQLProcessor1.Script.Add('CREATE TABLE IF NOT EXISTS `cuentacorriente` (`numero` int(9) NOT NULL, `nombre` varchar(20) NOT NULL, `monto` float(8,2) NOT NULL,  PRIMARY KEY  (`numero`));');
  ZSQLProcessor1.Execute;

  con.Database := 'prueba'; //ZConnection
  con.Catalog := 'prueba';
  con.Connect;
  con.Connected;
  ZTable1.TableName := 'cuentacorriente';
  ZTable1.Properties.Add('select * from cuentacorriente;');
  ZTable1.Active;
end;

La base de datos y la tabla las crea. Supongo que hay alguna falla con el ZTable pero no me doy cuenta cual puede ser. Hago un Showmessage de la propiedad Active de la tabla y me da 0, o sea que no queda activa y no puedo saber por qué.
Muchas gracias y espero su ayuda.


Hola.

Prueba cambiar las líneas en rojo por esto.

Código Delphi [-]
con.Connected := True;

ZTable1.Active := True;

franroju 10-01-2012 18:08:31

Gracias beginner01, lo solucioné pero además de tu recomendación, debía anteponerle el nombre de la base al nombre de la tabla. Es decir:

Código Delphi [-]
ZTable1.TableName := 'prueba.cuentacorriente';

Muchas gracias igual!!


La franja horaria es GMT +2. Ahora son las 22:02:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi