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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1525802
kason
Ab uno disce omnes
Posté le 08-03-2007 à 14:03:32  profilanswer
 

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
mood
Publicité
Posté le 08-03-2007 à 14:03:32  profilanswer
 

n°1527004
SergioYeu
Posté le 11-03-2007 à 10:00:31  profilanswer
 
n°1528007
kason
Ab uno disce omnes
Posté le 13-03-2007 à 17:33:13  profilanswer
 


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

n°1530997
kason
Ab uno disce omnes
Posté le 20-03-2007 à 12:06:30  profilanswer
 

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 ?

n°1531057
rufo
Pas me confondre avec Lycos!
Posté le 20-03-2007 à 14:03:26  profilanswer
 

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

n°1531189
kason
Ab uno disce omnes
Posté le 20-03-2007 à 17:04:47  profilanswer
 

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:
 

n°1531370
SergioYeu
Posté le 21-03-2007 à 07:43:12  profilanswer
 

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


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

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

 

Sujets relatifs
[MySQL]Afficher touts les résultats[résolu] C++: double : limitation à 15 digits - comment aller au dela?
passage d'une fonction comme argument pour une autre fonction (Résolu)Base access et écran tactile
Calcul d'un % dans ma requete mysqlLiaison de donnees XBRL et Mysql
recuperer le tableau affichage des données de mysql (dans easyphp) ?[RESOLU] [SQL] Utilisation de champs dans un case CASE
Plus de sujets relatifs à : [Résolu] Connexion à une base de données mySQL via ODBC


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