Hi,
ich hab ein VS 2005 Konsolenprojekt in C++ bei dem ich MySql verwende.
Die Verbindung mit der Datenbank scheint auch tadellos zu funktionieren.
Wenn ich allerdings eine Abfrage starte und anschließend versuche die Ergebnisse aus dem ResultSet auszulesen bricht das Programm mit folgender Meldung ab:
Der Teilquellcode in dem der Fehler erfolgt sieht so aus:
Das Problem scheint der Aufruf von res->getString("sk") zu sein.
Interessant ist das der Text sogar noch ausgegeben wird, weil ich ihn in der Konsole lesen kann. Er gibt mir sogar dieZeichenkette aus der Datenbank zurück, die Abfrage funktioniert also auf jeden Fall.
Scheint auch kein Bufferoverflow zu sein, weil das Problem auch auftritt wenn ich nur res->getString("sk"); aufrufe.
Ich bin echt ratlos..
/edit: Lieg ich jetz hier richtig oder gehört das in C++ Datenbanken? Weiß ja nicht genau wo das Problem liegt..
Was vielleicht noch wichtig ist: ich verwende den mysql c++ connector, die dynamische lib.
ich hab ein VS 2005 Konsolenprojekt in C++ bei dem ich MySql verwende.
Die Verbindung mit der Datenbank scheint auch tadellos zu funktionieren.
Wenn ich allerdings eine Abfrage starte und anschließend versuche die Ergebnisse aus dem ResultSet auszulesen bricht das Programm mit folgender Meldung ab:
Windows has triggered a breakpoint in sqltest.exe.
This may be due to a corruption of the heap, and indicates a bug in sqltest.exe or any of the DLLs it has loaded.
This may be due to a corruption of the heap, and indicates a bug in sqltest.exe or any of the DLLs it has loaded.
PHP Code:
sql::ResultSet *res;
std::string text;
//Query ausführen - stmt, con, und driver sind gültig!
res = stmt->executeQuery("SELECT sk FROM accounts WHERE id LIKE 28");
res->next();
printf( (res->getString("sk")).c_str() ); //Fehlerstelle
Das Problem scheint der Aufruf von res->getString("sk") zu sein.
Interessant ist das der Text sogar noch ausgegeben wird, weil ich ihn in der Konsole lesen kann. Er gibt mir sogar dieZeichenkette aus der Datenbank zurück, die Abfrage funktioniert also auf jeden Fall.
Scheint auch kein Bufferoverflow zu sein, weil das Problem auch auftritt wenn ich nur res->getString("sk"); aufrufe.
Ich bin echt ratlos..
/edit: Lieg ich jetz hier richtig oder gehört das in C++ Datenbanken? Weiß ja nicht genau wo das Problem liegt..
Was vielleicht noch wichtig ist: ich verwende den mysql c++ connector, die dynamische lib.
Comment