请教怎么将数据库指针移动到指定记录的位置下

请问如何将数据库指针移动到指定记录的位置上?
dlg->m_title.GetWindowText(continue_keyword);//得到需要找到的记录
continue_keyword2=continue_keyword;//数据库类型
if(continue_keyword!="")// 当该记录不为空
{
m_pRecordset_if->MoveLast();//从数据库末尾开始查询
while(m_pRecordset_if->GetCollect("keywords")!=continue_keyword2 && !m_pRecordset_if->FirstOfFile)
{
m_pRecordset_if->MovePrevious();//一条一条查
}
if(!m_pRecordset_if->FirstOfFile)
{
load_keyword=m_pRecordset_if->GetCollect("keywords");
load_count=5;
_load_keyword=load_keyword.bstrVal;
//::MessageBox(NULL, _load_keyword, NULL, MB_OK);
return _load_keyword;

}
}

我想把数据库指针指向指定的记录,目前采取这种方法实在是太慢了,请问能否使用sql 语句来找到指定记录的位置?
------解决方案--------------------
为什么要一条一条比较呢?
用SQL查询不是很简单吗
------解决方案--------------------

好像没有特别好的办法了,除此之外!

BOOL CADORecordset::Find(LPCTSTR lpFind, int nSearchDirection)
{

m_strFind = lpFind;
m_nSearchDirection = nSearchDirection;

ASSERT(!m_strFind.IsEmpty());

if(m_nSearchDirection == searchForward)
{
m_pRecordset->Find(_bstr_t(m_strFind), 0, adSearchForward, "");
if(!IsEof())
{
m_varBookFind = m_pRecordset->Bookmark;
return TRUE;
}
}
else if(m_nSearchDirection == searchBackward)
{
m_pRecordset->Find(_bstr_t(m_strFind), 0, adSearchBackward, "");
if(!IsBof())
{
m_varBookFind = m_pRecordset->Bookmark;
return TRUE;
}
}
else
{
TRACE("Unknown parameter. %d", nSearchDirection);
m_nSearchDirection = searchForward;
}
return FALSE;
}


inline HRESULT Recordset15::Find ( _bstr_t Criteria, ADO_LONGPTR SkipRecords, enum SearchDirectionEnum SearchDirection, const _variant_t & Start ) {
    HRESULT _hr = raw_Find(Criteria, SkipRecords, SearchDirection, Start);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _hr;
}