OLEDB SDK 中怎麼使用IRowsetFind::FindNextRow()? void * pFindValue,參數怎麼寫?

laker_tmj 2004-04-17 01:15:58
OLEDB SDK 中怎麼使用IRowsetFind::FindNextRow()? void * pFindValue,參數怎麼寫?

HRESULT FindNextRow (
HCHAPTER hChapter,章節句柄,沒有章節的行集為空
HACCESSOR hAccessor,行集訪問器句柄
void * pFindValue, ???
DBCOMPAREOP CompareOp,比較方式
ULONG cbBookmark,書簽值的存儲長度
const BYTE * pBookmark,書簽的(值)地址
LONG lRowsOffset,要跳過多少行才開始取
LONG cRows,想要返回的行數
ULONG * pcRowsObtained,實際返回的行數
HROW ** prghRows);返回行句柄

從一個位置(用書簽來標識位置)開始找 (pFindValue)


謝謝 !!!
...全文
36 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker_tmj 2004-04-27
  • 打赏
  • 举报
回复
up
laker_tmj 2004-04-22
  • 打赏
  • 举报
回复
lihao_ningxia(耗子) :

請問要這個接口要設置什么才能正確取得 ?


上海老李 2004-04-22
  • 打赏
  • 举报
回复
在它同部有一个记录当前记录的指针,那么你只要下移一位就行了
laker_tmj 2004-04-22
  • 打赏
  • 举报
回复
oledb sdk 中怎麼樣才能正確取得 'IRowsetFind' 接口 ???

我用以下代碼
'pICommandProperties->SetProperties(1,rgInitPropSet);' 返回錯誤代碼 'DB_S_ERRORSOCCURRED' 所以 'pIRowset->QueryInterface(IID_IRowsetFind,(void **)&pIRowsetFind);' 返回失敗!

請問要這個接口要設置什么才能正確取得 ?
'IRowsetFind->FindNextRow()'怎麼使用 ?

InitProperties[0].dwPropertyID=DBPROP_IRowsetScroll;
InitProperties[0].dwOptions=DBPROPOPTIONS_REQUIRED;
InitProperties[0].dwStatus=DBPROPSTATUS_OK;
InitProperties[0].colid=DB_NULLID;
InitProperties[0].vValue.vt=VT_BOOL;
InitProperties[0].vValue.lVal=VARIANT_TRUE;

InitProperties[1].dwPropertyID=DBPROP_IRowsetFind;
InitProperties[1].dwOptions=DBPROPOPTIONS_REQUIRED;
InitProperties[1].dwStatus=DBPROPSTATUS_OK;
InitProperties[1].colid=DB_NULLID;
InitProperties[1].vValue.vt=VT_BOOL;
InitProperties[1].vValue.lVal=VARIANT_TRUE;

rgInitPropSet[0].cProperties=2;
rgInitPropSet[0].guidPropertySet=DBPROPSET_ROWSET;
rgInitPropSet[0].rgProperties=InitProperties;

hr=pICommandText->QueryInterface(IID_ICommandProperties,(void **)&pICommandProperties);

hr=pICommandProperties->SetProperties(1,rgInitPropSet);
if (DB_S_ERRORSOCCURRED==pICommandProperties->SetProperties(1,rgInitPropSet))
cout<< "test";
if(FAILED(hr))
{
cout<< "OLEDB Error !\r\nExecute Failed To Set Rowset Properties";
}
hr = pIRowset->QueryInterface(IID_IRowsetFind,(void **)&pIRowsetFind);
if(FAILED(hr))
{
cout << "Failed to get IID_IRowsetFind interface.\n";
cout << endl;
} //end if
laker_tmj 2004-04-20
  • 打赏
  • 举报
回复
up
laker_tmj 2004-04-19
  • 打赏
  • 举报
回复
up

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