首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC ado连接数据库 更新记录集解决办法

2012-03-15 
VC ado连接数据库 更新记录集int i,jiGetDlgItemInt(IDC_xuehaocha)jGetDlgItemInt(IDC_yearcha)CStr

VC ado连接数据库 更新记录集
int i,j;
i=GetDlgItemInt(IDC_xuehaocha);
  j=GetDlgItemInt(IDC_yearcha);
  CString str1,str2;
str1.Format("%d",i);
str2.Format("%d",j);
  try
{

m_pRecordset.CreateInstance("ADODB.Recordset");

m_pRecordset->Open("SELECT * FROM jiaofei WHERE Fyear='"+str+"'",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}

i和j是我从编辑框里读取的数据。想以他们为条件找到数据库查找记录并更新。
运行的时候老报错
1.error C2664: 'Open' : cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
2.cannot convert from 'class CString' to 'const class _variant_t'

请问哪位能帮我解决解决这个问题,感谢了

[解决办法]

C/C++ code
m_pRecordset->Open(_variant_t("SELECT * FROM jiaofei WHERE Fyear='"+str+"'"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);}
[解决办法]
字符串转换出错,
LPTSTR lpType;
CString m_strFileName;
CString strTmp;
strTmp = m_strFileName.Right(3); //从右取3个
lpType = LPCTSTR(strTmp); //强制转换

[解决办法]
CString strSQL;
strSQL.Format(_T("SELECT * FROM jiaofei WHERE Fyear='%s'"), str);
m_pRecordset->Open(_varian_t((LPCTSTR)strSQL),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}

热点排行