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)
-   -   error, al desconectar Database (https://www.clubdelphi.com/foros/showthread.php?t=43279)

JuanErasmo 07-05-2007 18:30:44

error, al desconectar Database
 
Hola amigos
Estoy intentanto conectar en tiempo de ejecucion una DB,
ya lohabia hecho antes,,,,pero esta vez me sale este error :

Código:

cannot disconnect database with open transactions(1)
He intentado todo, Hacer Commit antes de desconectar,
Hacer Rollback,
y nada me funciona....
ALguien puede ayudarme ??
Gracias!!

Fita 07-05-2007 18:44:00

Hola Juan...

Como no especificas que DB utilizas... no se cómo ayudarte.
No obstante, como yo utilizo Firebird hago lo siguiente:

for i := 0 to pFIBDatabase1.TransactionCount - 1 do
if pFIBDatabase1.Transactions[i].InTransaction then
pFIBDatabase1.Transactions[i].Rollback;

pFIBDatabase1.CloseDataSets;
pFIBDatabase1.Close;

Antes de cerrar la DB si alguna transaccion quedo abierta hago el rollback.

Espero te sirva como punto de partida

Saludos

JuanErasmo 07-05-2007 23:12:14

Gracias Fita
 
Utilizo firebird interbase 1.5
en Borland C++ Builder 6.0
Gracias, voy a probar lo que me dices,
dices entonces que si hay alguna transaccion pendiente, antes de cerrar debo hacer rollback??
Gracias

JuanErasmo 07-05-2007 23:30:54

sigue sacando el mismo error
 
Hola, no se ha podido solucionar el problema...
Com ohago para cancelar una transaccion???
estoy haciendo esto:
En tiempo de diseño conecto una base de datos local, pero si el ususario quiere conectar otra base de datos, entonces, da click a un boton, y este tiene el siguiente codigo,
Código:

  IBDatabaseDatos->Connected = false;  // Aca lanza la excepcion...dice que no se puede cerrar con transacciones activas, pero  no he hecho ningun comit hasta el momento, y no entiendo que pasa....
  IBTransaction1->Active = false;     
  IBTablePacientes->Active = false;
 
  //////******////*******////******//////******/////*****//////*******//////*****////*

  IBDatabaseDatos->DatabaseName=IPDB+":C:\\basede datos\\datos1.gdb";    ini->WriteString("Form1","IP",IPDB);



La franja horaria es GMT +2. Ahora son las 12:38:22.

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