C++MFC使用ADO调用mysql带参存储过程参数中文乱码
服务器gbk
数据库gbk
表gbk
调用存储过程准备:
//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection");
CString strConnect="..."
//使用Open方法连接数据库
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
_CommandPtr m_pCommand;//初始化命令对象
m_pCommand.CreateInstance("ADODB.Command");//创建命令实例
m_pCommand->ActiveConnection=m_pConnection;//设置命令对象的连接
m_pCommand->CommandText = _bstr_t("evaluate_count9");//存储过程名
m_pCommand->CommandType=adCmdStoredProc;//
m_pCommand->Parameters->Refresh();
//参数值
_variant_t vvar1,vvar2,vvar3;
vvar1=_variant_t(_bstr_t(m_CountDepartment));
vvar2=_variant_t(_bstr_t(m_DateBegin));
vvar3=_variant_t(_bstr_t(m_DateEnd));
//注意以上参 m_CountDepartment 为CString类型变量 值为:"/北京" 。。。。
_ParameterPtr ParametV;
ParametV.CreateInstance(__uuidof(Parameter));
//添加到集合
ParametV=m_pCommand->CreateParameter(_bstr_t("DepartmentName2"),adVarChar,adParamInput,32,vvar1);
m_pCommand->Parameters->Append(ParametV);
ParametV=m_pCommand->CreateParameter(_bstr_t("STARTDealDateTime"),adVarChar,adParamInput,32,vvar2);
m_pCommand->Parameters->Append(ParametV);
ParametV=m_pCommand->CreateParameter(_bstr_t("endDealDateTime"),adVarChar,adParamInput,32,vvar3);
m_pCommand->Parameters->Append(ParametV);
vvar3=_variant_t(_bstr_t(m_DateEnd));
//执行存储过程
m_pRecordset = m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);