Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   DUDA trabajar con varias sesiones en FireBird (https://www.clubdelphi.com/foros/showthread.php?t=68356)

JordiP 09-06-2010 09:38:10

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

guillotmarc 09-06-2010 10:46:16

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.

JordiP 09-06-2010 11:05:06

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

guillotmarc 09-06-2010 11:38:26

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.

JordiP 09-06-2010 12:00:46

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

Gallosuarez 09-06-2010 16:56:24

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

JordiP 09-06-2010 17:38:04

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

Gallosuarez 10-06-2010 16:53:27

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

guillotmarc 10-06-2010 16:57:10

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.

Casimiro Notevi 10-06-2010 18:18:00

Cita:

Empezado por Gallosuarez (Mensaje 366865)
[..] 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.[..]

Se puede subir documentos, programas, ejemplos, etc. a nuestro ftp.

Gallosuarez 11-06-2010 01:23:24

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

Gallosuarez 11-06-2010 01:31:35

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:

Casimiro Notevi 11-06-2010 18:06:34

Cita:

Empezado por Gallosuarez (Mensaje 366936)
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:

¿Y qué documento es? :confused:

Gallosuarez 11-06-2010 18:14:47

Eventos en Firebird...
 
Sres:

El documento se encuentra en Firebird/Documentos/Eventos_en_Firebird.pdf.zip


Saludos,

Gerardo Suárez Trejo

JordiP 14-06-2010 15:19:02

GALLO gracias, ya lo tengo, lo he descargado de la FTP.;)


La franja horaria es GMT +2. Ahora son las 19:07:27.

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