IDKS
Messages postés5Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention28 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és1Date d'inscriptionjeudi 28 juin 2007StatutMembreDernière intervention 3 septembre 2007 3 sept. 2007 à 13:53
Merci merci merci...
cs_hakim0
Messages postés123Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention12 août 20081 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és1Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention27 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és536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008 4 juin 2005 à 20:29
tu peux le bloquer en utilisant sendmessage
cs_raphael59540
Messages postés7Date d'inscriptionlundi 21 mars 2005StatutMembreDernière intervention10 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és2Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 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és69Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention19 octobre 20056 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és2Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 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és21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 nov. 2004 à 20:28
Surtout quel interet, ADO est deja suffisemment encapsule comme cela, non ?
scolinks
Messages postés69Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention19 octobre 20056 9 nov. 2004 à 20:16
il y a des exemples sur ce sujet sur le web (a google)...
mofo_77
Messages postés14Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 2 juillet 20051 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és69Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention19 octobre 20056 5 nov. 2004 à 15:27
Ils sont genere a partir du dll ADO msado15.dll ...
mofo_77
Messages postés14Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 2 juillet 20051 5 nov. 2004 à 13:48
Petite question : d'ou vient ce msado15.tlh et le .tli associé
mofo_77
Messages postés14Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 2 juillet 20051 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és21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juil. 2004 à 13:03
GlobalAlloc ets a reserver pour clipboard, DDE ou OLE.
Utiliser HeapAlloc.
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDerniè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és2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDerniè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.
30 janv. 2009 à 12:49
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 !
3 sept. 2007 à 13:53
29 juil. 2006 à 16:02
simple a comprend
10/10
27 mars 2006 à 00:44
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.
4 juin 2005 à 20:29
24 mars 2005 à 16:56
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+
23 févr. 2005 à 14:17
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
17 févr. 2005 à 18:45
17 févr. 2005 à 08:16
Ca me paraît assez normal si tu écrase le pointeur avec pSet = pDb->Execute(...) !!!
9 nov. 2004 à 20:28
9 nov. 2004 à 20:16
8 nov. 2004 à 18:04
5 nov. 2004 à 15:27
5 nov. 2004 à 13:48
5 nov. 2004 à 13:43
17 juil. 2004 à 13:03
Utiliser HeapAlloc.
16 juil. 2004 à 22:34
Shell
16 juil. 2004 à 22:32
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