J'ai besoin de remplir un QTableView en récupérant des données d'un objet QSqlTableModel. J'utilise des commandes suivantes pour établir une connexion à une base de données de serveur SQL:Erreur "Impossible de trouver la table" lors de l'appel de la méthode setTable QSqlTableModel
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString connectionTemplate = "DRIVER={SQL Native Client};SERVER=%1;DATABASE=%2;Uid=username;Pwd=password;Trusted_Connection=Yes;";
QString connectionString = connectionTemplate.arg("localhost").arg("mydb");
db.setDatabaseName(connectionString);
I valider la connexion de base de données par les méthodes isValid() et open() de la classe QSqlDatabase. Je suis également capable d'interroger correctement les tables de la base de données. Tout va bien jusqu'ici. Mais le problème se pose lorsque j'utilise les commandes suivantes:
QSqlTableModel* model = new QSqlTableModel(parent,db);
model->setTable("mytable");
qDebug() << model->lastError().text(); // the error message is printed on consul.
La méthode setTable ne fonctionne pas et provoque une erreur: Impossible de trouver la table \ « matable \ ».
est là une table nommée précisément base de données « matable » dans votre « mydb »? Si oui, pouvez-vous interroger avec succès à partir d'un autre client SQL? – Edd
@Edd, oui je l'ai. Je peux lire l'interroger par QSQLQuery sans aucun problème. –