[Résolu] Connexion à une base de données mySQL via ODBC

Connexion à une base de données mySQL via ODBC [Résolu] - Delphi/Pascal - Programmation

Marsh Posté le 08-03-2007 à 14:03:32    

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 :
  1. lsDrivername := 'MySQL ODBC 3.51 Driver';
  2. lsUID := 'root';
  3. lsPasswd := '';
  4. lsDB := 'dbLivres';
  5. lsServeurname := 'localhost';
  6.        
  7. lsConnectIN := PChar('DRIVER={' + lsDrivername + '};SERVER=' + lsServeurname + ';DATABASE=' + lsDB + ';USER=' + lsUID +
  8. ';PASSWORD=' + lsPasswd + ';OPTION=3;');
  9.        
  10. lRetCode := SQLDriverConnect( hDbc,
  11. 0,
  12. lsConnectIN,
  13. SQL_NTS,
  14. lsConnectOUT,
  15. SQL_NTS,
  16. pcbConnStrOut,
  17. 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...  :jap:


Message édité par kason le 02-04-2008 à 15:28:15
Reply

Marsh Posté le 08-03-2007 à 14:03:32   

Reply

Marsh Posté le 11-03-2007 à 10:00:31    

Reply

Marsh Posté le 13-03-2007 à 17:33:13    


En fait, je me suis basée justement sur ces liens-là. Ce site est très bien fait :jap:
Le problème avec mon code, c'est que je n'arrive pas à créer de nouvelle base de données mySQL :(
Je ne sais pas s'il faut utiliser une autre fonction de l'ODBC ou si ce sont mes paramètres de la fonction SQLDriverConnect qui sont incorrects ou incomplets :??:

Reply

Marsh Posté le 20-03-2007 à 12:06:30    

Je n'arrive toujours pas à trouver comment créer une base de données mySQL en utilisant l'API ODBC :(
 
Pas d'autres idées ou suggestions ?

Reply

Marsh Posté le 20-03-2007 à 14:03:26    

sur ce forum : http://www.developpez.net/forums/showthread.php?t=4572
ils parlent de remplacer le mot-clé DRIVER par PROVIDER...
 
sinon, sur ce site :http://www.arcknowledge.com/gmane.comp.db.mysql.odbc/2005-01/threads.html
ils parlent d'un patch 3 pour contourner des pbs de connexions...
 
Et encore ce site sur MyODBC : http://www.php5-mysql5.com/mysql-f [...] ctors.html

Reply

Marsh Posté le 20-03-2007 à 17:04:47    

rufo a écrit :

sur ce forum : http://www.developpez.net/forums/showthread.php?t=4572
ils parlent de remplacer le mot-clé DRIVER par PROVIDER...
 
sinon, sur ce site :http://www.arcknowledge.com/gmane.comp.db.mysql.odbc/2005-01/threads.html
ils parlent d'un patch 3 pour contourner des pbs de connexions...
 
Et encore ce site sur MyODBC : http://www.php5-mysql5.com/mysql-f [...] ctors.html


 
En fait, j'ai déjà épluché tous les forums de ce site developpez.net.
Justement, la conclusion de ce topic est de remplacer PROVIDER par DRIVER.
De plus, j'ai fait plusieurs tests en modifiant les mots-clé: DRIVER, SERVER, DATABASE, etc.
Sans résultat. Pas de base de données mySQL de créé...
 
Le site sur MyODBC (php), j'ai suivi le processus de connexion comme indiqué. D'ailleurs, c'est celui qui est aussi fourni par le site developpez.com. La question est : peut-on se connecter au serveur avec une base de données non créée ? Si oui, comment fait-on ? Quelles fonctions utilise-t-on ?
 
Je suis encore dans le flou. J'avance pas à pas.
Je cherche à créer une base de données mySQL à l'aide d'ODBC.  
 
En fait, je crois que j'ai réussi à me connecter au serveur (la fonction SQLDriverConnect me renvoyant un code retour correct). Mais par contre, pas de base de données de créée. Peut-être faut-il lancer des requêtes SQL générant les tables de la BD pour la créer vraiment ?
Ah, ça, je ne l'ai pas encore testé :ange:
 

Reply

Marsh Posté le 21-03-2007 à 07:43:12    

Ah ! bien sur qu'il faut créer ta base . Tu parlait juste de connexion !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed