Problème d'enregistrement de variables à partir d'une base de données Access

maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004 - 19 mai 2004 à 14:23
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004 - 24 mai 2004 à 11:32
bonjour j'ai un problème avec ce bout de code quand je compile mon programme tout marche mais c'est au lancement de l'exe qu'il plante
que dire de plus result[i].qualite est un char*
je suis vraiment perdu quelqu'un peut-il m'éclairer?

try 
{
{recordset->Open("SELECT * from refr", _variant_t((IDispatch *) connexion,true),
adOpenStatic, adLockReadOnly, adCmdText);}

//les affichent
  while(!recordset->EndOfFile)
  {
     i=i+1;
     _variant_t var;
     var = recordset->Fields->GetItem(L"qualite")->GetValue();
     result[i].qualite= _bstr_t(var.bstrVal);
     std::cout <<result[i].qualite<< std::endl;
     recordset->MoveNext();
  };
  //referme le recordset
  recordset->Close();
}
catch(_com_error &e) 
{
      MessageBox(0, (LPCSTR) e.Description(), szappname, MB_ICONEXCLAMATION);
      recordset->Close();
      return 0;
}



ah oui autre chose j'arrive à inscrire le résultat de ma requête avec le code suivant:

while(!recordset->ADOEOF)
{
_variant_t var;
var = recordset->Fields->GetItem(L"value")->GetValue();
std::cout << static_cast<char *>(_bstr_t(var.bstrVal))<< std::endl;
recordset->MoveNext();
};

13 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mai 2004 à 14:26
Exemple fait dans mes sources, gestion films par ADO.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
19 mai 2004 à 14:37
bonjour,

ça fait plaisir d'avoir une réponse aussi rapide!

je sais que dans tes sources il y a des exemples puisque je m'en suis inspirée pour certaine partie mais c'est pas un exemple que je voudrais .
merci qaund même.

j'aimerai comprendre pourquoi j'arrive à inscrire à l'écran des données mais pas à les enregistrer dans une structure.
surtout que j'ai pas d'erreur qaund je compile avec visual microsoft c++.net

merci d'avance
Maeva
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mai 2004 à 15:21
result[i].qualite c'est quoi 'qualite' pour que tu puisses ecrire '=' ???

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 08:25
qualité c'est un char *
merci encore de m'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mai 2004 à 09:04
quand on a un char*, on fait une operation de copie et non une affectation sur le pointeur, non ???

_bstr_t bst;
_variant_t var;
var = recordset->Fields->GetItem(L"qualite")->GetValue();
if(var.vt == VT_BSTR) {
bst = var;
strcpy(result[i].qualite, bst);
}

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 10:42
merci j'y avais pas pensé je suis une novice ;-)
cependant j'ai la même erreur c'est à dire:

JIT debugging failed with the following error: Accès refusé.
JIT Debugging was initialited by the user account 'SGCV-CAO\saill'
est ce que tu as une idée parce ue là j'en peux plus!
merci d'avance
Maeva
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mai 2004 à 10:54
J'espere que c'est bien:
result[i].qualite[120] par exemple comme declaration. Faut un buffer pour copier des donnees.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 11:03
non sinon il met cette erreur:
c:\Maeva\Test\connectionbd\conection\connec.cpp(129): error C2440: '=' : cannot convert from '_bstr_t' to 'char [9]'
donc j'ai définit la structure réfractaire comme ça
class Refractaire {
public:
char *qualite;
char *repere;
char *description;
char *des_anglaise;
double volume;
char *f_ref;
double dim[7];
int critere;

friend std::ostream& operator<<(std::ostream &os,const Refractaire &r);
};


et result est un :

Refractaire *result;


je sais j'ai vraiment du mal!!
merci de m'aider :big)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mai 2004 à 11:08
pas possible d'enregistrer quoi que ce soit sur un pointeur A PART UNE ADRESSE MEMOIRE, faut donc un buffer.
class Refractaire {
public:
char qualite[24]; // voit taille qui convient, MULTI DE 4 !!!
...
...

ainsi tu feras des strcpy sur les buffers et non '='.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 11:24
merci beaucoup pour ton aide et ta patience
ça marche toujours pas , je ne comprends pas j'ai pourtant aucune erreur à la compilation mais seulement à l'execution du programme grrrr!
desespérée %-6
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 11:24
merci beaucoup pour ton aide et ta patience
ça marche toujours pas , je ne comprends pas j'ai pourtant aucune erreur à la compilation mais seulement à l'execution du programme grrrr!
desespérée %-6
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mai 2004 à 11:29
Erreur ou non a la compilation indique simplement que la syntaxe est correcte, en aucune maniere que le code est coherent.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
24 mai 2004 à 11:32
est ce que ça serait trop te demander de t'envoyer mon code pour que tu y jettes un coup d'oeil :shy)
je t'en serais super reconnaissante
0
Rejoignez-nous