Bonjour à tous
j'essaye de créer une base de données Acess avec ADO mais je rencontre un petit problème
Je m'inspire de ceci mais cela ne fonctionne pas
http://www.developpez.net/forums/d79...onnees-access/
La création de la base vide se passe bien par contre j'ai une erreur dès que j'essaye de créer une table
Voici mon code
Création de la base
Fonction de création des tables
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 // Chemin du fichier de Base de données BaseDonnees = ExtractFilePath(Application->ExeName) + "\\db.mdb"; // Provider Provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + BaseDonnees +";"; // Si le ficbier de base de données n'existe pas if(!FileExists(BaseDonnees.t_str())) { Variant vADO; // On crée la base de données vADO = Variant::CreateObject("ADOX.Catalog"); vADO.OleFunction("create", Provider.t_str()); // Création des tables et remplissage des pré-requis CreationTables(); // on termine vADO = Unassigned; } else { ShowMessage("La base de données existe déjà"); }
Quand j'exécute mon code, j'ai l'erreur suivante
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 // Méthode chargée de créer les tables void __fastcall TForm1::CreationTables(void) { // Connexion ADOConnection->ConnectionString = Provider; ADOConnection->LoginPrompt = false; ADOCommand->Connection = ADOConnection; // On crée la table patient String Requete; // On construit la requête de création de la table Patient Requete = "CREATE TABLE `Patient` ("; Requete += "`idPatient` INT NOT NULL AUTO_INCREMENT , "; Requete += "`NomPatient` VARCHAR(45), "; Requete += "`PrenomPatient` VARCHAR(45), "; Requete += "`SexePatient`VARCHAR(1), "; Requete += "`AgePatient`INT, "; Requete += "`TaillePatient` DOUBLE, "; Requete += "PRIMARY KEY (`idPatient`))"; // On crée la table ADOCommand->CommandText = Requete; ADOCommand->Execute(); }
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception déclenchée à $7C812AFB. Classe d'exception EOleException avec message '[Microsoft][Gestionnaire de pilotes ODBC] Nom de source de données trop long'. Processus Project1.exe (3104)
Partager