Bonjour,
Je souhaite à mettre en place une BDD type fichier avec MS Access et réaliser son client sous Qt.
Je voudrai que chaque utilisateur possède un compte sur cette BDD et qu'il y ai plusieurs types de compte (Administrateur, lecture seule, lecture / écriture).
J'ai donc créé un "groupe de travail" sous Access pour verrouiller la base. Donc quand je me connecte sur la base via Access, il n'y a pas de problème, on me demande bien l'utilisateur et le mot de passe, les différents droits des utilisateurs sont bien pris en compte, etc.
Je cherche à me connecter à cette BDD via mon client créé, j'utilise donc le driver ODBC et y renseigne les éléments de connexion d'un utilisateur du groupe. Mon client me donne le message d'erreur suivant :
Par contre quand je verouille la BDD par un simple MDP sans utiliser de "groupe de travail" je peux renseigner celui-ci dans mon client et la connexion est établie , mais ce n'est pas ce que je cherche ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [Microsoft][Pilote ODBC Microsoft Access] Vous n'avez pas l'autorisation requise pour utiliser l'objet '(Inconnu)'. Demandez l'autorisation requise à votre administrateur système ou à la personne ayant créé cet objet. QODBC3 : Unable to connect
Je met mon code pour me connecter mais je ne pense pas que le problème vienne de là.
Si quelqu'un a déjà rencontré ce probléme ou a tout simplement une idée, je suis preneur!
Code : 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 #include <QDebug> #include <QtSql> #include <QSqlError> #include "MessageBoxes.h" #include<QMessageBox> void successful_connection(); void failed_connection(QSqlDatabase); bool createConnection(QString id, QString mdp) { bool found = 0; QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=TableUsers.mdb"); qDebug() << "Database name : " << db.databaseName(); db.setUserName(id); qDebug() << "User name : " << db.userName(); db.setPassword(mdp); qDebug() << "Password entered"; if(!db.open()) { qDebug() << "Erreur"; found = 0; failed_connection(db); } if(db.open()) { //qDebug() << "Vous etes maintenant connecté a " << db.hostName(); successful_connection(); found = 1; } return found; }
Merci.
Partager