Ver Mensaje Individual
  #1  
Antiguo 21-02-2008
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 18
rolandoj Va por buen camino
Question Como usar dbExpress en hilos ?

Hola,

Estoy trabajando con Delphi 2007 Update 3 y dbExpress.

Mi aplicación maneja hilos y mi problema actual es que, cuando entra a un segundo hilo en paralelo, la aplicación se bloquea al intentar abrir una segunda conexión a la Base de Datos.

Mi pregunta entonces es : Como se utiliza dbExpress en una aplicación con hilos ?. He estado buscando y no he encontrado una explicación clara. No sé si el problema es con drivers o si es que dbExpress en hilos no se maneja como lo estoy haciendo.

Veamos lo que hago y lo que he analizado:

Yo estoy usando un Data Module para tener mi componente TSQLConnection. Cada vez que se crea un hilo, el programa crea un nuevo Data Module de esa clase y abre una nueva conexión a la base de Datos, usando el mismos usuario.

Ya verifiqué que el bloqueo se produce justo al tratar de abrir la segunda conexión; no se trata por tanto de colisiones en la ejecución de comandos SQL.

Ya probé, con un pequeño programa secuencial, que dbExpress si es capaz de abrir una segunda conexión a la Base de Datos, en un segundo componente, usando el mismo usuario.

En este punto, lo que sospecho es que el bloqueo se produce cuando se intenta abrir la base de datos y el primer componente está enviando un requerimiento al motor SQL, o recuperando datos de la misma. Si estoy en lo cierto, supongo que eso significa que, o hay un error, o hay que usar un solo componente para todos los hilos, lo que me sorprendería bastante.

Alguién puede ilustrar el tema, o confirmar que hay falla ?
Responder Con Cita