Database update statement
-
Hallo Zusammen,
ich habe eine applikation bei denen ich einen Access Datenbank verwende.
Die Daten in der Tabelle zu schreiben hat einwandfrei funktioniert.
bei Update Statement habe ich einen Problem.
Ich weiss es nicht was ich falsch mache.Anbei einen Codeabschnitt wie der Update Statment aussieht:
void DatabaseManager:: updateCalibrationMeasureData( const AClass &result) { QSqlQuery query; query.prepare("UPDATE tblCCWEncoder SET IsCalibrated=:iskalibriert, DCA=:dca, DCB=:dcb, T1=:t1, T2=:t2, " "T3=:t3, T4=:t4, PWZ=:pwz, Phase=:phase, Direction=:direction, " "Current=:current, Volatge=:voltage, Speed=:speed, PE=:pE, WE=:wE, A0=:a0, " "A1=:a1, A2=:a2, A3=:a3, A4=:a4, A5=:a5, " "A6=:a6, A7=:a7, Datum=:datum, Uhrzeit=:uhrzeit WEHRE SerialNrIDRef = '" + getEncoderName() + "'"); query.bindValue(":iskalibriert", true); query.bindValue(":dca", result.strfuGetDCA()); query.bindValue(":dcb", result.strfuGetDCB()); query.bindValue(":t1", result.strfuGetT1()); query.bindValue(":t2", result.strfuGetT2()); query.bindValue(":t3", result.strfuGetT3()); query.bindValue(":t4", result.strfuGetT4()); query.bindValue(":pwz", result.strfuGetPWZ()); query.bindValue(":phase", result.strfuGetPhaseAB()); query.bindValue(":direction", result.strfuGetDirection()); query.bindValue(":current", result.strfuGetI()); query.bindValue(":voltage", result.strfuGetU()); query.bindValue(":speed", result.strfuGetSpeed()); query.bindValue(":pE", result.strfuGetPosError()); query.bindValue(":wE", result.strfuGetWidthError()); query.bindValue(":a0", result.strfuGetAsicA0()); query.bindValue(":a1", result.strfuGetAsicA1()); query.bindValue(":a2", result.strfuGetAsicA2()); query.bindValue(":a3", result.strfuGetAsicA3()); query.bindValue(":a4", result.strfuGetAsicA4()); query.bindValue(":a5", result.strfuGetAsicA5()); query.bindValue(":a6", result.strfuGetAsicA6()); query.bindValue(":a7", result.strfuGetAsicA7()); query.bindValue(":datum", getCurrentDate()); query.bindValue(":uhrzeit", QTime::currentTime()); query.exec(); if(!query.isActive()) { throw(QString("DataBase Error: updateCCW_CalibrationMeasuredata")); } } -
Hi Danke
ich bekomme aber immer diese Fehlermeldung"lastError":[Microsoft][ODBC-Treiber für Microsoft Access] 27 Parameter wurden erwartet,
aber es wurden zu wenig Parameter übergeben. QODBC3: Unable to execute statementIch weiss es nicht welche Parameter fehlt.
Sieht es überhaupt einen Update statement so aus "Wie oben "danke
-
Wie kann ich den query lesen bevor exec()
z.B:QSqlQuery query; query.prepare("........"); query.bindvalue(.....); .... //und genau hier bevor es "query.exec();" durchgeführt wird, der Inhalt von query lesen. query.exec();Danke
-
@Galilio Setze bitte den Thread auf "Solved".
Viele Grüße
Jörg