![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola compañero Jack!
Primero, supongo que estás utilizando un componente de conexión, llamese TDatabase, distinto para cada hilo y en mejor manera, una copia para cada hilo de cada componente utilizado en la conexión. Si es así, entonces el problema está en la biblioteca cliente de Firebird (fbclient.dll). Tengo entendido que esta biblioteca no soporta multi hilos hasta la versión 2.5 de Firebird. Si es posible, intenta hacer tus pruebas con una versión más reciente de la biblioteca cliente o en última instancia, con una versión más reciente del servidor Firebird. Saludos, Chirs |
|
#2
|
||||
|
||||
|
Yo trabajo con múltiples Thread's en FB 2.1 sin problemas.
Tienes que asegurarte 100% de que tanto el TIBDatabase, como TIBTransaction y los TIBDataSet que utilices sean UNICOS e independientes para cada Thread. Se deben de crear en cada Thread que vayas a utilizar y se deben de liberar igualmente en cada Thread.
__________________
Piensa siempre en positivo ! |
|
#3
|
|||
|
|||
|
Gracias a todos por responder.
Cambie la base de datos a la versión 2.5 y comprobé con varios tipos de modos de transacción. Obtuve los mismos resultados. Para gluglu: he hecho exactamente lo que tu dices y lo único que he logrado es que se cuelgue la primer hilo y que arranque el segundo pero nunca los dos a la vez. Te agradecería un poco mas de información de como lo has podido resolver. Gracias de antemano. Un saludo. Jack |
|
#4
|
||||
|
||||
|
Por lo que indicas, no haga nada diferente a lo que tu haces, al menos en referencia a crear y eliminar, tanto la BBDD como la transacción como las tablas a utilizar dentro del Thread.
También debes de considerar otro tema muy importante : No puedes hacer ninguna operación con estos componentes que afecten a algo externo al Thread, m explico, no puedes intentar actualizar algo en pantalla o utilizar un dato obtenido en el thread con estos componentes, si no es a través del método Syncronize. Indícame por favor cómo devuelves los datos que has obtenido dentro del Thread a tu aplicación principal, y a ver si podemos aclarar algo más. ![]()
__________________
Piensa siempre en positivo ! |
|
#5
|
||||
|
||||
|
... añado ....
También podrías ejecutar tu aplicación en modo Debug, e ir mirando paso por paso las líneas que va ejecutando, tanto de tu aplicación principal como del Thread. Así podrías ver exactamente en qué sentencia se queda 'congelado' el Thread, y probablemente sirva para entender mejor el problema.
__________________
Piensa siempre en positivo ! |
|
#6
|
||||
|
||||
|
Sería bueno que nos compartieras algo de código Jack. Pero también busca usos del procedimiento Synchronize, un mal uso de este procedimiento puede dar resultados como el que estás teniendo.
Saludos, Chris |
|
#7
|
|||
|
|||
|
Lo he probado todo lo que me habéis dicho y todo continua igual, no entiendo que pasa ...
|
|
#8
|
||||
|
||||
|
Qué componentes estás utilizando para hacer la conexión?
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| threads en dbExpress | pborges36 | Conexión con bases de datos | 5 | 21-12-2010 16:18:47 |
| Firebird AND Threads | Abel Garcia | Firebird e Interbase | 21 | 19-03-2008 05:07:21 |
| uso de threads | JULIPO | API de Windows | 2 | 25-07-2007 16:09:06 |
| Bloqueo Ibx Firebird AND threads | Abel Garcia | Firebird e Interbase | 3 | 26-02-2007 14:02:27 |
|