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 20-06-2010
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
Problemas con Servicios de Firebird

Hola a todos. Tengo un sistema de facturacion instalado en una maquina servidor y varias terminales acceden a la base de datos, el problemas es que en muchas ocasiones tengo que reiniciar el servicio de firebird server ya que la tabla de Detalle de factura se loockea y no permite que se inserte ningun record, obligandome a reiniciar el servicio y por supuesto deconectar los usuarios.

La aplicacion esta desarrollada en delphi 5, uso firebird 2.0 y corre bajo windows 2000 server.

Agradezco cualquier ayuda que puedan brindarme en este sentido..
Responder Con Cita
  #2  
Antiguo 20-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con la poca información que das es difícil dar una opinión, pero parece un problema de mal uso de las transacciones por parte del programa.
Se supone que deben salir mensajes de error, ¿cuáles son?
Responder Con Cita
  #3  
Antiguo 02-07-2010
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
El mensaje de error es : lock conflict on no wait transaction. Tal parece que el error se produce cuando hay varias transacciones sumultaneas. En realidad no se como resolver este problema.

Muchas gracias por vuestra atención.
Responder Con Cita
  #4  
Antiguo 02-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira esto, ¿está tu componente ibtransaction cone sos parámetros?, pues entonces es mejor que lo pongas así:

Responder Con Cita
  #5  
Antiguo 04-07-2010
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
Gracias por tu respuesta, pero lo que me sugieres es configurar el objeto ibdatabase lo que ocurre es que no estoy utilizando los componentes de interbase para conectarme a la base de datos, sino el BDE de delphi. Ahora bien si la solucion consiste en cambiar los componentes y olvidarme de BDE, pues lo cambio. Ahora quiero estar seguro que esa es la solucion, ya que cambiarlo realmente requiere un esfuerzo extra, que dices?
Responder Con Cita
  #6  
Antiguo 04-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
BDE es ODBC, osea, no sera una conexion directa.
El problema que tienes esta en que la transaccion no se termino de ejecutar.
Ademas de lo mencionado por Casimiro (en el Ibtransaction) si no haces un CommitRetained no se termina de hacer la transaccion y seguira el error.
Saludos
PD: Maestro: Algo he aprendido jejeje.
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 04-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Evidentemente el BDE es un poquito obsoleto, yo llegué a conocerlo en 1998 y ya lo deseché y usé los componentes FreeIB
Responder Con Cita
  #8  
Antiguo 04-07-2010
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El error dice que hay un conflicto de bloqueos de registros en una transacción que no lleva el parámetro "no wait", dicho de otra forma, ahora mismo una transacción se queda esperando a que otra termine, y puesto que no termina, obtienes ese error (ahí está el problema de verdad, saber por qué no termina la primera transacción).

Ahora bien, si pones el parámetro "no wait" lo que vas a obtener es una excepción con algo más de información, posiblemente te ayude a solventar el problema o a mejorar el diseño, pero no creo obtengas una respuesta directa (ojalá me equivoque).

Si una transacción lleva el parámetro "no wait" y surge cualquier problema al modificar un registro, no se quedará esperando como lo hace ahora, sino que devuelve un error (una excepción) al programa inmediatamente.

Siento no poder ayudar más, pero es que tampoco he usado BDE con Firebird.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 04-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
La verdad es que yo tampoco recuerdo cómo actua el BDE en estos casos. Pero si puedes cambiarlo por algo más moderno, cámbialo.
Responder Con Cita
  #10  
Antiguo 20-07-2010
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
Estos componentes FreeIB a lo que haces referencia Casimiro son los mismos que trae delphi 5 en la pestana de Interbase o no?.
Responder Con Cita
  #11  
Antiguo 20-07-2010
auribe auribe is offline
Miembro
 
Registrado: may 2003
Posts: 28
Poder: 0
auribe Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
BDE es ODBC, osea, no sera una conexion directa.
El problema que tienes esta en que la transaccion no se termino de ejecutar.
Ademas de lo mencionado por Casimiro (en el Ibtransaction) si no haces un CommitRetained no se termina de hacer la transaccion y seguira el error.
Saludos
PD: Maestro: Algo he aprendido jejeje.
Lo que apuntas es exactamente lo que esta ocurriendo. Ahora me gustaria saber si los componentes que tu estas utilizando son los componentes que vienen en la pestana de interbase o existen otros componentes que te permitan conectar a una base de datos de interbase directamente y que me ahorre estos problemas.
Responder Con Cita
  #12  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Efectivamente; Los componentes están en la paleta Interbase.
Usas el IBDatabase para la conexión y el IBTransaction para la transaccion.
Luego hecho esto se usan los IBTable e IBQuery como cualquier otro componente.
Tambien estan los componentes ZEOS pero son un poco mas peleones.
Cualquier duda grita.
Saludos
__________________
Siempre Novato
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
Problemas con Servicios cacu OOP 2 19-02-2009 17:13:42
servicios = + problemas!! :( marceloalegre Varios 0 12-07-2005 20:59:30
Problemas con FireBird y las UDF El_Raso Firebird e Interbase 2 03-06-2004 10:43:46
Problemas Firebird Super Server 1.5 con RFunc Firebird v 1.0 Prophoenix Firebird e Interbase 1 09-03-2004 11:40:48
Problemas con ADO y FireBird DavidR Conexión con bases de datos 3 07-11-2003 10:43:04


La franja horaria es GMT +2. Ahora son las 21:49:11.


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