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\debug

    Zur 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 😕


Log in to reply