Depois de abrir o fonte de dados, sessão e objetos de conjunto de linhas, você pode buscar dados. Dependendo do tipo de acessador que você estiver usando, talvez você precise Ligar colunas. Para buscar dados, siga estes passos:
/ / De CDBTreeView::OnQueryEdit exemplo de DBViewer
/ / Obter as informações de coluna
UlColumnsnbsp ULONG; = 0;
DBCOLUMNINFO * pColumnInfo = NULL;
LPOLESTR pStrings = NULL;
se (rs.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings)! = S_OK)
AfxThrowOLEDBException (rs.m_pRowset, IID_IColumnsInfo);
struct MYBIND * pBind = novo MYBIND [ulColumns];
RS.CreateAccessor (sizeof(MYBIND)*ulColumns) ulColumns & pBind [0];
para (ULONG l = 0; l < ulColumns; l + +)
RS.AddBindEntry (l + 1, DBTYPE_STR, sizeof (TCHAR) * 40 & .szvalue pBind [l], NULL, & pBind[l].dwStatus);
RS.BIND)
ao mesmo tempo (rs.Move&Next() = = S_OK)
{
nbsp; / / Adicionar código para buscar dados aqui
/ / Se você não estiver usando um acessador de auto, chamada rs.GetData)
}
ao mesmo tempo (rs.Move&Next() = = S_OK)
{
nbsp; / / Usar os membros de dados diretamente. Neste caso, m_nFooID
/ / é declarado em um registro de usuário que deriva de
/ / CAccessor
wsprintf ("%d", rs.m_nFooID);
}
ao mesmo tempo (rs.MoveNext() = = S_OK)
{
nbsp; / / Use as funções do acessador dinâmico para recuperar seu
/ / dados
ULONG ulColumns = rs.GetColumnCount();
para (ULONG I = 0; i < ulColumns; i + +)
{
RS.GetValue(i);
}
}
ao mesmo tempo (rs.Move&Next() = = S_OK)
{
nbsp; / / Usar os membros de dados que você especificou nas chamadas para
/ / AddBindEntry.
wsprintf ("%s", szFoo);
}