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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.