PDA

Ver la Versión Completa : Conexión remota con Mysql


voldemmor
26-05-2008, 17:06:10
Hola amigos, acudo a pedir su ayu nuevamente.

Estoy desarrollando con Mysql5+delphi6+Zeos

por favor, me pidieron que modifique mi sistema para que sea usado en varias maquinas sobre una misma base de datos.

trate de hacer esto


Ini := TIniFile.Create(RutaINI);
try
if(ini.ReadBool('DATABASE','conect',False)=true)then
begin
ZConnection1.Catalog:= Descifrar( ini.ReadString('DATABASE','catalog','nada'),clave);
ZConnection1.Database := Descifrar( ini.ReadString('DATABASE','database','nada'),clave);
ZConnection1.HostName := Descifrar( ini.readString('DATABASE','hostname','nada'),clave);
ZConnection1.Password := Descifrar( ini.ReadString('DATABASE','password','nada'),clave);
ZConnection1.User := Descifrar( ini.ReadString('DATABASE','user','nada'),clave);
ZConnection1.Protocol := Descifrar( ini.ReadString('DATABASE','protocol','nada'),clave);
ZConnection1.Connected := True;
ShowMessage('coneccion exitosa');
end;
finally
ini.Free;
end;


pero me da un error


Acces violation att address 10003fff in module libmysqld5. write of address 000002f8


espero que me puedas explicar cual es mi error para lograr esta coneccion dinamicamente, o me redirijas a algun ejemplo

betiitooo
26-05-2008, 22:11:27
Hola, no se que estas intentando con ese codigo que muestras.

En las aplicaciones que he desarrollado en las que uso una base de datos remota, mysql, utilizo un conector odbc el cual lo registro en el sistema operativo (Windows), como un dns, y para hacer la conexion desde la aplicacion uso los componentes ADO, utilizo un ADOConnection para conectarme al dns del sistema operativo, esto muy facil y yo no he tenido ningun problema en las aplicaciones, bueno si te interesa mas, por aki andaré

suerte

AzidRain
27-05-2008, 01:16:07
ini no está definido por eso te manda el error, me parece que debe ser rutaini. El mensaje se refiere a un objeto que no ha sido creado toavía (como "ini").

voldemmor
27-05-2008, 17:09:01
Si defino Ini como inifile, como variable de la unidad.

Y lo estoy encriptando con una funcion para mayor seguridad.

No tengo necesidad de declarar un enlase de datos en el sistema, ya que mi libreria Zeos con Zconnection, probee de conexion nativa, enm este caso a mySql.

El problema que tengo en que no se si estoy activando correctamente el componente Zconnection1, lueo de cargarles las propiedades, o necesito cargar alguna propiedad más.

Muchgas gracias de antemano

nippur
28-05-2008, 00:14:47
No haces referencia al port, 3306 por default para mysql.
Tal vez te convendría poner valores por defecto válidos
por si se estropea o borra el .ini

Saludos,

enecumene
28-05-2008, 03:24:01
No sé por qué te enlias tanto, como te habian mencionado anteriormente mejor usas ODBC y te sales del problema, es sencillo y rápido, y no hay que cambiar nada de tu sistema, digo, es sólo mi opinión. ;):rolleyes:.

Saludos.

voldemmor
28-05-2008, 17:15:00
No sé por qué te enlias tanto, como te habian mencionado anteriormente mejor usas ODBC y te sales del problema, es sencillo y rápido, y no hay que cambiar nada de tu sistema, digo, es sólo mi opinión. ;):rolleyes:.

Saludos.

El lio con el odbc es la seguridad, tienes los datos en el registro, si alguien sabe puede ingresar, y para el lugar donde lo tengo que entregar es ese el problema, por esto que uso el .ini y ademas lo cifro, con lo cual me evito esto.

Ademas las librerias de Zeos proveen conexion nativa, lo cual me brinda una mejor respuesta al manjar el volumen de datos que ODBC, ya que solia desarrollar usando esta tecnica con anterioridad,

Ademas, ya esta desarrollado casi todo el sistema y solo tengo que pulir los informes y esta coneccion que me solicitaron, a ultima hora.

Razon por la cual se hace prancticamente imposible por el tiempo cambiarme a usar ODBC, ya que lo tengo que entregar ya.

Muchas gracias por tu interes

nippur
29-05-2008, 15:43:16
Si usas el puerto por defecto, tu código no tiene errores, tenés mal instalada
la zeos. Yo utilizo la misma lógica de un .ini cifrado y no tengo problemas tanto con delphi 5 como delphi 7.

