Ajouter un commentaire

fredericmazue

Quote:

Je vous ai bien évidemment épargné les nombreuses déclarations qui ne sont pas utiles ici.

Ah bon ?

Bon quoi qu'il en soit je vois au moins une chose qui ne va pas.

Quote:
   struct s_param{
   
      std::wstring col1;
   }
      
   s_param p1;
   p1.col1.assign(L"test1"); 

Quel est l'intérêt de faire ça, sinon de t'enduire d'erreur ? D'alleurs l'erreur ne se fait pas attendre à ce qu'il me semble:

Quote:
 params.pData = &p1; 

puis

Quote:
if( FAILED( hr = pICommandText->Execute( NULL,
      IID_IRowset,
      &params,
      &cNumRows,
      (IUnknown **)&pIRowset ) )
      ){
         cerr<<"Echec lors de l'execution de la procedure "<<endl;
         return 1;
   } 

Boum!
Tu passes une référence d'un bidule params à une API. Et le params.pData contient une référence sur une chaîne C++ standard, c'est à dire un objet.
Il me semble que params.pData ça doit être un pointeur en dur sur des données, en l'occurence le tampon qui contient les caractères.

Je verrais plutôt:

params.pData = p1.c_str();

En plus là si j'en crois ton bout de code, si ça se trouve une string et non une wstring est ce qu'il te faut. Parce que tu ne passe pas directement une chaîne à une API COM là.

La déclaration de params j'aurais été curieux de la voir d'ailleurs.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 Y   Y  TTTTTT  RRRR    GGG   U   U 
Y Y TT R R G U U
Y TT RRRR G GG U U
Y TT R R G G U U
Y TT R RR GGG UUU