![]() |
DUDA trabajar con varias sesiones en FireBird
Buenas, tengo una duda y queria plantearla:
Resulta que tengo una aplicación con una entrada por puerto TCP, en el momento de leer el texto entrante por TCP lo guarda en una tabla de mi base de datos "FireBird". Por otro lado tengo un TIMER que cada segundo consulta dicha tabla a ver si hay cambios y para evitar conflictos tengo: IBDataBase1 IBTransaction1 IBQuery1 y IBDataBase2 IBTransaction2 IBQuery2 El IB...1 lo utilizo para insertar y modificar lo que me llega por el puerto TCP y el IB...2 para las consultas en el TIMER. Mi duda es si la tabla del FireBird puede bloquearse mientras se hace el INSERT o UPDATE o el SELECT, es decir, mientras el IB...1 hace un INSERT el IB...2 puede hacer un SELECT y viseversa? el hecho que una sesion haga una consulta la otra puede modificar información? Gracias por todo:D |
Hola.
En Firebird las escrituras no bloquean a las lecturas. Únicamente dos escrituras simultaneas se bloquearán, pero no una escritura y diversas lecturas. De la misma forma, el hecho de tener una o varias lecturas (consultas) en marcha, no bloquea que otra transacción inicie al mismo tiempo una escritura. Saludos. |
Marc, entonces 2 escrituras simultaneas bloquean, pero acabarán haciendose las 2 no ?, es decir, lo que supongo que hace es poenrlo en cola y hacer una escritura y luego la otra, es asi ?
Gracias por la respuesta |
Hola Jordi.
Dos escrituras en dos transacciones que estén activas simultaneamente no se acabarán haciendo. La segunda escritura te dará un error de deadlock y no se hará. Tendrás que finalizar la primera transacción antes de poder modificar ese registro en una segunda transacción. NOTA: Naturalmente el bloqueo solo se da si las dos escrituras intentan escribir sobre el mismo registro de la base de datos. En cambio puedes tener sin problemas tantas escrituras como quieras, siempre que modifiquen registros distintos o añadan nuevos registros. Salutacions. |
es cierto, solo si se quiere acceder al mismo registro al mismo tiempo, por suerte eso es dificil que ocurra, pero es bueno saberlo.
Gracias Marc, duda solucionada |
Usar Eventos en Firebird...
JordiP:
Con lo que respecta a tu problema (aunque no hay muchos detalles de lo que hace tu aplicación) , creo que una de las mejores soluciones es utilizar eventos en Firebird. Creeme que es una gran herramienta, por mi parte los he utilizado extensamente en problemas similares a lo que tu quieres hacer y han resultado ser una maravilla. Saludos Gerardo Suárez Trejo.:D |
puedes darme más inform. de los eventos en FireBird !!!!
Que es, a travez del IBDatabase ? Pero en el tema de insertar, modificar y borrar que eventos pueden ser utiles, en principio con un try.... except ...end ya controlamos posibles errores. Te agradeceria más info. de los eventos x favor Gracias |
Información...
JordiP:
Dime como le puedo hacer para hacerte llegar la información que necesitas... tengo un archivo pdf que no recuerdo de donde lo baje (el documento en si, no menciona que tipo de licencia utliza, pero supongo que es de dominio público, pues lo baje de un sitio público donde no se mencionaba algún tipo de restricción). Por otro lado, déjame prepar un buen ejemplo que te pueda ayudar. De hecho, ahora estoy haciendo pruebas en Java utilizando eventos, y como te comentaba es todo una maravilla. Saludos, Gerardo Suárez Trejo PD. Te dejo mi correo para que me escribas, aunque me gustaría saber a quien le puedo enviar el documento para que lo haga público (previa verificación de que no haya ningún problema en el tipo de licencia del documento. gerardo.suarez@imexme.com Saludos nuevamente...:D |
En Firebird.com.mx puedes encontrar artículos sobre el uso de los Eventos de Firebird.
Por ejemplo aquí hay una introducción. http://www.firebird.com.mx/modules/s....php?itemid=35 Saludos. |
Cita:
|
Eventos en Firebird...
Casimiro:
Gracias por responder.... intenté anexar el archivo pero el botón de subir siempre se encuentra desactivado (me imagino que es por cuestiones de permisos). Por otro lado, el documento se encuentra en inglés, y según yo no estaríamos infringiendo ningura licencia de uso, sin embargo sería bueno que alguíen mas avezado en estas lides nos lo pudiera confirmar... Saludos, Gerardo Suárez Trejo PD. Escucho sugerencias para dar el siguiente paso...:D |
Eventos en Firebird...
Sres:
Perdón pera ya vi porqué no podía subir el archivo (el botón solo se activa si el documento está comprimido en ciertos formatos). Bueno despues de esta novatada... ahora ya lo pude subir... revisenlo y despues me dicen si les sirvio. Saludos Gerardo Suárez Trejo:eek: |
Cita:
|
Eventos en Firebird...
Sres:
El documento se encuentra en Firebird/Documentos/Eventos_en_Firebird.pdf.zip Saludos, Gerardo Suárez Trejo |
GALLO gracias, ya lo tengo, lo he descargado de la FTP.;)
|
La franja horaria es GMT +2. Ahora son las 21:40:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi