Endlosschleife beim Löschen von TTable (war: TTable brauche dringend Hilfe)
-
Hi,
ich versuche ein Plugin zu schreiben welches per LoadLibrary zur Laufzeit geladen wird.
Jenes soll eine per ODBC und einem TTable Objekt ein paar Informationen aus einer Datenbank auslesen
und diese in eine XML Datei speichern. Ich erzeuge in einer Funktion ein neues TTable Objekt mit "new TTable(NULL)",
verbinde dieses mit der Datenbank, lese was ich lesen will und beende die Verbindung wieder.TTable *Tabelle = new TTable(NULL); try { Tabelle->DatabaseName = plugin_aliasname; Tabelle->TableName = "Main"; Tabelle->Active = true; } catch (...) { // fehlermeldung ... } // tabelle auslesen... Tabelle->Active = false; delete Tabelle;
Wenn ich den Speicher von Tabelle wieder freigebe, passiert nichts mehr
und das Programm hängt in irgend einem Thread (laut CPU-Fenster) in einer Endlosschleife fest.Hat irgend jemand eine Idee???
Edit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
Saiserit,
auf alle Fälle solltest Du auch das Löschen der Tabelle in einen try-catch-Block einfügen, um etwaige Fehlermeldungen anzeigen/abfangen zu können.
-
Ich habe das Problem zurückverfolgt und festgestellt, daß die Endlosschleife erst zustande kommt,
wenn die Bibliothek mit FreeLibrary "entlassen" wird. Diese Endlosschleife tritt allerdings auch nur dann auf,
wenn ich die Tabelle per ODBC für eine Access Datenquelle verwende.
Nutze ich den Code um per MyODBC auf eine MySQL Datenbank zuzugreifen funktioniert es.
Das ist wirklich einer der skurilsten Fehler die ich je mit dem BCB erlebt habe.
Übrigens wenn ich meinem Plugin einen Zeiger auf ein TTable Objekt übergebe, funktioniert es mit beiden Datenquellen.Wie auch immer trotzdem Danke für die Antwort