Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
839 connectés 

  FORUM HardWare.fr
  Programmation

  [BC++] Pour ceux qui s'y connaissent en C++ et BDD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BC++] Pour ceux qui s'y connaissent en C++ et BDD

n°32650
levioloneu​x
Posté le 17-05-2001 à 15:30:39  profilanswer
 

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 ?

mood
Publicité
Posté le 17-05-2001 à 15:30:39  profilanswer
 

n°32652
BENB
100% Lux.
Posté le 17-05-2001 à 15:36:08  profilanswer
 

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 ?

n°32657
seblamb
Posté le 17-05-2001 à 15:48:31  profilanswer
 

Utilise un TDatabase avec la propriétée LoginPrompt à false


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°32674
levioloneu​x
Posté le 17-05-2001 à 16:27:55  profilanswer
 

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) ?

n°32736
seblamb
Posté le 17-05-2001 à 17:54:55  profilanswer
 

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


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°32740
BENB
100% Lux.
Posté le 17-05-2001 à 18:04:10  profilanswer
 

levioloneux a écrit a écrit :

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) ?




Donc il faut utiliser SQLConnect au lieu de SQLDriverConnect.

n°32904
levioloneu​x
Posté le 18-05-2001 à 11:57:29  profilanswer
 

J'ai essayé de faire :
TDatabase *DBDatabase; //rajouté
DBDatabase= new TDatabase(); //rajouté
 
DBTable->DatabaseName= string("intervention2" );
DBTable->TableName = string("intervention" );
DBDataSource->DataSet= DBTable;
 
DBTable->LoginPrompt=false; //rajouté
DBDatabase->Params->Add( "USERNAME=" ); //rajouté
DBDatabase->Params->Add( "PASSWORD=" ); //rajouté
DBDatabase->LoginPrompt=false; //rajouté
DBTable->Active = true;
 
...mais il m'affiche toujours la msgbx !

n°32941
BENB
100% Lux.
Posté le 18-05-2001 à 13:29:00  profilanswer
 

c'est pas de l'ODBC ca !
sans doute une surcouche...
Si tu abandonne la surcouche en question, pour ODBC voici la description de l'API : http://msdn.microsoft.com/library/ [...] in8w4s.htm

n°33415
levioloneu​x
Posté le 21-05-2001 à 13:15:35  profilanswer
 

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 :
 
DBDatabase->DatabaseName=string("intervention2" );  
//DBDatabase->DriverName=string("intervention2" );
DBDatabase->Name=string("intervention" ); //ma table
DBDatabase->LoginPrompt=false;
 
mais comment faire pour utiliser ma table à partir d '1 TDatabase ?

n°33420
seblamb
Posté le 21-05-2001 à 13:38:59  profilanswer
 

TTable *maTable
 
maTable->DatabaseName = DBDatabase->DatabaseName;


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
mood
Publicité
Posté le 21-05-2001 à 13:38:59  profilanswer
 

n°33435
levioloneu​x
Posté le 21-05-2001 à 14:03:07  profilanswer
 

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;
 
try {
DBDatabase->DatabaseName= string("intervention2" );
DBDatabase->LoginPrompt=false;
DBTable->DatabaseName = DBDatabase->DatabaseName;
DBTable->TableName = string("intervention" );
DBDataSource->DataSet= DBTable;
DBTable->Active = true;
 
        DBTable->Last();
        values.Add();
        values.Add(bufnompat);
...
 
J'ai créé un driver dans l'odbc 32 nommé intervention2

n°33440
seblamb
Posté le 21-05-2001 à 14:12:38  profilanswer
 

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.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°33447
levioloneu​x
Posté le 21-05-2001 à 14:23:57  profilanswer
 

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 !

n°33453
seblamb
Posté le 21-05-2001 à 14:42:59  profilanswer
 

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);
 
DBDatabase->DatabaseName= AnsiString("ServicePass ATL" );
DBDatabase->AliasName= AnsiString("ServicePass ATL" );
DBDatabase->LoginPrompt=false;
DBDatabase->Params->Text = "PASSWORD=goldorak*";
 
DBTable->DatabaseName = DBDatabase->DatabaseName;
DBTable->TableName = AnsiString("Cards" );
DBDataSource->DataSet= DBTable;
 
DBTable->Active = true;
 
delete DBDataSource;
delete DBTable;
delete DBDatabase;


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°33474
levioloneu​x
Posté le 21-05-2001 à 15:21:30  profilanswer
 

C'est cool ça marche ! Merci Seb, c'était à cause des delete que ça ne marchait pas (j'utilisai la fonction free)
 
a+
 
Fab


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [BC++] Pour ceux qui s'y connaissent en C++ et BDD

 

Sujets relatifs
[ASP] [BDD] AU SECOURS !!! Suite... et fin ?graphique et BDD
[ASP] [BDD] AU SECOURS !!![ASP] Uplaod de Bdd
[BdD] Performancesliaison C++ avec BDD
BDD MYSQL comment faire pour la sortir des data ?[BdD] Performances
pour ceux qui connaissent MTS ou COM+VISUAL BASIC : recherche desesperement petite application avec BDD...
Plus de sujets relatifs à : [BC++] Pour ceux qui s'y connaissent en C++ et BDD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR