Ir al contenido


Foto

ZEOS


  • Por favor identifícate para responder
26 respuestas en este tema

#1 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 11 mayo 2009 - 03:12

saludos a todos Sres
pregunta
se puede hacer que el zconection de ZEOS
tome los parametros de un archivo de configuracion ???
  • 0

#2 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 11 mayo 2009 - 03:16

Hola
Me imagino que te refieres a un archivo .INI.?
Si es asi, no le veo el problema.
Saludos
  • 0

#3 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 11 mayo 2009 - 03:20

sip como lo agrego
y que estructura llevaria ??
como le digo al conection que tome el .ini ?
  • 0

#4 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 11 mayo 2009 - 03:31

Hola
No tengo Zeos (lo borre  :p).
Te voy a explicar como se hace con access, el camino es practicamente el mismo, solo tendras que colocar en el INI los datos que la conexion necesite.
Primero, el zconnection se pone en un datamodule.
Segundo, se agrega al uses del datamodule IniFiles.
Tercero, se colocan las instrucciones que se necesitan en el evento OnCreate del datamodule, serian algo asi:
(en mi caso Ado)


delphi
  1. procedure TDM1.DataModuleCreate(Sender: TObject);
  2. Var Direccion, BaseDeDatos, ConStr : String;
  3.     IniFile: TIniFile;
  4. begin
  5.   // Obtiene la ruta y el nombre de la base de datos
  6.   ADOC1.Close;
  7.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'DatosEmp.ini');
  8.   Direccion :=  IniFile.ReadString('DR','Path','');
  9.   BasedeDatos := IniFile.ReadString('BDE','Path','');
  10.   If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  11.   ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  12.             'Data Source='+Direccion+BaseDeDatos+';'+
  13.             'Persist Security Info=False;'+
  14.             'Jet OLEDB:Database Password=admin';
  15.   ADOC1.ConnectionString := ConStr;
  16.   ADOC1.Open;


Cuarto y por supuesto necesario, se coloca en el INI lo que se necesita, seria algo asi:

[BD]
Path="S:\bd\Prod.MDB"
[Logon]
Auto="No"
Login=""
Pass=""

Como veras el archivo INI en este caso se llama DatosEmp.ini y la dirección esta en el path del INI.
No es muy diferente con zeos, el programa solo buscara primero el ini y luego se iniciara.
Espero te ayude.
Saludos

  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 11 mayo 2009 - 07:20

la forma de enlazarlo directamente no la hay, tienes que hacerlo por codigo tal cual te explica Carlos, si no te sale avisas para sacarte un ejemplo---
  • 0

#6 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 12 mayo 2009 - 04:52


Primero, el zconnection se pone en un datamodule.
Segundo, se agrega al uses del datamodule IniFiles.
Tercero, se colocan las instrucciones que se necesitan en el evento OnCreate del datamodule


Cuarto y por supuesto necesario, se coloca en el INI lo que se necesita


ok el ini ya kedo coketo y todo
[DB]
catalog="a"
Database="a"
hostname="192.168.254.20"
password="Mictlan"
Protocol="mysql-4.1"
user="arroyoj"
nomas que me surgieron dudas
1.- en el codigo pones inifile:=Tinifile
2.- si lo pongo en el evento on create no es un lujo inecesario cerrar la coneccion si la voy creando apenas ??
3.- en mi caso <Mysql> no tengo que usar un parametro de conecion verda ??

digo no soy tonto nomas lento
y con tanta chamba que luego le inventan  a uno aki en la office mas






  • 0

#7 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 12 mayo 2009 - 06:14

Hola

.....
nomas que me surgieron dudas
1.- en el codigo pones inifile:=Tinifile
2.- si lo pongo en el evento on create no es un lujo inecesario cerrar la coneccion si la voy creando apenas ??
3.- en mi caso <Mysql> no tengo que usar un parametro de conecion verda ??

El primer punto, SI.
El segundo punto, no entiendo a que te refieres con cerrar la conexion?, donde la cierro?, mas bien la abro, No entiendo.
El tercero punto, no entiendo.
Tal vez si lo explicas a lo Novato?.
Saludos
  • 0

#8 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 14 mayo 2009 - 01:42

