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

 


Dernière réponse
Sujet : [BC++] Pour ceux qui s'y connaissent en C++ et BDD
levioloneux C'est cool ça marche ! Merci Seb, c'était à cause des delete que ça ne marchait pas (j'utilisai la fonction free)
 
a+
 
Fab

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
levioloneux 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);
 
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;
levioloneux 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;
 
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
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 :
 
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 ?
BENB 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
levioloneux 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 !
BENB

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.

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 ?

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