vc++ ado操作mysql , 中文存储成功,但是修改失败
还是老问题,编码问题
非常奇怪的是可以addnew存储,但是修改就会失败,
我现在脑袋都大了
一下午就倒腾这玩意了~
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="DRIVER={MySQL ODBC 5.1 Driver}; \
Data Source = trm_base; ";
try
{
HRESULT hr = pConn->Open("","","",adConnectUnspecified);
pConn->Execute("set character_set_connection='utf8'",NULL,adCmdText);
pConn->Execute("set character_set_results='utf8'",NULL,adCmdText);
pConn->Execute("set character_set_client='utf8'",NULL,adCmdText);
CString strSource = "select * from updatetest \
where 姓名='张' and 年龄='十岁'";
HRESULT hr2 = pRst->Open(_variant_t(strSource),
_variant_t(pConn, true),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch (_com_error& err)
{
CString s;
s.Format("%s",err.Description());
}
pRst->MoveFirst();
while (!pRst->ADOEOF)
{
_variant_t varIndex("姓名");
_variant_t varValue("胡");
//pRes->AddNew(); //这里如果addnew,则可以重新填充一条记录,没一点问题
pRst->PutCollect(varIndex, varValue);//假如这里修改,
HRESULT hr = pRst->Update();//这里会显示返回值成功,但是实际上数据库里并没有修改,
pRst->MoveNext();
}