denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006
-
19 juin 2006 à 14:41
ezneti -
19 avril 2007 à 12:53
Bonjour à tous et toutes,
Je suis a la recherche d'une petite source pour me connecter a une base de donnée SQL et je desespere de trouver la lol.
Le but est simple je souhaite juste établir une connection a mon serveur SQL en C soit directe soit par ODBC je ne sais pas ce qui est possible je débute.
Voila l'objectif est simple je me connecte sur le localhost avec un simple login sa sans mot de passe .
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 15:44
Merci pour ta réponse effectivement j'avais trouvé ton script mais j'ai beau le regarder j'arrive pas a comprendre ce qui cloche. j'ai modifié les lignes
avec le nom de mon serveur et la base de donnée et la ligne qui parle de L'ODBC
A la compilation sur DevC++ il me reste ca :
\Dev-Cpp\test.c C:\Dev-Cpp\C McrAsm.h: No such file or directory.
C:\Dev-Cpp\test.c In function `OdbcSqlConnect':
43 C:\Dev-Cpp\test.c [Warning] assignment makes pointer from integer without a cast
44 C:\Dev-Cpp\test.c [Warning] assignment makes pointer from integer without a cast
49 C:\Dev-Cpp\test.c [Warning] assignment makes pointer from integer without a cast
Il faut modifier autre chose ? ou j'ai vraiment rien compris ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 19 juin 2006 à 16:41
Vire ce #include, c'est de l'asm inemployable avec ce cretin de devcpp qui ne prend que du sabir AT&T.
Il est clair que:
c = strcpy(c, dbname);
*c = ';';
n'a plus aucun sens, strcpy) est une vieille bourrique de fonction qui ne retourne que ce qui lui a été passé, utilité NULLE donc.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 19 juin 2006 à 16:46
Oui même écrit en C, ca reste infiniment meilleur que strcpy + strcat...
Au fait, je comprends pas pourquoi dans ton bnstrcpy tu ne mets pas src en const char*?
Parce que des fois on est obligé de caster en char* et c'est pas joli joli
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 17:21
C'est encore moi un grand merci déjà pour vos réponses c'est cool. Alors ca avance pas mal je pense pas que ce sois loin même. J'ai fais le test avec un const char il m'envoi balader le chose :)
Donc pour l'instant j'ai laisser en char.
Une subtilité qui m'échape c'est ces parties :
SERVER=PCTEST\\MSDE2000;DATABASE=Test"); //cette partie la c'est bien le nom de mon serveur et de ma base qu'il faut ?
et c'est la que ca m'échape :
if(OdbcSqlConnect("XXX", 0)) return 0 // XXX la je met le lien ODBC ou direct la base ? car si c'est la base je comprend pas comment tu fais l'autentification.
En dehors de ca :
J'ai viré le #include <McrAsm.h> effectivement il remonte plus en erreur mais depuis je me fais insulter lorsque je compile j'ai des erreur comme ceci :
[Linker error] undefined reference to [mailto:`SQLAllocHandle@12' `SQLAllocHandle@12']
[Linker error] undefined reference to [mailto:`SQLSetEnvAttr@16' `SQLSetEnvAttr@16']
[Linker error] undefined reference to [mailto:`SQLAllocHandle@12' `SQLAllocHandle@12']
[Linker error] undefined reference to [mailto:`SQLFreeHandle@8' `SQLFreeHandle@8']
[Linker error] undefined reference to [mailto:`SQLDriverConnect@32' `SQLDriverConnect@32']
[Linker error] undefined reference to [mailto:`SQLFreeHandle@8' `SQLFreeHandle@8']
[Linker error] undefined reference to [mailto:`SQLFreeHandle@8' `SQLFreeHandle@8']
[Linker error] undefined reference to [mailto:`SQLDisconnect@4' `SQLDisconnect@4']
[Linker error] undefined reference to [mailto:`SQLFreeHandle@8' `SQLFreeHandle@8']
[Linker error] undefined reference to [mailto:`SQLFreeHandle@8' `SQLFreeHandle@8']
ld returned 1 exit status
Désolé de vous embetter mais ca m'interesse vraiment de comprendre.
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 17:34
Ok merci je vais chercher pour le lib, donc je laisse "" if(OdbcSqlConnect("MyDb", 0)) return 0;"" comme tu l'avais fais et je vais fouinner pour trouver comme ajouter cette librairie sur devcpp.
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 18:06
J'ai trouvé ca comme information sur l'aide devcpp mais pour la syntaxe je ne sais pas trop comment faire et ca corespondrait a ce que je recherche a integrer non ?
You are required to include the "odbc32.lib" provided by your compiler vendor in the list of external libraries to be linked in. If using the makefiles supplied with wxWidgets, this library should already be included for use with makefile.b32, makefile.vc, and makefile.g95.
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 20:42
C'est encore moi
J'ai essayé de compilé le bout de code sur VC++ et en fait c'est kif kif je comprend pas :( voila le type de message a la fin de la compilation et après bonne configuration comme décrite dans les tuto
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(20) : warning C4996: 'strcpy' a été déclaré désapprouvé
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : voir la déclaration de 'strcpy'
Message : 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(26) : warning C4996: 'strcpy' a été déclaré désapprouvé
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : voir la déclaration de 'strcpy'
Message : 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(31) : warning C4996: 'strcpy' a été déclaré désapprouvé
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : voir la déclaration de 'strcpy'
Message : 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(43) : warning C4013: 'bnstrcpy' non défini(e) ; extern retournant int pris par défaut
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(43) : warning C4047: '=' : 'char *' diffère de 'int' dans les niveaux d'indirection
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(44) : warning C4047: '=' : 'char *' diffère de 'int' dans les niveaux d'indirection
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(49) : warning C4047: '=' : 'char *' diffère de 'int' dans les niveaux d'indirection
d:\mes documents\visual studio 2005\projects\remi\remi\test.c(53) : warning C4244: 'fonction' : conversion de '__w64 int' en 'SQLSMALLINT', perte possible de données
denebola
Messages postés12Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention19 juin 2006 19 juin 2006 à 20:54
J'ai cru comprendre en effet mais je pensais que de les résoudre c'était plus propre :) ta ligne corige bien des problemes merci mais au final j'ai lancé le debug et la j'ai 4 erreurs :
test.obj : error LNK2019: symbole externe non résolu __imp__MessageBoxA@16 référencé dans la fonction _OdbcConnEnvCreate
test.obj : error LNK2019: symbole externe non résolu _bnstrcpy référencé dans la fonction _OdbcSqlConnect
MSVCRTD.lib(crtexe.obj) : error LNK2019: symbole externe non résolu _main référencé dans la fonction ___tmainCRTStartup
D:\Mes documents\Visual Studio 2005\Projects\remi\Debug\remi.exe : fatal error LNK1120: 3 externes non résolus
Les message sont bien complexs quand même je trouve dur a résoudre (sans connaitre bien sur)