qt, sqlite select-Anweisung
Habe ich beschlossen zu testen, sqlite-db für meine Qt-Anwendung.
Ich habe die sqlite db-Datei mit den richtigen Anweisungen (create table etc.. Eingefügt und einige Reihen von Daten).
Mein problem ist, dass wenn ich eine select-Anweisung ausführen, ich bekomme keine Datensätze.
Dies ist der code den ich benutze:
qq.sprintf("SELECT * from descriptors WHERE descriptors.id=%d ",idx);
query.exec(qq);
if( query.isSelect() ){
while (query.next()){
int fff = query.value(0).toInt();
}}
Das problem ist, dass ich nie in die while-Schleife. Abfrage.next() scheint nicht zu funktionieren.
irgendwelche Tipps?
vielen Dank im Voraus,
Thodoris
p.s. Ich vergaß zu schreiben, dass meine Konfiguration so: Qt 4.7.3, windows 7, visual studio 2008
Sie sollten nicht Ihre Abfragen erstellen, wie die. Bindungen statt, sonst Little Bobby Tables wird wieder zuschlagen.
Danke für die Antwort und den comic. Ich habe diese Art von Abfrage erstellen mit mysql und fein gearbeitet. Ich werde versuchen, mit Bindungen, um zu sehen, was passiert, und ich werde zu aktualisieren
Natürlich es wird funktionieren gut. Bis Bobby Tabellen kommt. Nur weil es funktioniert, bedeutet nicht, dass es OK ist. Es ist wie laufen STOPP-Schilder. Es funktioniert, bis jemand stirbt.
Danke für die Antwort und den comic. Ich habe diese Art von Abfrage erstellen mit mysql und fein gearbeitet. Ich werde versuchen, mit Bindungen, um zu sehen, was passiert, und ich werde zu aktualisieren
Natürlich es wird funktionieren gut. Bis Bobby Tabellen kommt. Nur weil es funktioniert, bedeutet nicht, dass es OK ist. Es ist wie laufen STOPP-Schilder. Es funktioniert, bis jemand stirbt.
InformationsquelleAutor theosem | 2011-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anderen als den Fehler hexa gepostet,
query.isSelect()
wird immer true zurückgegeben, auch wenn die Abfrage fehlgeschlagen ist. Müssen Sie überprüfen das Ergebnis derexec()
:OK vielen Dank gelöst. Es war eine Kombination von Problemen. zuerst die Bindungen und zweitens die Datenbank-Datei wurde nicht ordnungsgemäß erstellt (int wo gespeichert als strings). Nochmals vielen Dank für zu helfen, dies herauszufinden
InformationsquelleAutor Tim Meyer
In meinem Fall -, rückwärts-iteration über QSqlQueries gearbeitet. Ich denke, dies könnte ein bug irgendwo in der QSQLite-Treiber-Implementierung.
InformationsquelleAutor bkausbk