-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
53 lines (45 loc) · 2.13 KB
/
main.cpp
File metadata and controls
53 lines (45 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
#include <Windows.h> // Pour GetConsoleOutputCP et SetConsoleOutputCP (affichage des accents dans la console)
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Pour affichage correct des accents dans la console
uint temp = GetConsoleOutputCP(); // Sauvegarde du réglage par défaut
SetConsoleOutputCP(CP_UTF8); // Modification du réglage
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
// Instanciation d'un objet QSqlDatabase
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
// Définition des paramètres de connexion à la base de données
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=C:\\Users\\sn\\Documents\\Sommets.mdb");
if(db.open()) {
qDebug() << "Ok - ouverture de la base de données";
// Exécution d'une requête
QSqlQuery requete;
QString sSql = "SELECT * FROM Sommets";
if(requete.exec(sSql)) {
qDebug() << "Ok - requête : " << sSql << "\n";
// Boucle qui permet de parcourir les enregistrements renvoyés par la requête
while(requete.next()) {
// On accède ici aux différents champs par leurs noms, il est également possible
// d'y accéder par leur index : requete.value(0)
qDebug() << requete.value("idSommet").toInt() << "\t" << requete.value("Massif").toString()
<< "\t" << requete.value("Nom").toString() << "\t" << requete.value("Altitude").toInt();
}
}
else {
qDebug() << "ÉCHEC de la requête";
// La méthode lastError permet d'afficher un message
// plus explicite sur les causes de l'erreur
qDebug() << requete.lastError();
}
db.close(); // Fermeture de la base de données
}
else {
qDebug() << "ÉCHEC d'ouverture de la base : " << db.lastError();
}
SetConsoleOutputCP(temp); // Restauration du réglage par défaut
return a.exec();
}