请教数据类型转换的问题(SQL Server和C++)

ranman 2003-08-24 05:54:43
我在_RecordsetPtr的Open()函数里使用如下的联机字符串:
"SELECT * FROM workID WHERE word_id='"+m_strName+"' AND passw='"+m_strPass+"'"但是编译的时候出现如下的错误:
cannot convert parameter 1 from 'class CString' to 'const class _variant_t &'
请问我该怎么做?

...全文
12 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
commandconque 2003-08-24
你干脆写成:
->Open( _variant_t("select * from ....");
_variant_t((IDispatch *)m_connection,TRUE),
...,
...,
adCmdText);
回复
yanzai8848 2003-08-24
CString strSQL;
strSQL = "SELECT * FROM workID WHERE word_id='"
+ m_strName
+ "' AND passw='"
+ m_strPass
+ "'";

在Open()函数的SQL语句参数中使用

strSQL.LockBuffer();

在Open()之后加上

strSQL.UnLockBuffer();
回复
karlson0211 2003-08-24
我记得好象是:_variant_t strQueary;
strQueary="SELECT * FROM workID WHERE word_id='"+m_strName+"' AND passw='"+m_strPass+"'"再试试?
回复
丁淇石头 2003-08-24
试试这个:
char buf[100];
HRESULT hr;
try
{
hr=m_pConnect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
//先将SQL组装好
sprintf(buf,"SELECT * FROM workID WHERE word_id='%s' AND passw='%s'", m_strName, m_strPass);
hr = m_pConnect->Open(buf, "", "", adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
return FALSE;
}
回复
丁淇石头 2003-08-24
试试这个:
char buf[100];
HRESULT hr;
try
{
hr=m_pConnect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
sprintf(buf,"SELECT * FROM workID WHERE word_id='%s' AND passw='%s'", m_strName, m_strPass);
hr = m_pConnect->Open(buf, "", "", adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
return FALSE;
}
回复
相关推荐
发帖
数据库
创建于2007-09-28

3956

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2003-08-24 05:54
社区公告
暂无公告