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)
-   -   Problema con ejecutable en otra pc (https://www.clubdelphi.com/foros/showthread.php?t=64194)

lucho1981 21-03-2009 04:09:11

Problema con ejecutable en otra pc
 
Hola gente linda, les escribo para ver si alguien me da una manito (ayuda).
Mi problema: tengo una base de datos en MySQL, uso el ODBC y el delphi 7 en una pc (servidor). Compilo y corro la aplicacion en el servidor y todo de 10.
El problema es q cuando llevo la aplicacion (solo el *.exe) a otra pc (cliente) me da un error, el cual se soluciona cuando instalo el delphi en dicha pc (cliente). Cabe aclarar q tambien tengo el ODBC en el cliente.
Hay alguna solucion para q me funcione la aplicacion sin tener q instalar el delphi????
Lei por ahi, pero no se si es exactamente mi caso, q copiando unas dll a system32 se soluciona el problema, pero no estoy seguro ni se cuales con esas dlls.
Desde ya muchas gracias, y espero no haber sido muy extenso y repetitivo.

droguerman 21-03-2009 20:44:41

Y cual es exactamente el mensaje de error?

AzidRain 22-03-2009 02:02:46

De entrada falta que nos comentes que componentes usas para hacer la conexión. Por otro lado seguramente te está faltando la dll para conectarse a mysql, normalmente el nombre de las mismas empieza con "libmysql" por lo que si buscas en tu máquina servidor "libmysql*.*" encontraras varias que tienes que copiar a system32 de tu pc cliente.

Finalmente creo que ODBC para conexiones de este tipo ya estan "pasadas de moda" pues no son para nada ni rápidas ni eficientes pues le metes una capa más a tu aplicación sin siquiera pensarlo. Te recomiendo los componentes de Zeos que son nativos y se conectan directamente sin menear nada de configuración en la pc cliente, aunque también tienes dbExpress nada más que ahí si tienen un detalle con dos que tres drivers.

lucho1981 22-03-2009 02:57:47

Gracias por la respuesta
 
Antes q nada contesto a Droguerman: Me dice algo asi como "Windows a encontrado un error y debe cerrarse" (en este momento no estoy en mi pc para q te diga exactamente el error)

Cita:

Empezado por AzidRain (Mensaje 342289)
De entrada falta que nos comentes que componentes usas para hacer la conexión. Por otro lado seguramente te está faltando la dll para conectarse a mysql, normalmente el nombre de las mismas empieza con "libmysql" por lo que si buscas en tu máquina servidor "libmysql*.*" encontraras varias que tienes que copiar a system32 de tu pc cliente.

Los componentes q uso son db, table, query y datasource.
Voy a probar poner los archivos q me decis. Lo que trate es de ver los archivos q se instalan en System32 cuando se intala delphi y desinstalar delphi y copiar solo esos archivos, pero tampoco funciona.

Cita:

Empezado por AzidRain (Mensaje 342289)
Finalmente creo que ODBC para conexiones de este tipo ya estan "pasadas de moda" pues no son para nada ni rápidas ni eficientes pues le metes una capa más a tu aplicación sin siquiera pensarlo. Te recomiendo los componentes de Zeos que son nativos y se conectan directamente sin menear nada de configuración en la pc cliente, aunque también tienes dbExpress nada más que ahí si tienen un detalle con dos que tres drivers.

Justo ayer lei de ese componente y lo baje, hoy tratare de instalarlo y de conectar con la db. Espero q no sea muy complicado la instalacion ni el uso de este componente. Muchas gracias

alquimista_gdl 22-03-2009 04:24:00

Hola Lucho,

Tengo el mismo error que tu. En mi caso generé el .exe y a la PC en que lo instalaré, lo acompaño del driver dll dbExpress para MySQL. Sin embargo, sigo obteniendo
Cita:

"programa.exe ha detectado un problema y debe cerrarse"
En Foros de CodeGear indican que hay que acompañar de midas.dll si se usa ClientDataSet; acaso no está integrado dentro del .exe?
Hay alguna manera en Delphi 7 en que se indiquen los archivos que deben acompañar la instalación?

Saludos,
Guillermo

AzidRain 22-03-2009 22:39:52

Un error común que provoca esto es dejar el componente de conexión conectado mientras está uno en fase de diseño, por ejemplo, mientras estamos en el IDE de delphi si activamos cualquier Query o Dataset la conexión automáticamente se establece y queda en "True" para la propiedad "Active". Obviamente al compilar y ejecutar en la máquina de pruebas no pasa nada porque se conecta normalmente, sin embargo cuando lo pasas a otra pc, tu programa intenta conectarse al mismo host que defiiniste en el IDE tan pronto como se crea la forma o datamodule donde se encuentre el componente de conexión por lo que si no está disponible te botará el error.

Otro caso también se da con los reportes de QReport cuando por alguna causa la pc no tiene impresoras instaladas, a veces tira el error al iniciar la aplicación, en este caso basta con crear una impresora x aunque no esté físicamente conectada.

lucho1981 23-03-2009 02:26:28

Gracias por la respuesta AzidRain.
Lo q me decis es q en tiempo de diseño lo mantenga la propiedad Active en false, y en tiempo de ejecucion la ponga en true y ahi se solucionara mi problema?
Lei por ahi q en el cliente necesitaria el archivo libmySQL*.dll, donde el * es el numero de version de mySQL q utilizo, en mi caso 6. Supuestamente libmySQL6.dll seria el dll q necesito copiar en system32, el cual no consigo.

Por otro lado te cuento q estuve tratando de usar los componentes Zeos (muy parecidos a DB, table y query), el problema q tuve fue al compilar. No me compilo una aplicacion sencilla. Lo q no consegui es un componente parecido al datasource en Zeos, por lo q use el datasource, q a lo mejor este fue el error q me dio, mañana subire la aplicacion asi me pueden aconsejar mejor.
Con respecto a realizar una consulta con el Zquery (si no me equivoco)....es lo mismo q para realizarla desde el query? o cambia algo?
Muchas gracias

AzidRain 23-03-2009 21:34:31

Los componentes de Zeos son digamos que un clon de los que ya existen por ahí en Delphi solo que permiten conectarse a muchos motores. Por ahí en la página de wiki del club hay un tutorial de mi autoría que te explica como instalarlos y como hacer un ejemplo sencillo. De hecho los Zeos traen tambien los archivos dll necesarios para las conexiones.

lucho1981 25-03-2009 02:36:36

Muchas gracias
 
Cita:

Empezado por AzidRain (Mensaje 342432)
Los componentes de Zeos son digamos que un clon de los que ya existen por ahí en Delphi solo que permiten conectarse a muchos motores. Por ahí en la página de wiki del club hay un tutorial de mi autoría que te explica como instalarlos y como hacer un ejemplo sencillo. De hecho los Zeos traen tambien los archivos dll necesarios para las conexiones.

Te cuento q gracias a tu ayuda pude solucionar mi problema instalando Zeos, anda todo mas q bien....Muchas muchas gracias.....y saludos

AzidRain 25-03-2009 04:44:31

je je je que bueno...hasta ahora las Zeos no me han fallado, por falta de tiempo no pongo más material pero hay mucho que comentar sobre las mismas.


La franja horaria es GMT +2. Ahora son las 06:34:29.

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