DEFINE_COMMAND(CUserCatUserIDAccessor, _T("SELECT USER_ID, USER_INFO FROM test_schema.User where USER_ID=?" )) };
Si mon champs, user_info dans oracle à une longueur de 10 caractères pour un user spécifique et que dans ces 10 caractères il y a par exemple deux '%', alors strlen(m_USERINFO) est 8 ! J'ai perdu mes deux %. Je devine que quelque part, dans une des marcos cela foire mais je ne me sens pas trop à l'aise pour aller bidouiller dans les atldbcli.h, etc... pour faire du traçage.
N'y a-t-il donc pas moyen de travailler avec des champs qui ont des char spéciaux avec ces consommateurs ? Dois-je utiliser d'autres classes, macros, ou y aurait-il une solution toute bête ?
Marsh Posté le 08-11-2005 à 09:26:22
Bonjours à tout le monde,
Voilà, je peine un peu sur un problème à la c., alors je me demandais si par hasard, un de vous n'aurait pas rencontrer le même problème:
J'ai utilisé le ATL Object Wizard pour créer mon consommateur, disons que mon code ressemble à ceci:
class CUserSimpleAccessor:public CUser{
BEGIN_COLUMN_MAP(CUserSimpleAccessor)
COLUMN_ENTRY(1, m_USERID)
COLUMN_ENTRY(2, m_USERINFO)
END_COLUMN_MAP()
void ClearRecord(){
memset(this, 0, sizeof(*this));
}
};
class CUserIDAccessor:public CUserSimpleAccessor{
BEGIN_PARAM_MAP(CUserCatUserIDAccessor)
COLUMN_ENTRY(1, m_USERID)
END_PARAM_MAP()
DEFINE_COMMAND(CUserCatUserIDAccessor, _T("SELECT USER_ID, USER_INFO FROM test_schema.User where USER_ID=?" ))
};
Si mon champs, user_info dans oracle à une longueur de 10 caractères pour un user spécifique et que dans ces 10 caractères il y a par exemple deux '%',
alors strlen(m_USERINFO) est 8 ! J'ai perdu mes deux %. Je devine que quelque part, dans une des marcos cela foire mais je ne me sens pas trop à l'aise pour aller bidouiller dans les atldbcli.h, etc... pour faire du traçage.
N'y a-t-il donc pas moyen de travailler avec des champs qui ont des char spéciaux avec ces consommateurs ? Dois-je utiliser d'autres classes, macros, ou y aurait-il une solution toute bête ?
Je vous remercie d'avance
Fred