Dsl autant pour moi
DBPARAMS params;
(en fait j'ai repris 1 exemple de MS et ça jlé pas modifié)
:oops:
Sinon j'ai réglé mon erreur en faisant comme ceci :
typedef struct tagParamADef{
char nomValeur[100];
char valeur[100];
}PARAMADEF;
PARAMADEF p1;
strcpy(p1.nomValeur, "nomVal1"); /*strcpy(p1.nomValeur, varNomVal1.c_str()); dans l'intérêt ou on dépasse pas la mémoire alloué*/
strcpy(p1.valeur, "valeur1"); /*strcpy(p1.valeur, varVal.c_str());*/
for (int i=0 ; i<=1; i++){
acDBBinding[i].obLength = 0;
acDBBinding[i].obStatus = 0;
acDBBinding[i].pObject = NULL;
acDBBinding[i].pTypeInfo = NULL;
acDBBinding[i].pBindExt = NULL;
acDBBinding[i].dwPart = DBPART_VALUE;
acDBBinding[i].dwMemOwner = DBMEMOWNER_CLIENTOWNED;
acDBBinding[i].dwFlags = 0;
acDBBinding[i].bScale = 0;
}
acDBBinding[0].iOrdinal = 1;
acDBBinding[0].obValue = offsetof(PARAMADEF, nomValeur);
acDBBinding[0].eParamIO = DBPARAMIO_INPUT;
acDBBinding[0].cbMaxLen= 100;
acDBBinding[0].wType = DBTYPE_STR;
acDBBinding[0].bPrecision = 0;
acDBBinding[1].iOrdinal = 2;
acDBBinding[1].obValue = offsetof(PARAMADEF, valeur);
acDBBinding[1].eParamIO = DBPARAMIO_INPUT;
acDBBinding[1].cbMaxLen= 100;
acDBBinding[1].wType = DBTYPE_STR;
acDBBinding[1].bPrecision = 0;
params.pData = &p1;
params.cParamSets = 1;
params.hAccessor = hAccessor;
cNumRows=0;
if( FAILED( hr = pICommandText->Execute( NULL,
IID_IRowset,
¶ms,
&cNumRows,
(IUnknown **)&pIRowset ) )
){
cerr<<"Echec lors de l'execution de la procedure "<<endl;
return 1;
}
Enfin c'est relatif de dire que j'ai réglé mon erreur car même si ça s'inscrit bien dans ma base (et que j'ai fait moins de faute à la recopie sur le topic) ça semble pas très beau ?
Dsl autant pour moi
DBPARAMS params;
(en fait j'ai repris 1 exemple de MS et ça jlé pas modifié)
:oops:
Sinon j'ai réglé mon erreur en faisant comme ceci :
Enfin c'est relatif de dire que j'ai réglé mon erreur car même si ça s'inscrit bien dans ma base (et que j'ai fait moins de faute à la recopie sur le topic) ça semble pas très beau ?