Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   mi aplicacion no se ejecuta en otros computadores (https://www.clubdelphi.com/foros/showthread.php?t=66329)

erickperez6 13-02-2010 20:28:13

mi aplicacion no se ejecuta en otros computadores
 
Saludos,

Tengo una aplicacion creada en delphi 7, hace coneccion a base de datos con firebird 2.1, el asunto es que en mi computadora de desarrollo funciona a la perfeccion pero cuando instalo el programa en otro computador inmediatamente al ser ejecutado no se ejecuta, da una excepcion de windows sin ninguna descripcion que me oriente a saber el problema.

Quiero decirles que obviamente e instalado la base de dato firebird en los equipos que deseo ejecutarlo, las rutas que miran a la base de datos estan correctas, incluso en mi aplicacion la coneccion a la base de dato se establece despues de algunas ventanas iniciales, y los mensajes de problema de coneccion de db siempre son muy explicitos como por ejemplo "no se encuentran las librerias" o "no se puede conectar a la base de datos". Pero en este caso el error es como si el .exe estuviera erroneo o dañado.

He pensado que el problema pudiera ser que algunos de los componentes de terceros que uso en mi aplicacion utilizen algunas dll que se instalan en el system32 de windows y al no encontrarla, la aplicacion estalla al ejecutarse. Pero me parece extraño porque pienso que delphi encapsula todo en el .exe.

Los componentes fuera de los estandares que uso son: las ibx, raize, las rusas (rx), quickreport, indy (componentes de encriptacion)

gracias de antemano

jhonny 13-02-2010 21:26:58

Prueba copiando las BPLs(*.bpl) que hay en tu System32, en el System32 de la otra maquina a ver si te funciona.

Neftali [Germán.Estévez] 15-02-2010 10:47:58

No comentas si compilas con packages o sin packages (se define en las opciones del proyecto). Si compilas con "Runtime Packages", debes copiar las BPL's necesarias en el directorio de la aplicación o en el System32 como comenta Jhonny.
De los componentes que comentas, me suena de QuickReport sí necesita alguna DLL.

De todas formas para estar seguros, hay herramientas que te ayudan a saber las dependencias que tiene tu EXE. Las BPL's, DLL's,... que necesita para funcionar.
Busca en los foros sobre "Dependency Walker" o "depends" o si tienes instalados los GExperts también puedes usar el PEExplorer que viene con ellos.

Neftali [Germán.Estévez] 15-02-2010 10:49:57

Link a la página de Dependency Walker.

cocute 15-02-2010 11:44:40

puedes probar con algun programa de esos que te dicen las dependencias del ejecutable, tipo este:
http://www.purosoftware.com/programa...endencias.html

Palmiro 15-02-2010 12:10:04

Hola, prueba de solucionar tu respuesta haciendo clic en el link

cmm07 15-02-2010 13:17:19

Cita:

Empezado por erickperez6 (Mensaje 353895)
Saludos,

Tengo una aplicacion creada en delphi 7, hace coneccion a base de datos con firebird 2.1, el asunto es que en mi computadora de desarrollo funciona a la perfeccion pero cuando instalo el programa en otro computador inmediatamente al ser ejecutado no se ejecuta, da una excepcion de windows sin ninguna descripcion que me oriente a saber el problema.

Quiero decirles que obviamente e instalado la base de dato firebird en los equipos que deseo ejecutarlo, las rutas que miran a la base de datos estan correctas, incluso en mi aplicacion la coneccion a la base de dato se establece despues de algunas ventanas iniciales, y los mensajes de problema de coneccion de db siempre son muy explicitos como por ejemplo "no se encuentran las librerias" o "no se puede conectar a la base de datos". Pero en este caso el error es como si el .exe estuviera erroneo o dañado.

He pensado que el problema pudiera ser que algunos de los componentes de terceros que uso en mi aplicacion utilizen algunas dll que se instalan en el system32 de windows y al no encontrarla, la aplicacion estalla al ejecutarse. Pero me parece extraño porque pienso que delphi encapsula todo en el .exe.

Los componentes fuera de los estandares que uso son: las ibx, raize, las rusas (rx), quickreport, indy (componentes de encriptacion)

gracias de antemano

Pues, te puedo decir que la falta de DLL te está produciendo el problema, yo con un componente para comprimir 7z venía con DLL y al ejecutar mi app sin esta (DLL), marcaba una excepción, Delphi encapsula todo en un unico paquete llamado .exe pero no encapsula archivos de terceros como es los DLL u otro (excepto los BPL que son de delphi de los componentes) almenos que tú a traves de algo la encapsules...

PD: no he leido los otros comentarios.:!

erickperez6 15-02-2010 17:17:03

gracias a todos !! instale el walk dependency pero no vi que usara nada que no fuera archivos de sistemas de windows.

Tambien copie los bpl de delphi en las maquinas clientes y nada. Tambien verifique que en las opciones del proyecto esta descotejada la opcion de "build with runtime packages", si la cotejo y compilo, la aplicacion no encapsula todas las librerias que necesito, pues lo dejo como estaba.

La verdad es que ya solucione el problema despues de dar muchas vueltas y lo explicare por si es de ayuda para otros colegas del foro. Tengo un datamodule en donde tengo aproximadamente algunos 25 componentes (ibquery y ibdatasets), resulta ser que siempre verifico que el ibdatabase no este conectado antes de compilar porque aveces en la manipulacion de los componentes de base de dato esta se me activa sola. Lo extraño fue que descubri que habia un ibquery "activo" sin embargo el ibdatabase no lo estaba :confused: , me confunde la situacion ya que cuando apago el ibdatabase todos los componentes asociados a el tambien se desactivan y al estar tan confiado en este punto no pense en revisar cada uno de los ibquery o ibdataset.

Sucede que este ibquery conecta a una base de datos local y al instalar la aplicacion en otro cliente este ibquery trataba de establecer la coneccion a una base de datos inexistente en aquel equipo desde que intentaba de abrir la aplicacion. Al desactivar este ibquery comenzo a trabajar a la perfeccion en los demas computadores.

Gracias nuevamente ! :)

MAXIUM 15-02-2010 18:38:04

Me paso lo mismo hace unos días con un equipo y base de datos Firebird. Al final descubrí que mi aplicación no era la causante. Arrancada pero quedaba ahí como que si y no, es decir no se veía pero si en el administrador de tareas.

La solución fue reinstalar Windows en modo de restauración y todo volvió a la normalidad.


La franja horaria es GMT +2. Ahora son las 09:18:40.

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