데이터 소스, 세션 및 행 집합 개체를 연 후에 데이터를 페치할 수 있습니다. 사용 하는 접근자의 형식에 따라, 당신은 열을 바인딩할 필요가 있습니다. 데이터를 페치 하려면 다음이 단계를 수행:
/ / DBViewer 샘플 Cdbtreeview::onqueryedit에서
/ / 열 정보를 얻을
ULONG ulColumnsnbsp;????? = 0;
DBCOLUMNINFO * pColumnInfo = NULL;
LPOLESTR pStrings = NULL;
경우 (rs.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings)! = S_OK)
AfxThrowOLEDBException (rs.m_pRowset, IID_IColumnsInfo);
구조체 MYBIND * pBind = 새로운 MYBIND [ulColumns];
rs입니다.CreateAccessor (ulColumns, 및 pBind [0], sizeof(MYBIND)*ulColumns);
에 대 한 (ULONG l = 0; l < ulColumns; l + +)
rs입니다.AddBindEntry (l + 1, DBTYPE_STR, 우리 모두의 sizeof (TCHAR) * 40, & pBind [l].szvalue NULL & pBind[l].dwStatus);
rs입니다.Bind)
동안 (rs.MoveNext() = S_OK)
{
nbsp; / / 여기에 데이터를 반입 하는 코드 추가
? / / 자동 접근자를 사용 하지 않는 경우 전화 rs.핸들러의
}(&N)
동안 (rs.MoveNext() = S_OK)
{
nbsp; / / 데이터 멤버를 직접 사용 합니다. 이 경우에 m_nFooID
? / /에서 파생 되는 사용자 레코드에서 선언
? / / CAccessor
? wsprintf ("%d", rs.m_nFooID);
}(&N)
동안 (rs.MoveNext() = S_OK)
{
nbsp; / / 동적 접근자 함수를 사용 하 여 검색 하 여
? / / 데이터
ULONG ulColumns rs =.GetColumnCount();
? 에 대 한 (ULONG I = 0; 난 < ulColumns; i + +)
? {
??? rs입니다.GetValue(i);
? }
}
동안 (rs.MoveNext() = S_OK)
{
nbsp; / / 사용 하는 호출에 지정 된 데이터 멤버
? / / AddBindEntry.
wsprintf ("%s", szFoo);
}(&N)