Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
Cita:
Empezado por jachguate
¿Firebird 5!!?

chanfle!!... yo me quedé en la alpha de firebird 2.0...
Evidentemente:1.5
Responder Con Cita
  #2  
Antiguo 30-06-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
Para que conste, por si alguien consulta este hilo más tarde, la solución fue desinstalar firebird y volver a instalarlo. Parece como si en algún sitio de la instalación quedase grabado que ese registro estaba bloqueado y al reinstalarlo se sobreescribiese ese sitio.

Última edición por apicito fecha: 30-06-2005 a las 19:04:01.
Responder Con Cita
  #3  
Antiguo 01-07-2005
Avatar de Rufus
Rufus Rufus is offline
Miembro
 
Registrado: may 2004
Ubicación: Canarias
Posts: 193
Poder: 23
Rufus Va por buen camino
Apicito me parece interesante el problema que planteas.

Te confieso que en las aplicaciones que realizo con firebird nunca he utilizado WITH LOCK. Utilizando bien las transacciones y los bloqueos optimistas no he tenido problema aunque he de aclarar que los programas son ligeros y los utilizan normalmente entre 10 y 20 usuarios simultaneos aproximadamente.

Si lo que quieres es bloquear un registro a nivel edición ya sabemos que eso lo conseguimos aplicando un UPDATE ficticio sobre ese registro al comenzar la edición por un cliente aunque podemos tener problemas con los triggers y hay que controlarlos muy bien.

Dos enlaces interesantes:

- Notas de la versión 1.5:
http://www.ibphoenix.com/downloads/F...tesSpanish.pdf
En la página 15 se describe la opción WITH LOCK.

- Si lees bien ingles técnico te dejo este artículo que esta muy muy bien, sobre bloqueos en firebird:
http://www.interbase-world.com/en/articles/805.php

Un saludo
__________________
Milo

Última edición por Rufus fecha: 01-07-2005 a las 11:36:27.
Responder Con Cita
  #4  
Antiguo 03-07-2005
case case is offline
Registrado
 
Registrado: jul 2005
Posts: 5
Poder: 0
case Va por buen camino
Correcto. El uso de un SELECT con for update no me parece una muy buena opcion. Es preferible utilizar un UPDATE anterior o simplemente actualizar el registro y capturar la excepcion si hay un conflicto de versiones. Es mas simple, claro y ordenado. Ah, aparte de que el motor es muy eficiente para manejar estas situaciones sin necesidad de bloqueos.
Responder Con Cita
  #5  
Antiguo 04-07-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
La aplicación está siendo utilizada simultáneamente por 20-30 usuarios y no había tenido problemas. La tabla que me ofrecia problemas era el del contador de registro de entrada, osea el asignador de numeros consecutivos. Es el único sitio en toda la aplicación en la que utilizo el WITH LOCK. A ese contador acceden ocasionalmente todos los usuarios pero en la oficina de entradas existen tres puestos que solo graban registros que utilizan ese contador, por lo que el nivel de concurrencias es muy alto. Me dio muchos problemas hasta que utilice el mecanismo que expuse en el primer mensaje, donde el concurrente intenta grabar diez veces y si no lo consigue da mensaje de concurrencia. Desde principio de año no me dió ningún problema, hasta este momento en que creo que no se trata de que funcione mal el WITH LOCK sino que el servidor hizo algo mal.
Un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 12:10:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi