Bonjour à tous,
actuellement je travaille sur un projet de recherche en Qt.
Je récupère les informations que j'affiche dans un QtextEdit puis que je transfère vers un fichier txt.
A partir de ce fichier txt, je devrais à priori générer ma BDD en SQLite3.
Mais rien ne se passe. Je ne sais plus quoi faire. Je ne rentre pas dans ma boucle While non plus.......?
Ca fait quelques jours que je suis dessus. Je crois que j'ai tout essayé.
J'ai tenté d'afficher la BDD générée dans un tableView.
Je vous joins un exemple. Merci
Dans le main.cpp
Code QT : Sélectionner tout - Visualiser dans une fenêtre à part
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
54
55
56
57
58 /***************************************************/ /* Creation of a data base to register information */ /***************************************************/ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("points.db"); if(db.open()) { qDebug() << "Base Ouverte\n"; } db.transaction(); QFile points("./points.txt"); if(points.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "File Open in Read Mode\n"; } QString firstline = QString(points.readLine()); qDebug() << firstline; //firstline.chop(1); qDebug() << firstline; QStringList L = firstline.split("\t"); qDebug() << L.at(0) << L.at(1) << L.at(2) << L.at(3) ; QString C; C = QString("CREATE TABLE 'points' (") + (L.at(0) + QString(" TEXT,")) + (L.at(1) + QString(" DOUBLE,")) + (L.at(2) + QString(" DOUBLE,")) + (L.at(3) + QString(" DOUBLE")) + ")" ; qDebug() << C ; QSqlQuery PointQuery(C); PointQuery.exec(); while (!points.atEnd()) { qDebug()<< "Je suis dans le While\n"; QString line = QString(points.readLine()); line.chop(1); QStringList champ = line.split("\t"); QString l = champ.join(","); qDebug() << l ; QString InsertPointQuery = QString("INSERT INTO points(Name, Longi,Lat, Alti ) " "VALUES('%1')").arg(l); QSqlQuery IntPointQuery(InsertPointQuery); IntPointQuery.exec(); } db.commit(); a.exec(); return 0;
Et pour ce qui est du fichier MainWindow.cpp, nous avons un affichage classique:
Code QT : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ui->setupUi(this); QSqlTableModel *model = new QSqlTableModel(); model->setTable("points"); model->select(); ui->tableView->setModel(model);
J'ai aussi une erreur : exited with code -1073741510
Merci d'avance à tous ceux qui auront pris le temps de me lire et de me donner un élément de réponse pour que je puisse avance.
KM
Partager