Le agregaste al path de Library la carpeta build dentro de
\zeos\packages\delphi6\build ??

Saludos

voldemmor
29-05-2008, 18:04:56
Si tengo funcional la libreria.

Creo que no me he explicado bien.

Mi duda es como activar mi conexion dinamicamente a esta DB remota.
muchas gracias por sus respuestas

BlackDaemon
23-11-2008, 19:42:50
Hola

No sé si ya lo solucionaste, supongo que si ya que es tiempo jeje
Pero igual podrías haber puesto cómo lo solucionaste para otras personas.. en fin, pensé que podría ser que no tienes las dll's que necesitan las zeos para realizar la conexión, ya que estas las debes copiar a system32 el pc donde correrá tu app usando dichas librerías

Saludos!

nippur
10-02-2009, 00:18:02
Hola

No sé si ya lo solucionaste, supongo que si ya que es tiempo jeje
Pero igual podrías haber puesto cómo lo solucionaste para otras personas.. en fin, pensé que podría ser que no tienes las dll's que necesitan las zeos para realizar la conexión, ya que estas las debes copiar a system32 el pc donde correrá tu app usando dichas librerías

Saludos!

Perdón por la demora pero paso a comentarles la solución que vino de San Google buscando encontré un pdf donde explica como instalar la librería Zeos y no morir en el intento, seguí los pasos y anduvo a la primera.

Les dejo el link por si alguno lo necesita http://www.intitec.com/varios/Como_instalar_ZeosLib.pdf

Saludos
Nippur
Mar del Plata

AzidRain
10-02-2009, 20:53:29
Vaya...ya me siento importante...hasta donde anda ya mi modesto tutorial...que bueno que te sirvió, estaba a punto de posteartelo aquí.

foxito
21-11-2009, 15:11:11
Hola voldemmor (http://www.clubdelphi.com/foros/member.php?u=11512), fijate que tuve el mismo problema que tuvistes. Estuve buscandon en la red con SAN GOOGLE y no encontre nada al respecto hasta que caí en tu post que mencionabas el mismo probema. Talvez ya fuera de tiempo porque ha pasado bastante tiempo... Si todavia te interesa comentame ya lo resolvi... se me ocurrio algo y obtuve lo que queria.

SALUDOS.:)

voldemmor
21-11-2009, 17:33:14
Hola voldemmor (http://www.clubdelphi.com/foros/member.php?u=11512), fijate que tuve el mismo problema que tuvistes. Estuve buscandon en la red con SAN GOOGLE y no encontre nada al respecto hasta que caí en tu post que mencionabas el mismo probema. Talvez ya fuera de tiempo porque ha pasado bastante tiempo... Si todavia te interesa comentame ya lo resolvi... se me ocurrio algo y obtuve lo que queria.

SALUDOS.:)


Gracias por la preocupacion, la verdad es que lo pude resolver, con todo podes colocar la informacion aca a ver alguien mas la necesita y la puede usar.

Con todo a ver si qe crusan las soluciones que tenemos y podemos mejorarlas un poco.

foxito
23-11-2009, 16:36:51
Bueno aqui mi solución::)


program ContaSys;
uses
Forms,
UFMain in 'UFMain.pas' {FMain},
Acercade in 'Acercade.pas' {FrmAcercaDe},
UFLogin in 'UFLogin.pas' {FLogin},
UMySQL in 'UMySQL.pas',
IniFiles,
SysUtils,
UDMContaSys in 'UDMContaSys.pas' {DataModule1: TDataModule},
UFCompras_Gastos in 'UFCompras_Gastos.pas' {FComprasGtos},
FindProv in 'FindProv.pas' {FrmFindProv};
{$R *.res}
begin
if TFLogin.Execute then
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := 'ContaSys 1.0.1';
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TFComprasGtos, FComprasGtos);
with tinifile.create (changefileext(paramstr(0),'.ini')) do
with DataModule1 do
begin
Connect.Catalog := ReadString('Acceso a BD','Base datos','');
Connect.Database := ReadString('Acceso a BD','Base datos','');
Connect.HostName := ReadString('Acceso a BD','Servidor','');
Connect.LoginPrompt:= False;
Connect.User := ReadString('Acceso a BD','Usuario','');
Connect.Password := 'hecafox';
Connect.Protocol := ReadString('Acceso a BD','Proveedor','');
Connect.Port := ReadInteger('Acceso a BD','Puerto',0);
Connect.Connected := True;
end;
// Application.CreateForm(TFMain, FMain);
Application.Run;
end
else
begin
Application.MessageBox('No tiene Autorización a entrar a la Aplicación.', 'Advertencia');
end;
end.