Acces bdd +Qsqlite
Koinkoin
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
J'essaye d'accéder a une base de donnée mysql ( WAMP ) Mais cela ne marche pas a l'exécution j'ai droit a un "no query Unable to fetch row". Merci d'avance :)
J'essaye d'accéder a une base de donnée mysql ( WAMP ) Mais cela ne marche pas a l'exécution j'ai droit a un "no query Unable to fetch row". Merci d'avance :)
#include <QtCore/QCoreApplication>
#include <QsqlDatabase>
#include <QsqlError>
#include <Qstring>
#include <QSqlQuery>
#include <QVariant>
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setPort(3306);
bool ok = db.open("root","");
QString cname = db.lastError().text();
std::string off = cname.toStdString();
std::cout<<off<<std::endl;
QSqlQuery query ("SELECT id FROM test1", db);
bool ok1 = query.exec();
QString error1 = query.lastError().text();
std::string aff1 = error1.toStdString();
std::cout<<aff1<<std::endl;
while(query.next())
{
QString chaine = query.value(0).toString();
std::string ech = chaine.toStdString();
std::cout<<ech<<std::endl;
}
return a.exec();
}
A voir également:
- Acces bdd +Qsqlite
- Accès à internet - Guide
- Acces rapide - Guide
- Accès refusé - Guide
- Accès presse papier - Guide
- Trousseau d'accès iphone - Guide
1 réponse
Je n'ai pas la réponse à ton problème.
Le champ 'id' existe-t-il ? La table 'test1' existe-t-elle ?
Je voudrais faire 2 remarques:
- il s'agit de 'SQLite' et non de 'MySQL',
- avec Qt on peut oublier la STL.
On peut remplacer:
Bonne continuation.
Le champ 'id' existe-t-il ? La table 'test1' existe-t-elle ?
Je voudrais faire 2 remarques:
- il s'agit de 'SQLite' et non de 'MySQL',
- avec Qt on peut oublier la STL.
On peut remplacer:
QString chaine = query.value(0).toString(); std::string ech = chaine.toStdString(); std::cout<<ech<<std::endl;par:
qDebug() << query.value(0).toString();de même, on pourra écrire:
qDebug() << db.lastError();c'est plus simple et ceci permet aussi de supprimer toutes les sorties de qDebug par une déclaration QT_NO_DEBUG_OUTPUT dans le fichier projet.
Bonne continuation.