DAS PROBLEM:C++ String Ausgabe von MySQL-Anschluss mit Grafik-Schnittstelle entweder abstürzt oder druckt Müll
ich meine SQL-Abfrage haben ordnungsgemäß ausgeführt wird, wenn der Ausgang ist Konsole, aber ich bekomme ^^^ ^^^^^ ! auf der Grafikoberfläche oder es stürzt ab.
Mein Programm ist auf Visual Studio 2005 kompiliert und ich benutze Allegro.cc-Bibliothek Dies ist ein altes Projekt, das wiederbelebt werden muss.
Was ich tun möchte, ist:
1- Führen Sie eine Grafikschnittstelle, haben einige Aktion gehen, so dass sie die Daten auf MySQL speichern.
2- Immer und jetzt, ich muss die DB abfragen und einige Daten bekommen.
3- Ich möchte die abgefragten Daten auf dem Grafikbildschirm anzeigen.
MySql Connector ist 1.1.7 mit Binärdateien von der Website.
MySQL auf XAMP Turnkey Linux läuft Box 5.5.33-0 + wheezy1
Das Schema Motor ist: InnoDB Die Tabelle Kollation ist UTF-8 Standardkollatierung Die PK ist NN, AI.
Ein Spaltenname ist PointOfSaleID, VARCHAR (9) Ein weiterer Spaltenname ist cardIndex, INT (11)
Das Stück Code unten:
std::stringstream OutputStream;
(...)
prep_stmt = con -> prepareStatement ("SELECT * FROM `Triangulo`.`CardsSold` WHERE HitsA > 4 AND HitsB > 4 AND HitsC >4");
res = prep_stmt -> executeQuery();
con -> commit();
while (res -> next()) {
OutputStream << res -> getInt("idCardsSold");
textprintf_ex(OUTPUT, font, 10, 10, makecol(255,255,255),
makecol(0,0,0), "Winner Card %s", OutputStream.str().c_str());
OutputStream.str(std::string()); // clear the string stream
CRASHES HERE! OutputStream << res -> getString("PointOfSaleID");
textprintf_ex(OUTPUT, font, 10, 300, makecol(255,255,255), makecol(0,0,0), "PointOfSaleID %s", OutputStream.str().c_str());
Wenn ich die gleiche Sache auf die Konsole - Textausgabe - das Programm läuft korrekt.
prep_stmt = con -> prepareStatement ("SELECT * FROM `Triangulo`.`CardsSold` WHERE HitsA > 4 AND HitsB > 3 AND HitsC >4");
res = prep_stmt -> executeQuery();
con -> commit();
/* fetch the data : retrieve all the rows in the result set */
while (res -> next()) {
cout << Card: ";
cout << res -> getInt("idCardsSold") << endl;
OutputStream << res -> getString("PointOfSaleID");
std::string resultstr = OutputStream.str();
const char* cstr2 = resultstr.c_str();
cout << "Loja Venda: ";
cout << cstr2 << endl;
cout << res -> getString("PointOfSaleID") << endl;
}
Es scheint ein Problem mit dem std :: stringOutput zu sein, aber ich kann nicht herausfinden, was los ist.
Jede Hilfe wird geschätzt.