[quote author=Caral link=topic=1179.msg13880#msg13880 date=1242077503]

(en mi caso Ado)


delphi
  1. procedure TDM1.DataModuleCreate(Sender: TObject);
  2. Var Direccion, BaseDeDatos, ConStr : String;
  3.     [b]IniFile: TIniFile;[/b]
  4. begin
  5.   // Obtiene la ruta y el nombre de la base de datos
  6.   [b]ADOC1.Close;[/b]
  7.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'DatosEmp.ini');
  8.   Direccion :=  IniFile.ReadString('DR','Path','');
  9.   BasedeDatos := IniFile.ReadString('BDE','Path','');
  10.   If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  11.   ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  12.             'Data Source='+Direccion+BaseDeDatos+';'+
  13.             'Persist Security Info=False;'+
  14.             'Jet OLEDB:Database Password=admin';
  15.   ADOC1.ConnectionString := ConStr;
  16.   ADOC1.Open;



marque co nnegritas donde le das close
y para que sirte el
IniFile: TIniFile
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 14 mayo 2009 - 02:30

Hola, pues es lo correcto se debe cerrar la base en caso de estar abierto porque sino existe la posibilidad de que te marque algún error. TIniFile sirve para poder crear el archivo .Ini es donde están los métodos y funciones que otorgan la creación de ese tipo de archivo.

Saludos.
  • 0

#10 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 14 mayo 2009 - 02:32

Hola
Se me adelantaron jejeje. :D
Como te dijeron, el close es por si acaso esta abierta, asi no se duplica y manda error.
Saludos

  • 0

#11 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 14 mayo 2009 - 04:46

Pues creo que sigo regandola


delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var catalog, database, hostname, password, prtocol, user : string  ;
  3. begin
  4. ZConnection1.close ;
  5. inifile:Tinifile ;
  6. inifile:=Thnifile.create(ExtractFilePath(aplication.exename)+'mysql.ini');
  7. catalog:=Inifile.ReadString('DR','catalog','');
  8. database:=Inifile.ReadString('DR','database','');
  9. hostname:=Inifile.ReadString('DR','hostname','');
  10. password:=Inifile.ReadString('DR','password','');
  11. Protocol:=Inifile.ReadString('DR','protocol','');
  12. user:=Inifile.ReadString('DR','user','');
  13. zconection1.catalog:= catalog;
  14. zconection1.database:=database;
  15. zaconectio1.hostname:= hostname;
  16. zconection1.password:=password;
  17. zconection1.protocol:=protocol;
  18. zconection1.user:=user;
  19. end;



y me dice que todo esto esta mal
[Error] Unit1.pas(52): Undeclared identifier: 'inifile'
[Error] Unit1.pas(53): Undeclared identifier: 'Thnifile'
[Error] Unit1.pas(53): Undeclared identifier: 'aplicatoin'
[Error] Unit1.pas(53): ')' expected but identifier 'exename' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

este es mi ini

[DB]
catalog="a"
database="a"
hostname="192.168.254.20"
password="Mictlan"
Protocol="mysql-4.1"
user="arroyoj"



  • 0

#12 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 14 mayo 2009 - 04:55

Hola


delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3. catalog, database, hostname, password, prtocol, user : string  ;
  4. inifile: Tinifile ;
  5. begin
  6. ZConnection1.close ;
  7. inifile:=Thnifile.create(ExtractFilePath(aplication.exename)+'mysql.ini');
  8. catalog:=Inifile.ReadString('DR','catalog','');
  9. database:=Inifile.ReadString('DR','database','');
  10. hostname:=Inifile.ReadString('DR','hostname','');
  11. password:=Inifile.ReadString('DR','password','');
  12. Protocol:=Inifile.ReadString('DR','protocol','');
  13. user:=Inifile.ReadString('DR','user','');
  14. zconection1.catalog:= catalog;
  15. zconection1.database:=database;
  16. zaconectio1.hostname:= hostname;
  17. zconection1.password:=password;
  18. zconection1.protocol:=protocol;
  19. zconection1.user:=user;
  20. ZConnection1.open ;
  21. end;


Asi, de reojo.
Saludos
  • 0

#13 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 15 mayo 2009 - 09:14

la forma de enlazarlo directamente no la hay, tienes que hacerlo por codigo tal cual te explica Carlos, si no te sale avisas para sacarte un ejemplo---

master
creo que si
si me ayudas con un ejemplo te lo agradecere mucho

GRACIAS


  • 0

#14 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 15 mayo 2009 - 02:15

El ejemplo ya te lo ha colocado Carlos, has intentado hacerlo????  si es asi dime que error te da y coloca el codigo que tienes
  • 0

#15 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 21 mayo 2009 - 12:04

perdon
pero tenia aki varias cosas que tenia pendientes y ya termine

ahora si

master me arroja estos errores

[Error] Unit1.pas(156): Undeclared identifier: 'close'
[Error] Unit1.pas(157): Undeclared identifier: 'aplication'
[Error] Unit1.pas(157): ')' expected but identifier 'exename' found

