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)
-   -   Base de Datos y Servicios Windows (https://www.clubdelphi.com/foros/showthread.php?t=81834)

Guti13 23-12-2012 19:27:35

Base de Datos y Servicios Windows
 
Buenas tardes a todos he desarroladon un Servicio Windows en Delphi 7 con un TTimer que cuando e lanza el evento Execute debe conectar son una Base de Datos, usando BDE, en SQL Server 2012 mediante ODBC con driver SQL Server Native Client 11.0. Pues bien cuando se ejecuta en el registro de eventos del sistema aparece un error cuyo mensaje es "Unknown Database". Si este mismo código lo saco a un Winforms funciona correctamente. El entorno de ejecución es un Windows 7 Profesional y la base de datos está en local. Lo he intentado también mediante ADO en vez de BDE y ma da exactamente el mismo error. ¿Que puedo estar haciendo mal?, Muchas gracias a todos con antelación por vuestra ayuda.

Guti13 23-12-2012 19:53:10

Me habéis inspirado
 
Vaya ha sido escribir el hilo e inspirarme, gracias por ello. Os cuento la solución por si alguno os encontráis con el mismo problema. Mi primer error fué crear un ODBC en DSN de usuario, cuando debe ser creado en DSN de Sistema. Por ello, cuando el código lo ejecutaba como Winforms, funcionaba ya que era yo, el usuario creador del ODBC, el que ejecutaba la conexión, cuando se ejecuta un servicio de Windows el usuario que lo ejecuta es SYSTEM. Bien así de todos modos no se acababa el problema ya que todos sabemos que los señores de Microsoft han montado un pequeño lío mas con los ODBC. Cuando ejecutas el administrador de origenes de datos desde el panel de control se ejecuta el odbcad32.exe situado en System32 (primer lío este administrador es el de 64 bits). Eso sí, todos los orígenes que defina aquí como DSN de usuario tendrán su réplica en 32 bits, contrariamente a lo que pasa con las DSN de sistema que no replica. Pare definir una conexión ODBC de 32 bits como DSN de sistema debes ejecutar manualmente el odbcad32.exe situado en Syswow64 (otro lío). Una vez hecho esto todo funciona sin problemas. Bueno espero haber sido claro sino estoy a vuestra disposición. Un saludo a todos y feliz navidad


La franja horaria es GMT +2. Ahora son las 19:20:48.

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