ADO - Recordset richtig schliessen?!
-
Moin!
Ich mache hier ein Paar Datenbank Manipulationen per ADO auf einer Firebird/Interbase Datenbank. Nun ist mir schon öfter aufgefallen, das ich keine DDL Statements ausführen kann, wenn ich gerade eine Abfrage auf eine Tabelle abgeschickt habe. Bespiel: Ich führe folgendes Statement über das ADO Recordset Objekt aus
select * from tabelle
... ich mach irgendwas mit den Daten und schliesse das Recordset anschliessend über die Close() Funktion. Nun führe ich irgendein DDL Zeug aus, wie z.B.
alter table tabelle ... / drop table tabelle
... und der Treiber verweigert mir dies mit der Meldung "Object tabelle is in use". Wie krieg ich das Ding denn geschlossen, wenn nicht über "Close" ? Ich kann es erzwingen indem ich über das selbe Recordset-Object eine Abfrage auf eine andere Tabelle ausführe, aber das ist auch nicht die eleganteste Lösung
-
Wenn Close nicht funktioniert versuch doch einfach mal das Recordset über Release zu schliessen... vielleicht klappt das.
Ich behalte alte Recordset Objekte nie auf, und hatte noch nie solche Probleme mit DDL.