Planned maintenance has been done but it did not solve the problem. So work will continue on this and a new time for trying updates will be announced asap.

La QSqlQuery non viene processata



  • Ciao ho un problema sulla Query

    Essendo un primo programma sono stato un po' confusonario
    Apro un file di testo e lo associo ad un oggetto Textstream
    Per una serie di necessità separo il file in una string list
    Associo l'oggetto TextStream ad un nuovo file che salverà le modifiche
    Prelevo le stringhe dalla lista e compongo una query,
    Il database in SQL lo ho aperto .
    A questo punto faccio questa sequenza

    QSqlQuery disattivazione(mDatabase);
         disattivazione = mDatabase.exec(fileDiTesto->readAll());
         disattivazione.exec();
    

    Eseguo il tutto e mi esce questo messaggio

    "QODBCResult::exec: No statement handle available" 
    

    E ovviamente la query non funziona .
    Cosa posso fare?


  • Qt Champions 2018

    Cosa contiene fileDiTesto->readAll()?



  • È un Qtextstream che contiene tutta la query


  • Qt Champions 2018

    ok, mi spiego meglio:

    const QString contenuti = fileDiTesto->readAll();
    qDebug() << "Query: " << contenuti;
    QSqlQuery disattivazione(mDatabase);
    disattivazione.prepare(contenuti);
    if(disattivazione.exec())
    qDebug() << "Successo";
    

    Cosa stampa?



  • Risolto. Avevi ragione, non stampava nulla. Infatti prima di queste righe avevo messo la visualizzazione del contenuto dell'oggetto Qtextstream in un browser per essere sicuro del testo. Non sapevo che usando la funzione readAll svuotasse l'oggetto QtextStream. Quindi cambio la domanda, mi daresti un'idea su come conservare il contenuto in un oggetto QTextStream?


  • Qt Champions 2018

    @Polly said in La QSqlQuery non viene processata:

    funzione readAll svuotasse l'oggetto QtextStream.

    Non lo svuota, muove il cursore piu' avanti alla fine del file.
    fileDiTesto->device()->seek(0); riporta il cursore all'inizio cosi' puoi rileggerlo



  • Ahhhhhh. Ecco è un contenitore. Grazie sei stato molto utile


Log in to reply