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 30-06-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Como usar el IBTransaction

EL escenario es el siguiente: Tengo mi base de datos en FireBird 1.5 y mi aplicacion esta hecha en delphi 7. Mi base de datos esta ubicada en un servidor linux ubuntu, es decir, y la aplicacion deberia estar configurada para que trabaje de modo cliente servidor. He realizado pruebas desde una estacion de trabajo windows xp hacia el server y funciona perfectamente. Pero cuando ejecuto mi aplicacion desde otra estacion de trabajo en windows xp, es decir, dos estaciones con la misma configuracion ejecutando la misma aplicacion, entonces me genera un error que mas o menos dice dead locked update. He leido en varios articulos que se deberia configurar el ibtransacion de modo read_commited o snapshot. El caso es que no quiero que aparezca el error mencioando, y quiero que se trabaje con la misma base de datos al mismo tiempo y desde cualquier estacion de trabajo, es decir, varios usuarios a la vez. Quisera saber si se tiene que abrir y cerrar las tablas antes de trabajar con ellas o abrir y cerrar la base de datos antes de trabajar con ella, es decir en el momento que se necesite se abre. Esa es la gran duda. Gracias por su valiosa atencion.....
Responder Con Cita
  #2  
Antiguo 02-07-2008
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Thumbs up

Hola foro.

Bueno el IBTransaction en mis aplicaciones lo tengo en la forma que se muestre mas abajo, tengo varios usuarios simultaneos sin ningun problema.

Active False
AllowAutoStart True
AutoStopActon saNone
DefaultAction TACommit
IdleTimer 0
Name IBTransaction1
Params read_committed
rec_version
nowait
Tag 0


Al darle boton derecho al objeto y seleccionar Transaction Editor selecciona la opcion Read Commited.

El error "dead locked" o "abrazo mortal" significa que dos usuarios estan tratando simultaneamente de modificar un registro y se queda cada uno esperando infinitamente a que el otro suelte el recurso.

Comentanos que objetos estas utilizando para acceder a las tablas, en lo perosnal prefiero los TIBDataset, casi nunca utilizo los TIBTable.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #3  
Antiguo 02-07-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
ok, de alguna manera gracias especiales por tratar este tema. En mi aplicacion utilizo los componentes TIBDataSet y un DataSource (este para poder asociarlo a una agrilla). El error se genera en el momento que ejecuto un store procedure que contiene lo siguiente:


Código SQL [-]
delete from temporal_cuadre;
insert into temporal_cuadre (fecha_pago_factura, numero_factura_impresa, 
codigo_suscriptor, fecha, rif, nombre, alicuota_iva, 
monto_iva, cloaca, consumo_agua, monto_facturado,
forma_pago, numero_cheque, nombre_banco, 
tipo_tarjeta_credito, nombre_banco_tarjeta, tipo_factura)
select f.fecha_pago_factura, f.numero_factura_impresa, f.codigo_suscriptor, 
f.fecha, s.id as rif, s.nombre_fiscal as nombre, f.alicuota_iva, f.monto_iva, 
f.cloaca, f.consumo_agua, f.monto_facturado, f.forma_pago, f.numero_cheque, 
f.nombre_banco, f.tipo_tarjeta_credito, f.nombre_banco_tarjeta, f.tipo_factura
from facturacion f
left join direccion_operacional d on d.codigo_do=f.codigo_suscriptor
left join suscriptores s on s.id=d.id_suscriptor
where (f.status_factura='Facturado') and (f.fecha_pago_factura=:x_fecha_pago_factura);


Realmente no se porque se genera dicho error.
Responder Con Cita
  #4  
Antiguo 02-07-2008
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Otra cosa la configuracion del componente TIBDataSet tambien esta igual que la configuracion que se muestra en el post anterior.
Responder Con Cita
  #5  
Antiguo 06-07-2008
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Puedes describir el error un poco mejor, mejor si nos indicas el mensaje que te envia el motor de bases de datos.
__________________
Luis Fernando Buelvas T.
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
FB+IBX+IBTransaction+ClientDataSet hibero Conexión con bases de datos 12 19-06-2008 17:42:18
Como manejo el ibstoredproc, el ibtransaction y el clientedataset ingabraham Varios 5 16-02-2008 01:20:47
IBTransaction edy_aca Conexión con bases de datos 0 14-03-2005 18:33:38
Rendimiento e IBTransaction brandolin Firebird e Interbase 1 01-06-2004 21:33:06
Consultas IBDatabase - IBTransaction PALANCA Firebird e Interbase 3 29-07-2003 15:31:44


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


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