Bom dia lima_will,
Remova o dois-pontos ao final da declaração SQL.
Outra coisa: use o isValid() para determinar o erro SQL em questão e mostrá-lo por exemplo com o qDebug().
Veja um exemplo prático:
@
QString stmt="UPDATE CPENTRADAS SET CP_ETRELA=:CP_ETRELA, CP_OPERADOR=:CP_OPERADOR, "
"CP_REQUISICAO=:CP_REQUISICAO, CP_NDOC=:CP_NDOC, CP_EMISS=:CP_EMISS, CP_VALOR=:CP_VALOR, "
"CP_COMMENT=:CP_COMMENT WHERE CP_IDENT=:CP_IDENT";
QSqlDatabase::database().transaction();
QSqlQuery q;
q.prepare(stmt);
q.bindValue(":CP_ETRELA", glbSerialEntidade(cbFornec->currentText()));
q.bindValue(":CP_OPERADOR", leOperador->text().simplified());
q.bindValue(":CP_REQUISICAO", leRequisicao->text().remove(' '));
q.bindValue(":CP_NDOC", leNDoc->text().toLongLong());
q.bindValue(":CP_EMISS", vglb.toISO(dtEmissao->text()));
q.bindValue(":CP_VALOR", brazil.toFloat(leValor->text()) );
q.bindValue(":CP_COMMENT", teComments->toPlainText());
q.bindValue(":CP_IDENT", lcdIdent->value());
q.exec();
if(q.lastError().isValid() ) {
QMessageBox::critical(this, tr(vglb.nameProg()),
q.lastError().text()+tr("<BR><BR>Registro não foi gravado."),
QMessageBox::Close );
return;
}
QSqlDatabase::database().commit();
@
Abraços