Seite 1 von 1

Frage zur MySql Anbindung

Verfasst: 22. September 2009 14:02
von toem
Hallo,
ich habe eine MySql Datenbank. Leider ist mein QT aber nicht für MySql kompiliert, so daß mir der Treiber hierzu fehlt.
Ich bin daher hingegangen und baue den Connect via QSQLITE auf, was auch funktioniert. Zumindest behauptet QT der Connect auf die Datenbank habe funktioniert.
Wenn ich aber danach Daten aus eine Tabelle abfragen möchte, erhalte ich die Meldung, die Tabelle sei nicht vorhanden (no such table).
Liegt das jetzt an MySQL und dem falschen Treiber? Oder mach eich generell etwas falsch?

Code: Alles auswählen

QSqlQueryModel *query = new QSqlQueryModel;
    query->setQuery("Select * from wwm_data", db); 
    int row = query->rowCount();

Verfasst: 22. September 2009 14:12
von Christian81
Hast Du in der SQLite - DB die Tabelle auch erstellt?

Verfasst: 22. September 2009 14:29
von toem
Wie bereits gesagt, ich nutzt nur den SQLite Treiber.
Die Tabellen liegen in der MySQL.

Verfasst: 22. September 2009 15:00
von Christian81
SQLite ist eine Datenbank. Genau wie MySQL. Wie soll der SQLite-Treiber auf eine MySQL-DB zugreifen können?

Verfasst: 22. September 2009 15:22
von toem
Tja, anscheinend kann er es, teilweise.

Egal, ich bin jetzt auf der SQLite und habe die Tabelle dort. Geht auch.

Wie frage ich denn jetzt auf einen einzelnen Satz ab?

z.B. random_integer ist 7
QSqlQueryModel query;
query.setQuery("Select * from [wwm_data] where ldf_nr = " + random_integer, db);
Das ergibt: near "lect" : syntax error

Warum?

Verfasst: 22. September 2009 15:29
von Christian81
toem hat geschrieben:Tja, anscheinend kann er es, teilweise.
Na wenn Du meinst :lol:
toem hat geschrieben: Wie frage ich denn jetzt auf einen einzelnen Satz ab?

z.B. random_integer ist 7
QSqlQueryModel query;
query.setQuery("Select * from [wwm_data] where ldf_nr = " + random_integer, db);
Das ergibt: near "lect" : syntax error

Wo kommt der Fehler her? Vom Compiler? Oder willst Du das wir Dir SQL-Syntax erklären?

Verfasst: 22. September 2009 15:29
von AuE
A) Warum gibst du immer db mit? Hast so viele DB's offen?

B)
QSqlQuery query(QString("Select * from * where NR = %0).arg(myint));

@Christian: Schau mal in die Doku.... ich wollte es selbst net glauben aber entweder haben die da Fehler drin oder es klappt alles nur im Debug oder die treiber sind unisex ;-)
The following snippet shows how to create and open a default connection to a MySQL database:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
von http://doc.trolltech.com/4.5/qsqldatabase.html

Verfasst: 22. September 2009 17:22
von upsala
Die Doku ist in diesem Fall 100% falsch. => Du hast es gefunden, du schreibst es in den Task-Tracker...

Verfasst: 22. September 2009 17:38
von AuE
done....