vc recordset select是如何传递参数的

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:06:22
直接读取BOOK可行
m_pRecordset->Open("SELECT * FROM Book",_variant_t((IDispatch*)m_AdoConn.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

但我想查询BOOKID等于输入数据vInput时没反映,下面的写法哪里有错误.
最好能帮忙解释下后面加的参数的含义.不是我抠门.我只有5分.
m_pRecordset->Open("SELECT * FROM Book where BookID
='" + (_bstr_t)vInput + "'",_variant_t((IDispatch*)m_AdoConn.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
不可以直接由m_pRecord->Open方法得到数据吗?
如果用str.format方法的话,我以前做的好多类都要重写过了

我找到方法了
m_pRecordset->Open("SELECT * FROM Book where BookID = '" + vInput + "',_variant_t((IDispatch*)m_AdoConn.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

这只是=方法,like方式是怎么用的啊

//假设查BOOKID 等于零的数据
INT iID = 0 ;
strSQL.Format( _T("SELECT * FROM Book WHERE BOOKID=%d") , iID ) ;

//CRecordset::snapshot 快照方式
//CRecordset::readOnly 只读方式
m_pRecordset->Open(CRecordset::snapshot, strSQL, CRecordset::readOnly));

if ( m_pRecordset->IsBOF() && m_pRecordset->IsBOF() )
{
//没有数据
return XXX;
}
//找第一行
m_pRecordset->MoveFirst() ;
//...处理

//这里可以用while循环来读取数据
m_pRecordset->MoveNext() ;

//LIKE用法,查询名字有A的字段,注意,VC字符串用%%表示%
SELECT * FROM ClipInfo WHERE BOOK_NAME LIKE 'A%'