kason Ab uno disce omnes | Je souhaite me connecter à une base de données mySQL en passant par ODBC.
Pour cela, j'utilise dans Delphi les fonctions de base issues de ODBC32.DLL.
J'ai bien sûr installé le pilote "MySQL ODBC 3.51 Driver" pour pouvoir choisir d'utiliser une base de données mySQL.
Je vérifie tout d'abord que le pilote est bien présent (source ODBC mySQL bien créée).
Ensuite, je veux créer une base de données mySQL par le code. Et là, c'est l'échec.
Voici les étapes que je réalise pour essayer une connexion:
- Allocation d'un handle d'environnement. C'est OK
- Fixation de la version de l'ODBC. C'est OK
- Allocation d'un handle de connexion. C'est OK.
- Connexion à une base de données. C'est NOK.
Code :
- lsDrivername := 'MySQL ODBC 3.51 Driver';
- lsUID := 'root';
- lsPasswd := '';
- lsDB := 'dbLivres';
- lsServeurname := 'localhost';
-
- lsConnectIN := PChar('DRIVER={' + lsDrivername + '};SERVER=' + lsServeurname + ';DATABASE=' + lsDB + ';USER=' + lsUID +
- ';PASSWORD=' + lsPasswd + ';OPTION=3;');
-
- lRetCode := SQLDriverConnect( hDbc,
- 0,
- lsConnectIN,
- SQL_NTS,
- lsConnectOUT,
- SQL_NTS,
- pcbConnStrOut,
- SQL_DRIVER_COMPLETE);
|
-> Et là, je constate qu'il n'y a pas de création de base de données du nom de 'dbLivres' et la connexion échoue. Est-ce ma syntaxe de ma chaîne lsConnectIN qui est erronée ? La création de la base de données mySQL doit-elle se faire avec une autre fonction ou avec une autre méthode ?
- J'ai récupéré un fichier IODBC.pas "INTERFACE ODBC 3.51" sur Internet pour utiliser les fonctions de la dll dans Delphi.
- A priori, les sources de données utilisateur pour mySQL sont correctement paramétrées (Data Source Name, Server, User, Passwd, etc) -> dans l'administrateur de sources de données ODBC. Le test de connexion se passe bien via le connector ODBC.
- Je souhaite dans la mesure du possible que la création et l'accès à une base de données de mon application se fasse par programmation et non par une intervention manuelle (pour raison pratique pour l'utilisateur de mon application). D'ailleurs, je me demande s'il est possible de choisir l'emplacement de la base de données...
- Je travaille avec Delphi 6 Edition personnelle sous Windows XP. Donc, pas d'utilisation de composant style TQuery, TDataSource, etc.
- Mon application a pour but de créer et gérer le contenu d'une base de données de livres.
Voilà. J'ai fait des recherches sur le web sur la connexion à une base de données via ODBC mais je suis dans le flou
Si vous pouviez éclairer ma lanterne... Message édité par kason le 02-04-2008 à 15:28:15
|