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)
-   -   Tservice y acceso a Base de Datos ??? (https://www.clubdelphi.com/foros/showthread.php?t=57513)

QuarkBcn 18-06-2008 12:09:44

Tservice y acceso a Base de Datos ???
 
Hola grupo, despues de mucho pelearme .. y no conseguir resultados positivos, voy a robados un poco de tiempo.

Veamos ... he creado un Tservice y dentro del mismo un Thread, para que este segundo conecte con una BD MSSQL-Server, bien a través del BDE o bien a través del dbexpress, en estos momentos me da igual uno que otro. Si el Thread lo ejecuto desde un formulario, la conexión a la BD funciona perfectamente (probado con BDE), pero el problema aparece cuando quiero hace esta conexión desde el Tservice, al realizar el open de un query, este siempre retorna el error de que o no existe el servidor o no tengo permiso de acceso al mismo. Está claro que el problema, creo, viene por los permisos, pero no se como asignarle permisos, para que me conecte correctamente a la BD desde el servicio, ya que desde la aplicación conecta sin problemas.

Si alguien tiene alguna exp, y puede adjuntar un ejemplo, o bien orientarme, se lo agradezco de antemano.

Saludos a todos !!!

Kosmo 18-06-2008 12:45:59

Yo los servicios los tengo conectados siempre a la base de datos, por lo que en el ServiceStart hago un:

CoInitialize(nil);
ADOCOnnection.Open();
CoUninitialize();

Con eso debería funcionarte.

juanelo 18-06-2008 16:08:59

Intenta asignandole a tu servicio que inicie con una cuenta de administrador (para ver si efectivamente son permisos). Esto lo puedes hacer en el administrador de servicios, te vas a las propiedades del servicio en cuestion y en la pestaña "inicio de sesion" asignas una cuenta de administrador. Reinicia el servicio y pruebas.
Saludos

QuarkBcn 19-06-2008 11:40:26

Cita:

Empezado por Kosmo (Mensaje 294256)
Yo los servicios los tengo conectados siempre a la base de datos, por lo que en el ServiceStart hago un:

CoInitialize(nil);
ADOCOnnection.Open();
CoUninitialize();

Con eso debería funcionarte.

Hola Cosmo, efectivamente con lo comentado funciona. Pero el problema viene, antes se me olvidó comentarlo, que el servicio lo instalo en un PC con XP Sp2, y me conecto a un servidor W2003 Server. Me explico, si instalo el servicio en el servidor W2003 Server, se conecta a la BD MS-SQL server sin problemas y el servicio trabaja correctamente, pero si instalo el servicio en la maquina local, es entonces cuando no puede conectarse con el servidor SQL. En cambio la misma conexión fuera de un servicio, (por ejemplo) dentro de un form (ejecutandose desde la maquina local), se conecta sin problemas con el servidor SQL.

Quedo a la espera de vtra ayuda.

Gracias anticipadas.

QuarkBcn 25-06-2008 10:18:03

Cita:

Empezado por juanelo (Mensaje 294300)
Intenta asignandole a tu servicio que inicie con una cuenta de administrador (para ver si efectivamente son permisos). Esto lo puedes hacer en el administrador de servicios, te vas a las propiedades del servicio en cuestion y en la pestaña "inicio de sesion" asignas una cuenta de administrador. Reinicia el servicio y pruebas.
Saludos

Gracias Juanelo, pero ni asi funciona.

Creo que los permisos a nivel de aplicacion son unos, y a nivel de sistema son otros y por eso no se conecta el servicio desde el pc cliente al SQLServer del Servidor.

Gracias de todas formas


La franja horaria es GMT +2. Ahora son las 11:03: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