Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2007
Roky Roky is offline
Miembro
 
Registrado: feb 2004
Ubicación: Guipuzcoa
Posts: 11
Poder: 0
Roky Va por buen camino
Cool Concurrencia "bloqueada" en Firebird.

Hola a todos,

Estoy trabajando con Delphi7 y Firebird 2.0 sobre Windows XP Pro.

El caso es que he comprobado que si intento modificar un registro de la BD que ha sido modificado por otra sesión de la aplicación, y que por tanto está bloqueado, la ejecución del código de mi aplicación en Delphi se bloquea. Es decir, en lugar de saltar una Excepción de BD, la cual pudiera capturar y actuar en consecuencia, la ejecución del código de mi aplicación en Delphi se bloquea justo en la instrucción "execSQL" que lanzan el "update" sobre el registro bloqueado.
¿Es esto normal? ¿Hay alguna manera de provocar que salte una excepción que pueda capturar?

Gracias.
Un saludo.
Responder Con Cita
  #2  
Antiguo 02-12-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Hola, te hago unas preguntas...

1. Que componente usa para hacer la el execSQL?
2. Justo despuesde hacer el execSQL hace algun commit?
3. TIene algun componente transaccional y que opciones tiene este?? (read commit, wait ó no wait)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #3  
Antiguo 02-12-2007
Roky Roky is offline
Miembro
 
Registrado: feb 2004
Ubicación: Guipuzcoa
Posts: 11
Poder: 0
Roky Va por buen camino
Hola RonPablo,

1. Utilizo los componentes Mercury.
2. Concretamente, tras el execSQL que me ocupa no hay commit. De todos modos, la instrucción que va tras el execSQL no llega a ejecutarse.
3. Utilizo componentes transaccionales (TMDOTransaction). Las opciones que tienen son:
AutoCommit = False
IdleTimer = 0
DefaultAction = TACommit.

Un saludo.
Responder Con Cita
  #4  
Antiguo 02-12-2007
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
en el componente de la transaccion al dar doble click sale como esta configurado... ahi dice si es read commit o algo similar, la cuestion es que despues de hacer una insercion es recomendble hacer commit, depronto ese puede ser su problema
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #5  
Antiguo 15-12-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

verifica tu transacion para ver si incluye readversion. De no ser asi te vas a causar muchos dolores de cabesa.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 17-12-2007
Roky Roky is offline
Miembro
 
Registrado: feb 2004
Ubicación: Guipuzcoa
Posts: 11
Poder: 0
Roky Va por buen camino
Efectivamente, no tenía configurados los parámetros del componente Transaction. Con las pistas que me habéis dado, indicaré los parámetros:
NOWAIT: para que en caso de conflicto, no se bloquee.
READCOMMITED: para ver la última version de los registros modificados (y confirmados (commit)) por otras transacciones.

Por otra parte, recomiendo este documento para conocer las transacciones en IB y FB.
http://www.intitec.com/varios/transacciones-0.2.6.pdf

Gracias por el interés.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comentario "aplastante" contra los que atacan la "piratería" Casimiro Notevi La Taberna 12 07-03-2010 14:03:02
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" mamcx Noticias 51 31-10-2006 20:56:32
"Lock time out error" tabla bloqueada david duarte Providers 4 12-04-2006 17:38:05


La franja horaria es GMT +2. Ahora son las 22:52:59.


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
Copyright 1996-2007 Club Delphi