[C++] [WIN32 API] ADO POUR LES NOUVEAUX

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 16 juil. 2004 à 22:32
IDKS Messages postés 5 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 28 mars 2008 - 30 janv. 2009 à 12:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24632-c-win32-api-ado-pour-les-nouveaux

IDKS Messages postés 5 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 28 mars 2008
30 janv. 2009 à 12:49
débutant en informatique, je te remercie pour ce tuto vraiment intéressant

peux tu me dire si il ne faut pas rajouter à la ligne 306

nomlivre = (char *)GlobalAlloc(GPTR, len + 1);
GetDlgItemText(hwnd, IDC_NOMLIVRE, nomlivre, len + 1);

car sinon la "MISE A JOUR DU NOMLIVRE" déjà existant ne se fera pas !
jphnaudin Messages postés 1 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 3 septembre 2007
3 sept. 2007 à 13:53
Merci merci merci...
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
29 juil. 2006 à 16:02
j'ai cherchr plus de 4 heur sur intrnet est j'ai pas trouver un simple code source comme celui,
simple a comprend
10/10
cs_niac Messages postés 1 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 27 mars 2006
27 mars 2006 à 00:44
Bravo pour ton boulo, je pence que sa me sera utile pour le projet de programmation que je fait à l'iut.
Parcontre je pence qu'il faudrai remplacer "IDC_S1" et "IDC_S2" par "IDC_S4" et "IDC_S5" quand tu affiche les infos sur les emprunteurs sa corespondrai mieux à l'interface.
J'en profite pour te donner une petite sugestion tu pourai remplacer "DefaultDir=C:\";" à la ligne 138 par "DefaultDir=.";" cela permetrai de balader l'exe et le mdb dans le repertoire que l'on veut.
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
4 juin 2005 à 20:29
tu peux le bloquer en utilisant sendmessage
cs_raphael59540 Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 10 mars 2011
24 mars 2005 à 16:56
Salut,

j'ai lu ton prog , il ma bien aider et je t'en remerci .
j'ai une petit question , a te demander:

peut on bloquer un champ de la base access lor une modif par un autre prog?
je m'explique , voila j'ai deux programme qui utilise la meme base , ces
prog lise et modifit la base selon les valeurs des champs, mais par
momment les deux prog lisent le meme champ. et la Probleme...

si tu peux m'aider voici mes mail
raphael.delhalle@spheragone.fr

merci et a+
cs_charly0 Messages postés 2 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 février 2005
23 févr. 2005 à 14:17
Salut scolinks

Ton tutorial m'a bien aidé à débuter en ADO que je ne connaisais pas du tout avant.

Juste une petite correction si tu me le permets :
lorsque tu utilise pDb->Execute(...) il ne faut pas utiliser pSet pour enregistrer le retour. En effet tu a alloué pSet au début de ton programme pour tes propres manipulations et faire pSet = ... réinitialise ton pointeur et ton objet recordset que tu a alloué au début s'en va dans la nature.

Ce serait différent si tu faisais (*pSet) = ..., dans ce cas tu égaliserais les objets et non les pointeurs. Cependant la fonction Execute renvoir bien un pointeur vers un nouveau recordset.

Il faut donc déclarer un nouveau pointeur, récupérer le retour et ne pas oublier de libérer la mémoire.

Exemple :
_RecordsetPtr _pSet;
_pSet = _pDb->Execute(...);
if (_pSet) {
if (_pSet->State == adStateOpen) _pSet->Close();
_pSet.Release(); _pSet = NULL;
}

Si tu ne libère pas le recordset tu risque d'avoir des problèmes, par exemple au niveau des transactions.

VB libère automatiquement le recordset, ce n'est pas le cas en C où il faut le faire à la main.

Charly
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
17 févr. 2005 à 18:45
j'ai dit que c'est pour les debutants... comme moi qui va toujours en etre un...
cs_charly0 Messages postés 2 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 février 2005
17 févr. 2005 à 08:16
"Il me semble que quand vous utilisez le pDb->Execute() votre pointeur de recordset pSet se réinitialise"

Ca me paraît assez normal si tu écrase le pointeur avec pSet = pDb->Execute(...) !!!
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 nov. 2004 à 20:28
Surtout quel interet, ADO est deja suffisemment encapsule comme cela, non ?
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
9 nov. 2004 à 20:16
il y a des exemples sur ce sujet sur le web (a google)...
mofo_77 Messages postés 14 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 2 juillet 2005 1
8 nov. 2004 à 18:04
Ok merci c'est bien ça. Il y a des méthodes virtuelles abstraites dans ce fichier, est-ce qu'on peut en dériver sa propre classe?
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
5 nov. 2004 à 15:27
Ils sont genere a partir du dll ADO msado15.dll ...
mofo_77 Messages postés 14 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 2 juillet 2005 1
5 nov. 2004 à 13:48
Petite question : d'ou vient ce msado15.tlh et le .tli associé
mofo_77 Messages postés 14 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 2 juillet 2005 1
5 nov. 2004 à 13:43
Je mets aussi 10/10 car c'est le premier tuto en français que je trouve. Même s'il n'est pas complet, il va me permettre de débuter avec ADO. Merci.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 juil. 2004 à 13:03
GlobalAlloc ets a reserver pour clipboard, DDE ou OLE.
Utiliser HeapAlloc.
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
16 juil. 2004 à 22:34
J'oubliais aussi, tu peut mettre a jour ta source en mettant le programme dans la parti "Code" et non pas "Description" comme tu l'as fait. Ca permettra d'avoir un code avec une syntaxe colorié est il sera donc plus lisible.

Shell
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
16 juil. 2004 à 22:32
C'est bien... Le principe des exxeptions est aussi traiter. Je ne m'y connais pas en ADO mais le tutoriel est bien commenté.

De plus il y a pas vraiment de tuto la dessus sur le site.
Je te mets un petit 10/10 pour une premiere source.

A++ et bonne continuation.

Shell