C'est cool ça marche ! Merci Seb, c'était à cause des delete que ça ne marchait pas (j'utilisai la fonction free)
a+
Fab
seblamb
J'ai utilisé cet example chez moi sur un alias ODBC vers une base Access (nomée "ServicePass ATL" ) qui à une table "Cards" avec un mot de passe "goldorak*"
TDataSource *DBDataSource;
TTable *DBTable;
DBDataSource = new TDataSource(NULL);
DBTable= new TTable(NULL);
TDatabase *DBDatabase;
DBDatabase= new TDatabase(NULL);
Ok, mais l'alias BDE (c à d le nom de ma source de donnée) est effectivement le même que celui de l'ODBC. Bon j'ai quand même rajouté :
DBDatabase->AliasName=string("intervention2" );
mais il me fait toujours une erreur après la compilation : duplicate database name intervention2 (1 msgbx)
Si tu avais 1 exemple ça m'aiderai beaucoup !
seblamb
Tu n'as pas renseigné le nom de l'allias BDE dans le TDatabase (AliasName).
Par défaut le nom de l'allias BDE est le même que l'allias ODBC (intervention2). Le nom de l'allias n'a aucun rapport avec le DatabaseName.
levioloneux
j'ai essayé mais ça ne change pas grand chose. Voici le code qui plante peut-être que tu as une idée...
TDataSource *DBDataSource;
TTable *DBTable;
DBDataSource = new TDataSource();
DBTable= new TTable();
TDatabase *DBDatabase;
DBDatabase= new TDatabase();
TVarRecs values;
J'ai créé un driver dans l'odbc 32 nommé intervention2
seblamb
TTable *maTable
maTable->DatabaseName = DBDatabase->DatabaseName;
levioloneux
Si je n'ai pas le choix je crois en en effet que je vais utiliser des fonctions ODBC.
Bon, pour l'instant j'arrive à utiliser la propriété loginpromt à false comme ceci :
Je peux peut-être encore changer mais est ce qu'il n'est pas possible de se débarrasser de cette messagebox en utilisant un TDBDatasource et un TDBTable (c'est ce que j'utilise) ?
Donc il faut utiliser SQLConnect au lieu de SQLDriverConnect.
seblamb
Non, il faut rajouter un TDatabase sinon il utilise un TDatabase par défaut qui demande à chaque fois le mot de passe, que ce soit avec ODBC ou les drivers natifs du BDE
levioloneux
Oui j'utilise l'ODBC...
Je peux peut-être encore changer mais est ce qu'il n'est pas possible de se débarrasser de cette messagebox en utilisant un TDBDatasource et un TDBTable (c'est ce que j'utilise) ?
seblamb
Utilise un TDatabase avec la propriétée LoginPrompt à false
BENB
levioloneux a écrit a écrit :
Lorsque je me connecte avec une base Access avec une application C++, j'ai une MessageBox qui me demande le nom d'utilisateur et le mot de passe. Est-ce qu'il est possible d' enlever cette boîte de dialogue ?
Tu utilises quoi pour te connecter ? ODBC ?
levioloneux
Lorsque je me connecte avec une base Access avec une application C++, j'ai une MessageBox qui me demande le nom d'utilisateur et le mot de passe. Est-ce qu'il est possible d' enlever cette boîte de dialogue ?