Crash bei MySQL-C-API
-
Hallo,
folgender Code:#include <iostream> #include <my_global.h> #include <mysql.h> using namespace std; MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; int main() { my_ulonglong row_count=0; conn=mysql_init(NULL); if(mysql_real_connect(conn,"server01","root","test123","test",0,NULL,0)) { cout << "Verbindung hergestellt" << endl; } else { cout << "Verbindung fehlgeschlagen" << endl; } mysql_query(conn,"SELECT * FROM mitarbeiter"); res=mysql_store_result(conn); while(row=mysql_fetch_row(res)) { for(unsigned int i=0;i<mysql_num_fields(res);i++) { cout << row[i]; } cout << endl; } mysql_close(conn); system("PAUSE"); return 0; }
Kompilieren klappt ohne Fehler und Warnungen. Wenn ich das Programm ausführe, crasht es allerdings beim Beginn der while-Schleife. Ich vermute es liegt an mysql_fetch_row(res) oder mysql_store_result(conn) ... aber warum?
Das DBMS ist Bestandteil einer Windows-XAMPP-Installation.
Danke und Gruß,
Sebastianbtw: Kompiliert wurde das ganze mit VC++ 2005 Express.
-
.< ja was crash? fehlermeldung, callstack, und und und...
edit:
es mach sinn den return von mysql_query zu überprüfen, also in der artok = mysql_query(&mysql, query); if (ok != 0) { // error }
desweiteren überprüfen ob die query überhaupt rows zurückgegeben hat, bevor man mit mysql_fetch_rows() durchiteriert:
num_fields = mysql_num_fields(resultset); num_rows = mysql_affected_rows(&mysql); if (num_rows == 0) { // error }
-
OK vielen Dank schonmal.
mysql_query liefert einen Fehler zurück...aber warum? Die Query ist eindeutig richtig. Habs auch schon mit einer anderen Datenbank versucht. Gleiches Problem.
hm...
-
Sebix schrieb:
OK vielen Dank schonmal.
mysql_query liefert einen Fehler zurück...aber warum? Die Query ist eindeutig richtig. Habs auch schon mit einer anderen Datenbank versucht. Gleiches Problem.
hm...
ok = mysql_query(conn, "<query>"); if (ok != 0) { printf("MySQL error %d (%s)\n", mysql_errno(conn), mysql_error(conn)); }
-
was hat's ausgespuckt? oder hat sich's erledigt?
-
Hat sich erledigt.
Hab das Programm auf ein Linux-System portiert, wo ich es letztendlich auch brauchen werde und da läufts ohne wenn und aber.Danke für deine Hilfe!
Gruß,
Sebastian