Frage zur MySql Anbindung

Alles rund um die Programmierung mit Qt
Antworten
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Frage zur MySql Anbindung

Beitrag 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();
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Hast Du in der SQLite - DB die Tabelle auch erstellt?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

Wie bereits gesagt, ich nutzt nur den SQLite Treiber.
Die Tabellen liegen in der MySQL.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

SQLite ist eine Datenbank. Genau wie MySQL. Wie soll der SQLite-Treiber auf eine MySQL-DB zugreifen können?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Die Doku ist in diesem Fall 100% falsch. => Du hast es gefunden, du schreibst es in den Task-Tracker...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

done....
Antworten