espero me puedan ayudar

GRACIAS
  • 0

#16 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 21 mayo 2009 - 12:22

Hola
A ver:
Amigo, la sintaxis es importante, el espanglish no funciona en delphi. :D
Esto es lo que tienes escrito:


delphi
  1. inifile:=Thnifile.create(ExtractFilePath(aplication.exename)+'mysql.ini');


Veamos asi:


delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3. catalog, database, hostname, password, protocol, user : string  ;
  4. inifile: TInifile ;
  5. begin
  6. ZConnection1.Close;
  7. Inifile := TInifile.Create(ExtractFilePath(Application.ExeName)+'mysql.ini');
  8. catalog:=Inifile.ReadString('DR','catalog','');
  9. database:=Inifile.ReadString('DR','database','');
  10. hostname:=Inifile.ReadString('DR','hostname','');
  11. password:=Inifile.ReadString('DR','password','');
  12. protocol:=Inifile.ReadString('DR','protocol','');
  13. user:=Inifile.ReadString('DR','user','');
  14. zconection1.catalog:= catalog;
  15. zconection1.database:=database;
  16. zaconectio1.hostname:= hostname;
  17. zconection1.password:=password;
  18. zconection1.protocol:=protocol;
  19. zconection1.user:=user;
  20. ZConnection1.open ;
  21. end;


No deberia dar problemas el Close, pero puedes quitarlo si lo amerita.
Saludos
  • 0

#17 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 21 mayo 2009 - 02:48

ok esa parte de la dedografia tienes razon zape para mi

pero ahora me dice que no encuentra el driver
ya hice una prueba
y le pedi que en unas etiquetas me ponga las variables y no pone nada osea que las variables estan vacias
como si no estuviera leyendo el archivo
el codigo quedo asi


delphi
  1. Inifile := TInifile.Create(ExtractFilePath(Application.ExeName)+'mysql.ini');
  2. catalog:=Inifile.ReadString('DR','catalog','');
  3. database:=Inifile.ReadString('DR','database','');
  4. hostname:=Inifile.ReadString('DR','hostname','');
  5. password:=Inifile.ReadString('DR','password','');
  6. protocol:=Inifile.ReadString('DR','protocol','');
  7. user:=Inifile.ReadString('DR','user','');
  8. zconnection1.catalog:= catalog;
  9. zconnection1.database:=database;
  10. zconnection1.hostname:=hostname;
  11. zconnection1.password:=password;
  12. zconnection1.protocol:=protocol;
  13. zconnection1.user:=user;





  • 0

#18 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 21 mayo 2009 - 03:01

coreccion ya encontre el error

afortunadamento
o no tanto
el error estava entre
la silla y el teclado
en el archivo ponia la parte del archivo "DB" y cuando leia los datos los queria sacar de "DR"



  • 0

#19 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.257 mensajes
  • LocationMéxico

Escrito 21 mayo 2009 - 03:05

coreccion ya encontre el error

afortunadamento
o no tanto
el error estava entre
la silla y el teclado
en el archivo ponia la parte del archivo "DB" y cuando leia los datos los queria sacar de "DR"


Vaya, parece que hoy es el dí­a :p

Salud OS
  • 0

#20 root

root

    mister

  • Miembro Platino
  • PipPipPip
  • 529 mensajes
  • LocationMexico D.F:

Escrito 21 mayo 2009 - 03:45

bueno finalmente kedo asi



delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var capt : string ;
  3. catalog, database, hostname, password, protocol, user : string  ;
  4. inifile: TInifile ;
  5.  
  6. begin
  7. Inifile := TInifile.Create(ExtractFilePath(Application.ExeName)+'mysql.ini');
  8. catalog:=Inifile.ReadString('DB','catalog','');
  9. database:=Inifile.ReadString('DB','database','');
  10. hostname:=Inifile.ReadString('DB','hostname','');
  11. password:=Inifile.ReadString('DB','password','');
  12. protocol:=Inifile.ReadString('DB','protocol','');
  13. user:=Inifile.ReadString('DB','user','');
  14. zconnection1.catalog:= catalog;
  15. zconnection1.database:=database;
  16. zconnection1.hostname:=hostname;
  17. zconnection1.password:=password;
  18. zconnection1.protocol:=protocol;
  19. zconnection1.user:=user;
  20. end;


El archivo ini va asi

[DB]
catalog="a"
database="a"
hostname="192.168.254.20"
password="Mictlan"
protocol="mysql-4.1"
user="arroyoj"


  • 0