Clonk
Messages postés278Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention29 août 2006
-
17 août 2004 à 10:32
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
17 août 2004 à 15:19
Bonjour,
J'utilise ADO pour me connecter à une BDD, je fais le code suivant (sous VC++ 6.0):
_ConnectionPtr m_pConnect;
char * ConnectionString = new char;
strncpy(ConnectionString, "Driver=Microsoft Access Driver (*.mdb); DBQ=", 64);
strncat(ConnectionString, database, 64); //database est l'adresse de ma BDD
m_pConnect.CreateInstance(__uuidof(Connection));
m_pConnect->Open((bstr_t)ConnectionString, "", "", -1);
et je ne sais pas pourquoi, j'ai toujours l'erreur "Unhandled Exception" (l'eternel Kernell32.dll) au moment de m_pConnect->Open()
Je usi sur que c'est très bête comme erreur, mais je la trouve pas..
Note : le code source que j'ai récup précédemment utilisait un type CString pour ConnectionString, mais je sais pas si ça change grand chose... et comme afx.h fait un peu la gueule quand il y a un #include <windows.h>, j'ai préféré ne pas l'utiliser.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 août 2004 à 10:52
Jamais de afx.h ou machins de ce genre.
Quand tu fais un new proj, clique toujours sur 'proprietes' avanr de valider et tu coches 'projet vide', tu auras ainsi toute liberte.
Regarde dans mes exemples ADO comment je connecte.
Clonk
Messages postés278Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention29 août 2006 17 août 2004 à 11:04
Nan mais bien sûr que je met toujours en porjet vide, ça C normal!
Les source que G récupéré, CT du copier coller!
Et pour tes sources, j'ai déjà regardé, C du ADOX, trop relou à capter!
Si j'arrive à voir pouruqoi ça passe pas sur mon open, c'est bon, j'ai gagné.
Apparemment, C pareil si j'ouvre un recordset directement aussi.
Merci quand meme
Clonk
Messages postés278Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention29 août 2006 17 août 2004 à 11:30
Autant pour moi, CT un message dans un forum
Bah j'ai regardé une de tes sources, apparemment on fait pareil...
J'ai utilisé ton test sur la création d'instance :
inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};
J'ai l'impression qu'il ne me crée pas d'instance du tout... Il me demande le source de bgheap.c (si ça te donne une piste sur l'erreur, on sait jamais ^^)
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Clonk
Messages postés278Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention29 août 2006 17 août 2004 à 11:52
Bha je sais, moi non plus...
Bon, ça marche ma connection maintenant, j'avais juste oublié CoInitialize(NULL); ^__^;
Mias si tout passe, à la fin de mon main(), il me met toujorus cette erreur, il doit me manquer un truc pour fermer la connection à la fin (j'ai bien utilisé CoUninizialize() à la fin pourtant)
Clonk
Messages postés278Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention29 août 2006 17 août 2004 à 14:16
Merci! C bon, ça marche... presque...
En fait, dernière question, pour récupérer les valeurs du recordset, tu utilises bien des structures de données, je fais pareil, mais comme je travaille en mode console, je veux les afficher directement, le problème est que ça ne donne rien avec le code que tu as mis : (long) pref[count].qualite
Ca m'afficher... un long... et si je le met en char, ça ne donne rien du tout, comme quand je n'essaye pas de caster.
Tu aurais une réponse?
Merci et désolé, normalement C ma dernière question ^^
nan C pas pour le sciècle dernier, comme c'est une appli qui tourne presque en autonome et les seules infos dont elle a besoin sont passées en paramètres par une autre appli, ça sert à rien de mettre une interface graphique... et puis comme jme suis jamais vraiment penché sur les interfaces en C++, bah tant mieux pour moi, j'ai pas à y penser
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 août 2004 à 15:19
C'est bien un char[12], devrait donc s'afficher correctement.
C'est en fait un code que j'ai corrige pour qlqun.
Je ne saurais rien te dire de plus, si tourne dans la source doit pouvoir tourner ailleurs.