C++用ado插数据,插入的字段中文是乱码、 80
strConn.Format(_T("driver={SQLServer};Server=%s;DATABASE=test;UID=interview;PWD=vte58...
strConn.Format(_T("driver={SQL Server};Server=%s;DATABASE=test;UID=interview;PWD=vte58.ok"),A2W(ip));\\连接字符串
strInsert.Format(_T("insert into Temp values(0,@msg,'%d-%d-%d %d:%d:%d','%s','%s')"),sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,waddress,strName);\\ 插入的语句,调试的时候可以看到这部分(strInsert)不是乱码。
BOOL CDataBaseAccess::Execute(CString sql,CString msg)
{
HRESULT hr;
_bstr_t CommandText(sql);
_variant_t varMsg(msg);
hr=m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection=m_pConnection;
m_pCommand->CommandText=CommandText;
m_pCommand->CommandType=adCmdText;
ParametersPtr pParams = m_pCommand->CreateParameter("@msg",adVarChar,adParamInput,msg.GetLength() ,varMsg );
m_pCommand->Parameters->Append(pParams);
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数
m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
return TRUE;
}
// 插入到数据库中之后,@msg字段就是乱码了。造成这样原因可能是什么?怎样可以解决? 展开
strInsert.Format(_T("insert into Temp values(0,@msg,'%d-%d-%d %d:%d:%d','%s','%s')"),sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,waddress,strName);\\ 插入的语句,调试的时候可以看到这部分(strInsert)不是乱码。
BOOL CDataBaseAccess::Execute(CString sql,CString msg)
{
HRESULT hr;
_bstr_t CommandText(sql);
_variant_t varMsg(msg);
hr=m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection=m_pConnection;
m_pCommand->CommandText=CommandText;
m_pCommand->CommandType=adCmdText;
ParametersPtr pParams = m_pCommand->CreateParameter("@msg",adVarChar,adParamInput,msg.GetLength() ,varMsg );
m_pCommand->Parameters->Append(pParams);
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数
m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
return TRUE;
}
// 插入到数据库中之后,@msg字段就是乱码了。造成这样原因可能是什么?怎样可以解决? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询