Como realizar um upgrade no mysql com QT
-
Pessoal estou tendando dar um upgrade no banco usando os seguintes comandos:
@up.prepare("update armacao set disponivel=':disp' where codArm=':codArm';"); up.bindValue(":disp","NAO"); up.bindValue(":codArm",codigoArma); up.exec();@
Só que nada acontece, fiz o mesmo comando no pront do mysql e ele realiza a alteração, acredito que o erro esteja na sintaxe do comando alguém saberia qual o comando o erro??
-
tenta remover as aspas simples do ':disp' e ':codArm'
se mesmo assim não funcionar pega o erro com "up.lastError()" -
O metodo bindValue ja coloca as aspas simples....
-
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