Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   usar fbclient sin necesidad de instalacion (https://www.clubdelphi.com/foros/showthread.php?t=77150)

afxe 27-12-2011 20:23:12

usar fbclient sin necesidad de instalacion
 
Feliz Navidad a todos.
Estoy con un aplicativo (D7) que será distribuido en un Pen para que acceda vía internet a un servidor FireBird (2.1.3) para hacer una consulta de stocks y dejar un pedido. Estoy usando ClientDataSet para mantener la consulta y la funcionalidad está resuelta. Sin embargo, la idea es que se conecte el pen y el usuario ponga su nombre y contraseña y listo, ya puede consultar stock on-line y hacer su pedido, por lo cual necesito que el cliente firebird se instale en modo silencioso (fb.exe /components="ClientComponent" /verysilent pero no sé como comprobar si ya está instalado), o algo más elegante, como incluir los archivos necesarios para que funcione el fbclient y registrar la librería (he visto algo de instclient.exe pero no me ha funcionado). La idea es que se conecte y la aplicación funcione sin necesidad de instalar ni responder a nada.

Otra necesidad secundaria, aunque ya no es para este foro, sería el cómo marcar el pen para que el programa sólo funcione en ese Pen (no pueda ser copiado) y que se pueda cortar el acceso a ese pen, independientemente del usuario y la contraseña de acceso a la base de datos (por un nº de serie, o un archivo megaoculto e incopiable, etc...)

Gracias a todos

Casimiro Notevi 27-12-2011 20:29:50

Sobre lo primero, busca información de firebird embebido, es una versión que no necesita instalación.
Sobre lo segundo, crea un nuevo hilo ;)

Cañones 27-12-2011 21:24:54

Si la base de datos está en un servidor y se puede acceder mediante una conexión a internet,vpn o lo que sea. Solo hace falta que acompañado del exe vaya el FBCLIENT.DLL, la cual realiza la conexión del cliente.

afxe 27-12-2011 23:41:25

Gracias Casimiro... conozco y he usado el embebed, para acceso local y monopuesto, nada que ver con conectarse como cliente a un servidor remoto. ;)
Lo que quería escuchar era lo de Cañones, eso lo he hecho, meter el exe y el fbClient.dll en un pen y ejecutarlo, pero me peta antes de que se vea si quiera la primera pantalla. Si instalo la versión básica cliente con el instalador, funciona de maravillas, desinstalo y vuelvo al ejecutable con el dll y vuelve a petar (creo que al autentificarse contra el servidor).
Uso ibx 7, ¿debo configurar algo, o registrar algo para que funcione el exe con sólo incluir el fbClient.dll?, ¿debo invocarlo en el ejecutable, es decir, cargarlo como librería? :confused:

Gracias de nuevo por vuestra atención

Casimiro Notevi 28-12-2011 00:05:52

¿Interbase?, no sé si vendrán los problemas por eso, ten en cuenta que interbase usa gds32.dll y no fbclient.dll

De todas formas tampoco das muchos detalles, "te peta", ¿y qué es exactamente eso?

Cañones 28-12-2011 00:51:29

No hace falta registrar nada, por lo menos en mis experiencias.
Creo que lo mejor sería que pruebes que la aplicación funciona con el fbclient desde una carpeta en la PC y después lo trates de ejecutar en el PC.
La PC que haces las pruebas está dentro de un domino? yo tuve problemas con los dominios.

fjcg02 28-12-2011 10:03:35

Tal y como te han comentado, no hace falta registrar nada.

Ejecutable
fbclient.dll
midas.dll si no has compilado la aplicación con la unidad midas

Confirma que el programa no abre la bbdd directamente, sino que la abres una vez arrancado el programa. Puedes poner un botón que conecte la bbdd.
Además, comprueba que tu ip pública es siempre la misma, de lo contrario tampoco te arrancaría.

Nos cuentas. Saludos

afxe 28-12-2011 11:11:32

Hola de nuevo:

Casimiro, perdona, intentaré ser más explícito, y así tambien atiendo la ayuda prestada por fjcg02:

Las pruebas las estoy haciendo con un ordenador "limpio". Sin firebird, ni delphi, ni firewall... En un Pen meto el EXE y el fbClient.DLL (tengo el midaslib en el uses). Meto en un Pen el programa, cuya primera instrucción en el FormCreate tengo puesto un "ShowMessage('Hola')". Me he asegurado de tener tanto el IBDatabase como el IBSecurityService que uso en "no conectado ni activo". La IP pública es estática.
Pues bien: Si ejecuto el programa me dice: "NeodInterPed.exe ha detectado un problema y debe cerrarse", sin ni siquiera mostrar el mensaje "HOLA"... ahora bien, si instalo el Firebird 2.1.3 (con el que trabajo): instalación Mínima de Cliente sin utilidades ni herramientas, el programa funciona correctamente, conectándose a la IP remota, autentificándose y cargando en el ClientDataSet un ranking de los 25 productos más vendidos con su correspondiente stock real.

Gracias de nuevo por vuestro interés y reitero mis disculpas a Casimiro, debería ser más explícito, ya que de ello depende no haceros perder vuestro tiempo.

Saludos.

Casimiro Notevi 28-12-2011 11:49:23

¿Y si lo pruebas con el depurador paso a paso?, deberás hacerlo en un equipo que tenga lo mismo que vas a tener en el pendrive. Desactiva firebird en tu pc de desarrollo y deja en el directorio del ejecutable la dll que hemos comentado, así la simulación será más real.

fjcg02 28-12-2011 14:09:49

Me da la sensación de que en la configuración de la bbdd usas un alias o algo parecido. Intenta conectarse automáticamente y no la encuentra.

Confirma que en la configuración pones la ip del servidor y el archivo. No recuerdo cómo es la sintaxis, pero prueba a ver qué tal.

Otra prueba que puedes hacer es poner la propiedad de la bbdd Connected a false, compilar y probar. Si no falla es eso seguro.

Saludos

afxe 28-12-2011 17:51:54

He hecho lo que Casimiro me ha recomendado, desinstalar el firebird en la máquina de desarrollo y meter el fbClient.dll en el directorio del ejecutable, y no me ha fallado la aplicación. Pensé que quízás estuviera usando algún componente que tirara del bde, motivo por el cual me funcionaría en el de desarrollo y no en un pc virgen, pero no hago ningún uses a las librerías del BDE. He probado el programa en otro ordenador que tiene también el delphi instalado (desinstalando el firebird) y también ha funcionado perfectamente, esta vez ni siquiera tenía el fbClient.dll en ningún sitio del equipo (olvidé copiarlo antes de desinstalar) pero ha funcionado (quizás el midas solvente la necesidad de tener el fbclient).

En el pc virgen he conseguido que no me de error, pero no llega a conectarse, es probable que el problema lo tenga con el pc virgen y yo esté generalizando el error. Probaré con otros PC's, porque en principio parece que funciona incluso sin fbClient.dll (en todos los que me funciona el Delphi está instalado).

Gracias de nuevo.

guillotmarc 29-12-2011 12:57:49

Hola.

Quizás tus componentes de conexión esten configurados para conectarse a gds32.dll y no a fbclient.dll (la instalación de Firebird te pone los dos archivos, que son exactamente iguales, para compatibilidad con aplicaciones antiguas).

La prueba es muy sencilla, vuelve a intentarlo después de renombrar tu fbclient.dll a gds32.dll.

Saludos.


La franja horaria es GMT +2. Ahora son las 22:23:13.

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