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)
-   -   Conexión a BD con Dll (https://www.clubdelphi.com/foros/showthread.php?t=95205)

LIA_GUILLERMO 20-05-2021 18:04:37

Conexión a BD con Dll
 
Buen día a todos, tengo un pequeño inconveniente que me gustaría me pudieran ayudar a entender mejor lo que pudiera estar pasando o lo que estoy haciendo mal.
El caso es el siguiente:
1.- Tengo un proyecto que realiza distintas tareas en distintos formularios del cual yo genero el .exe
2.- En una de estas tareas necesito obtener datos de una base de datos para poder graficarlas en un formulario.
3.- Tengo una dll que su funcionalidad es conectarse a la Base de Datos y devolver los datos pedidos, la BD la manejo con Firebird 2.5, el acceso a está dll es mediante un hilo con un Synchronize.
4.- Dentro de la dll realizo la conexión a la base de datos y después le regreso esos valores a mi aplicación principal para que los grafique, para ellos utilizo el componente de FireDac TFDConnection y TFDQuery.

Bueno hasta ahí todo bien, cuando yo compilo y pruebo desde Delphi todo aparenta ir bien y sin ningún problema, el detalle viene cuando yo genero el .exe y .dll, al intentar ya probar mi programa y al acceder al formulario que llama a la dll para buscar los valores simplemente se queda con una ventana que añadí para que muestre que se están cargando los datos, es la primera vez que trabajo con dll y mi cuestionamiento es si al compilar la dll o mi .exe me falta añadir algo más o por donde estaría el problema.

cabe mencionar que si hay conexión a la dll porque de otro modo me marcara error al abrir la aplicación, el .dll esta junto con el ejecutable, espero me haya explicado bien cual es mi situación.

Agradecería mucho sus consejos y apoyo.

Casimiro Notevi 20-05-2021 20:43:57

A ver si alguien te puede ayudar, porque a mí me resulta extrañísimo lo que cuentas, no entiendo cómo desde tu programa creas un exe y una dll, tampoco entiendo eso del hilo en una dll para conectar a una base de datos :confused:

Neftali [Germán.Estévez] 21-05-2021 08:56:11

Cita:

Empezado por LIA_GUILLERMO (Mensaje 541014)
Bueno hasta ahí todo bien, cuando yo compilo y pruebo desde Delphi todo aparenta ir bien y sin ningún problema,

No acabo de entender a qué te refieres con que lo pruebas desde Delphi.
¿Con la misma configuración? ¿EXE + DLL?
¿O cuando lo pruebes "desde Delphi" estás usando otra configuración?

Cita:

Empezado por LIA_GUILLERMO (Mensaje 541014)
...al intentar ya probar mi programa y al acceder al formulario que llama a la dll para buscar los valores simplemente se queda con una ventana que añadí para que muestre que se están cargando los datos, es la primera vez que trabajo con dll

Prueba a ejecutar tu programa y realizar el "attach" a la DLL para ver qué está pasando.

LIA_GUILLERMO 31-05-2021 18:52:54

Una disculpa por no saberme explicar, haber si ahora si puedo, yo utilizo una dll para la conexión y control de la base de datos desde mi .exe la mando a llamar cuando lo necesito, ahora bien desde el depurador todo funciona bien, pero a la hora de ya poner todo en funcionamiento a otra maquina, no me trae ningún datos de la base de datos, pareciera como si se quedará esperando algo pero no entiendo por que.

Neftali [Germán.Estévez] 01-06-2021 08:47:24

Cita:

Empezado por LIA_GUILLERMO (Mensaje 541134)
...yo utilizo una dll para la conexión y control de la base de datos desde mi .exe la mando a llamar cuando lo necesito, ahora bien desde el depurador todo funciona bien, pero a la hora de ya poner todo en funcionamiento a otra maquina, no me trae ningún datos de la base de datos, pareciera como si se quedará esperando algo pero no entiendo por que.


¿Y no te devuelve ningun error?
¿Revisa si te falta alguna DLL necesaria para la conexion? (aunque en ese caso debería darte errores)

LIA_GUILLERMO 01-06-2021 17:02:28

No, no me sale ninguna excepción, es lo raro, es la primera vez que trabajo con Dll y dentro conexión a base de datos, no se si se necesite algún complemento extra que se deba añadir a la Dll o configuración que estoy haciendo mal, los complementos los añadí manualmente, voy a cambiarlos para que se creen en tiempo de ejecución para ver si hay alguna diferencia.

LIA_GUILLERMO 02-06-2021 18:21:00

Eh investigado y algunos utilizan TFDCustomConnection.CliHandle y TFDCustomConnection.SharedCliHandle pero si no mal entiendo esos se utilizan cuando quieres pasar la conexión a la aplicación y lo que yo hago es realizar la conexión en la DLL y mandar los datos resultante pero los mando en una TFastLineSeries por lo cual considero que no necesito hacer uso de ellos, también estuve verificando que si hay una conexión a mi BD pero aun sigo con el detalle de que no me devuelve los valores a la aplicación y se queda cargando sin mostrar error alguno. :(

mamcx 02-06-2021 19:14:25

Y si hay comunicacion con la DLL? Como es el código que interfaz entre ambos?


La franja horaria es GMT +2. Ahora son las 18:15:33.

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