Hallo allen Qt Fans
ich habe ein Problem mit PreparedQueries unter dem SQL-Modul QODBC3: Es sieht so aus als würden die Platzhalter nicht durch die gebundenen Werte ersetzt. Lasse ich den gleichen Code mit dem QMYSQL3-Treiber auf einer MySQL Datenbank laufen, funktioniert alles korrekt. QSqlDriver::hasFeature sagt, dass QMYSQL3 PreparedQueries nicht unterstützt, so dass Qt dieses emuliert. QODBC3 unterstützt es und Qt emuliert also nichts, nur wird das Query offenbar nicht als Prepared Query interpretiert. Ich habe übrigens alle Kombinationen von Platzhalter- und Bindungsarten probiert, immer mit dem gleichen Misserfolg.
Falls jemand einen Tip hat, wäre ich sehr dankbar.
[gelöst] QODBC3 und PreparedQueries
war leider mein Irrtum
nach einigen Irrwegen bin ich nun selbst drauf gekommen:
QSqlQuery::executedQuery() gibt die Abfrage nur mit ersetzten Platzhaltern zurück, wenn das SQL-Modul keine PreparedQueries unterstützt und Qt emuliert hat. Dass mein Code sich anders als erwartet verhalten hat, lag daran dass zwar QMYSQL3 QSqlQuery::size() unterstützt aber QODBC3 nicht.
QSqlQuery::executedQuery() gibt die Abfrage nur mit ersetzten Platzhaltern zurück, wenn das SQL-Modul keine PreparedQueries unterstützt und Qt emuliert hat. Dass mein Code sich anders als erwartet verhalten hat, lag daran dass zwar QMYSQL3 QSqlQuery::size() unterstützt aber QODBC3 nicht.