cs_kharrat
Messages postés71Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention29 mars 2007
-
21 mars 2007 à 22:06
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 2009
-
8 juin 2007 à 14:48
Salut,
Je travaille sous VC++ 6.
J'essaie d'écrire un prog tout simple pour m'entraîner à utiliser des bases de données.
Pour ce faire, je souhaite utiliser un driver ODBC en incluant
#include [mailto:??3@YAXPAX@Z ??3@YAXPAX@Z]) already defined in libcpd.lib(delop.obj)
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/Carnet.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Etant donner qu'il semble être très facile d'utiliser un driver ODBC avec VC++ 6, je me demande si mon ordi est correctement installé (?), si les .h sont bien au bon endroit ou s'il ne m'en manque pas !
cs_kharrat
Messages postés71Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention29 mars 2007 21 mars 2007 à 22:31
Salut BruNews,
Merci pour ta réponse expresse.
Elle suscite pourtant plusieurs questions ! ;)
1. Je souhaite utiliser la classe CDatabase. Sur la msdn, j'ai trouvé que son header est afxdb.h. Cela veut-il dire que l'information que j'ai trouvée est inexacte ? ou utilises-tu une autre classe pour te connecter et lancer des requêtes dans la base ?
2. A quoi sert le #define _WIN32_WINNT 0x0600
3. Que veux dire le #pragma comment(lib, "odbc32.lib") et à quoi sert-il ?
cs_kharrat
Messages postés71Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention29 mars 2007 21 mars 2007 à 22:51
Pour info,
J'ai réussi à me connecter à ma base avec la classe CDatabase. Pour la faire marcher, il faut mettre les settings de son projet VC++ 6 avec Use MFC in a shared DLL, dans les options générales.
Pour le reste, ma chaîne de connexion n'est pas encore au point (boîte de dialogue qui s'ouvre quand je me connecte), mais ça marche !
++,
Kharrat
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 21 mars 2007 à 22:56
A mon avis, c'est pas avec des bidules classes que tu apprendras grand chose d'ODBC, surtout que c'est assez simple en prenant un peu l'habitude.
Regarde exemple dessous, tu obtiens un exe de 3 Ko et sans aucune dépendance, tu files l'exe et il tourne sur tout Windows 32 bits.
Exemple d'emploi ODBC
On va insérer 50 enregs dans une table Sql Server, instance nommée "Toto".
// Base "Test"
// TABLE "histos"
// Fld(0) : histID, INT32 AutoIncr
// Fld(1) : histDat, datetime(8)
// Fld(2) : histSit, char(4)
// Fld(3) : Qte, INT32
J'insère le champ histSit en mode binaire au lieu de text, évite au pilote de calculer sa longueur avant insertion.
J'incrémente la date et la quantité de 1 à chaque tour de boucle.
--------------------------------
#pragma comment(linker, "/entry:myWinMain")
__declspec(naked) void __stdcall myWinMain()
{
__asm {
call OdbcConnEnvCreate
test eax, eax
jne short progEND
call OdbcSqlConnect
test eax, eax
jne short relHANDLES
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 7 juin 2007 à 18:00
salut BruNews
j'essaie de compiler ton code, j'ai des erreurs sur toutes les chaines de caractères. apparemment c'est un problème entre WideChar et MultiByteChar.
que dois je faire ? caster à LPCWSTR ?
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 8 juin 2007 à 14:48
vu !
merci sinon ça fonctionne comment ? le programme crée une base la remplit et puis c'est tout ?
c'est peut-être une connerie, mais quand je fais F5, ca lance, il se passe rien et au bout d'un moment ça ferme.
je suis censé l'ouvrir avec une fenetre DOS ?
il faut que je complète l'appli pour visualiser les résultats ?