Impossible d'exécuter une requête
Bonjour,
J'essais d'accéder à une BD spatiale Postgresql. La connexion est établie avec la BD. Mai l'affichage du résultat de la requête ne se fait pas. Voici le code:
Code:
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
|
#include <QApplication>
#include <QMessageBox>
#include <QtSql>
#include <QTableView>
#include <iostream>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setDatabaseName ("amsdb");
db.setHostName("localhost");
db.setUserName("amsdb");
db.setPassword("");
db.setPort(5433);
QString report = "";
if(db.open())
report += "Connection OK\n";
else
report += "Unable to Connec\nt";
if(db.isDriverAvailable(db.driverName()))
report += db.driverName() + " is available\n";
else
report += db.driverName() + " is NOT available\n";
report += db.lastError().text() + "\n";
//1ere methode testée
//QSqlQuery q = new QSqlQuery();
//q.prepare("SELECT * FROM shape_import_table");
//2eme methode testée
QSqlQuery q;
q.exec("the_geom from (select * from shape_import_table) foo USING UNIQUE gid");
if (q.exec())
report += "Requète exécutée\n";
else
report += q.lastError().text() + "\n";
QMessageBox::critical(0,"Report", report);
QSqlTableModel *model;
model->setTable("shape_import_table");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
QTableView *view = new QTableView;
view->setModel(model);
view->setWindowTitle("Shape Import Table");
view->show();
db.close();
return app.exec();
} |
Dans le MessageBox qui doit m'afficher les messages d'erreurs éventuellement le résultat de q.lastError().text() donne:
Code:
1 2 3 4
|
ERREUR: erreur de sytaxe à la fin de l'entrée
LINE 1: execute
QPSQL: unable to create query |
Si quelqu'un a une idée pour corriger cette erreur je lui serais bien reconnaissante!
Merci