Después de abrir el origen de datos, sesión y objetos de conjunto de filas, puede recuperar datos. Dependiendo del tipo de descriptor de acceso que está utilizando, puede que necesite enlazar columnas. Para recuperar datos, siga estos pasos:
/ / Desde el CDBTreeView::OnQueryEdit ejemplo DBViewer
/ / Obtener la información de columna
ULONG ulColumnsnbsp; = 0;
DBCOLUMNINFO * pColumnInfo = NULL;
LPOLESTR pStrings = NULL;
Si (rs.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings)! = S_OK)
AfxThrowOLEDBException (rs.m_pRowset, IID_IColumnsInfo);
struct MYBIND * pBind = nuevo MYBIND [ulColumns];
RS.CreateAccessor (ulColumns & pBind [0], sizeof(MYBIND)*ulColumns);
para (ULONG l = 0; l < ulColumns; l ++)
RS.AddBindEntry (l + 1, DBTYPE_STR, sizeof (TCHAR) * 40 & pBind [l] .szvalue, NULL & pBind[l].dwStatus);
RS.BIND()
mientras (rs.Move&Next() == S_OK)
{
nbsp; / / Agregar código para recuperar datos aquí
/ / Si no está utilizando un descriptor de acceso automático, llamada rs.GetData()
}
mientras (rs.Move&Next() == S_OK)
{
nbsp; / / Utilizar los miembros de datos directamente. En este caso, m_nFooID
/ / se declara en un registro de usuario que se derive de
/ / CAccessor
wsprintf ("%d", rs.m_nFooID);
}
mientras (rs.MoveNext() == S_OK)
{
nbsp; / / Utilizar las funciones de descriptor de acceso dinámico para recuperar su
/ / datos
ULONG ulColumns = rs.GetColumnCount();
para (ULONG I = 0; i < ulColumns; i ++)
{
RS.GetValue(i);
}
}
mientras (rs.Move&Next() == S_OK)
{
nbsp; / / Especificados en las convocatorias a los miembros de datos de uso
/ / AddBindEntry.
wsprintf ("%s", szFoo);
}