Salut,
- J'ai décidé de travailler avec easyphp puisque plus facile à créer des bases des données par rapport au Mysql server via lignes des commandes.
je ne sais pas c'est ceci est bon ou non ?
- Je ne sais pas pourquoi je trouve seulement le dossier bin sous
C:\Program Files\EasyPHP1-7\mysql
Je voudrais connecter à une base de données Mysql via ODBC à partir d'un programme C sous Visual Studio 2008 Windows.
J'ai Mysql version 4.0.15 (esayphp 1.7)
et mysql-connector-odbc-3.51.19-win32
je trouve seulement le dossier bin sous :C:\Program Files\EasyPHP1-7\mysql
J'ai copié ma base des données sous: C:\Program Files\EasyPHP1-7\mysql\data
j'ai testé la source de données (ODBC) qui j'ai ajouté avec la base de données. Ceci se passe bien.
le nom de DSN est : toto
le serveur: localhost
le nom d'utilisateur : root
le mot de passe est vide
Mysql est bien démarré. J'ai testé la connexion entre le driver ODBC et ma base des données alors ceci se passe bien.
J'ai testé le code suivant pour vérifier la connexion au base des données. Le serveur est déjà démarré. La compilation se passe bien.
Après l'exécution, j'ai l'affichage suivant:
retcode= -1
Erreur sur l'instruction SQLConnectle code est :
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
#include<string.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <sqlucode.h>
#include <odbcinst.h>
#include <Msdasql.h>
#include <Msdadc.h>
void main()
{
SQLRETURN retcode;
//char design[20];
//int A,B,C,D;
//char request[100];
//char dsn[20]="toto";
//char uid[20]="root";
//char pwd[20]="";
SQLINTEGER lon,la,lb,lc,ld,taille=SQL_NTS;
SQLCHAR design[20];
SQLHDBC hdbc;
SQLHENV henv;
SQLHSTMT hstmt;
/*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) //{
/* Set the ODBC version environment attribute */
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) //{
/* Allocate connection handle */
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
// if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
//printf("%s","vrai");
//else
//printf("erreur\n");
// }
//}
// retcode = SQLConnect(hdbc,(SQLCHAR*)dsn, SQL_NTS,(SQLCHAR*)uid, SQL_NTS,(SQLCHAR*)pwd, SQL_NTS);
retcode=SQLConnect(hdbc,(SQLCHAR *)"toto",SQL_NTS,(SQLCHAR *)"root",SQL_NTS,(SQLCHAR *)"",SQL_NTS);
printf("%d",retcode);
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
printf("\n%s","vrai");
else
printf("Erreur sur l'instruction SQLConnect !\\n");
}
Je dois travailler dans cet environnement: Windows, Visual Studio, C, Mysql et ODBC.
Je serais très content pour vos aides
Merci.