vc中CString连接成功但是不能作为SQL语句使用解决思路
vc中CString连接成功但是不能作为SQL语句使用
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));//连接对象
_RecordsetPtr pRst(__uuidof(Recordset));//记录集对象
_CommandPtr pCmd(__uuidof(Command));//COMMAND对象
pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\mydb.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";
pConn->Open("","","",adConnectUnspecified);
CString mystr1;
CString sql;
GetDlgItem(IDC_EDIT1)->GetWindowText(mystr1);
sql="select * from admintable where account="+mystr1;
sql.Format("select * from admintable where account='%s'",mystr1);
//方法2
pRst->Open(sql,_variant_t((IDispatch*)pConn),adOpenDynamic,adLockOptimistic,adCmdText);
出错
D:\Program Files\MSDev98\MyProjects\mytes2\mytes2Dlg.cpp(211) : error C2664: 'Open' : cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
Reason: cannot convert from 'class CString' to 'const class _variant_t'
No constructor could take the source type, or constructor overload resolution was ambiguous
执行 cl.exe 时出错.
------解决方案--------------------
sql="select * from admintable where account='sssd'";就出错
不可能吧,没看出问题,没有写错么
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));//连接对象
_RecordsetPtr pRst(__uuidof(Recordset));//记录集对象
_CommandPtr pCmd(__uuidof(Command));//COMMAND对象
pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\mydb.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";
pConn->Open("","","",adConnectUnspecified);
CString mystr1;
CString sql;
GetDlgItem(IDC_EDIT1)->GetWindowText(mystr1);
sql="select * from admintable where account="+mystr1;
sql.Format("select * from admintable where account='%s'",mystr1);
//方法2
pRst->Open(sql,_variant_t((IDispatch*)pConn),adOpenDynamic,adLockOptimistic,adCmdText);
出错
D:\Program Files\MSDev98\MyProjects\mytes2\mytes2Dlg.cpp(211) : error C2664: 'Open' : cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
Reason: cannot convert from 'class CString' to 'const class _variant_t'
No constructor could take the source type, or constructor overload resolution was ambiguous
执行 cl.exe 时出错.
------解决方案--------------------
sql="select * from admintable where account='sssd'";就出错
不可能吧,没看出问题,没有写错么