Exception bei Verwendung/Beenden von dbExpress-Komponenten
-
Hallo,
ich verwende eine MySQL-Datenbank 5.01 und dbExpress-Komponenten (CG2009). Die Verbindung stelle ich erfolgreich mit einer TSQLConnection her. Zudem verwende ich die Komponente TSimpleDataSet. Der Zugriff auf MySQL-Tabellen funktioniert. Daten werden angezeigt.Das Problem ist, dass beim Beenden meines Programms die folgende Exception auftritt:
Im Projekt1.exe ist eine Exception der Klasse EExternalException mit Meldung 'Externe Exception CD0000008' aufgetreten.
Erste Gelegenheit bei $7C812AFB (im CPU-Fenster nach dem Anhalten: pop esi).Ich habe deshalb das Programm radikal gekürzt um zu sehen woran es liegt.
Das folgende Progrämmchen verursacht bereits die genannte Exception.Kann mir jemand sagen, woran das liegt und wie ich den Fehler beheben kann?
Die Exception führt auch dazu, dass sich mein Rechner nicht mehr ordnungsgemäß herunterfahren läßt.//h-------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DB.hpp> #include <DBClient.hpp> #include <SimpleDS.hpp> #include <DBXMySql.hpp> #include <SqlExpr.hpp> #include <WideStrings.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-verwaltete Komponenten TSimpleDataSet *SimpleDataSet1; TSQLConnection *SQLConnection1; public: // Benutzer-Deklarationen __fastcall TForm1(TComponent* Owner); }; //cpp--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){ SimpleDataSet1->DataSet->CommandText = "SELECT * FROM Testtabelle"; SimpleDataSet1->Open(); } //---------------------------------------------------------------------------
-
Die Exception, die nach Programmende auftritt konnte ich beseitigen, indem ich zusätzlich u.g. libmySQL.dll nochmals in das Verzeichnis
C:\Programme\CodeGear\RAD Studio\6.0\bin
kopiert habe.
Jetzt funktioniert alles wunschgemäß.Zur Info für alle, die ähnliche Probleme haben:
Wichtig ist, dass die richtige libmySQL.dll zur MySQL-Version paßt. Das klingt banal, ist es leider nicht.
Meine MySQL-Version ist 5.0.41. Für den Einsatz von dbx benötige ich
libmySQL.dll (Größe: 2,49 MB (2.617.344 Bytes), letzte Änderung: Freitag, 4. Mai 2007, 10:03:58)
Diese Datei findet sich nach Installation der genannten MySQL-Version unter Programme..\MySQL Server 5.0\lib\debugZur Anbindung von CG2009 befinden sich bei mir die folgenden Dateien
libmySQL.dll
dbxconnections.ini
dbxdrivers.ini
zusätzlich im Verzeichnis C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\dbExpress
Mit dieser Einstellung kann ich zwar auf die MySQL-Daten zugreifen, aber es entsteht eben eine Exception, warum auch immer