W jaki sposób pobrania danych?

Po otwarciu źródła danych, sesji i obiektów zestawu wierszy, można pobrać dane. W zależności od typu akcesor, którego używasz, może zajść potrzeba powiązanie kolumn. Do pobrania danych, wykonaj następujące kroki:

  1. Otwórz wierszy przy użyciu odpowiedniego polecenia Otwórz.

  2. Jeśli używasz CManualAccessor, powiązanie kolumn wyjściowych, jeśli nie została jeszcze utworzona. Aby powiązać kolumn, wywołania GetColumnInfo, a następnie utworzyć akcesor operacji z powiązaniami, jak pokazano poniżej:
     / Z CDBTreeView::OnQueryEdit DBViewer próbki
    / / Get informacji o kolumnie
    ULONG ulColumnsnbsp;      = 0;
    DBCOLUMNINFO * pColumnInfo = NULL;
    LPOLESTR pStrings = NULL;
    Jeżeli (r.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings)! = wartość S_OK)
    AfxThrowOLEDBException (rs.m_pRowset, IID_IColumnsInfo);
    struct MYBIND * pBind = nowe MYBIND [ulColumns];
    r.CreateAccessor (ulColumns & pBind [0], sizeof(MYBIND)*ulColumns);
    dla (ULONG l = 0; l < ulColumns; l ++)
    r.AddBindEntry (l + 1, typem DBTYPE_STR, sizeof (TCHAR) * 40 & pBind [l] .szvalue, NULL & pBind[l].dwStatus);
    r.BIND()
    
  3. Pisz gdy pętli do pobierania danych. W pętli wywołać element MoveNext zaliczki kursor i sprawdzić wartość zwracany przeciwko wartość S_OK, jak pokazano w poniższym przykładzie:
    podczas (r.Move&Next() == wartość S_OK)
    {
     nbsp; / / Dodanie kodu do pobrania danych tutaj
       / / Jeżeli nie używasz akcesor auto, wywołanie UW.GetData()
    }
    
  4. W pętli podczas można pobrać dane zgodnie z typem akcesor.
    • Jeśli za pomocą klasy CAccessor , powinien mieć rekordu użytkownika, zawierający dane członków. Można uzyskać dostęp danych przy użyciu tych członków, danych, jak pokazano tutaj:
      podczas (r.Move&Next() == wartość S_OK)
      {
       nbsp; / / Bezpośrednio korzystać członkowie danych. W tym przypadku, m_nFooID
         / / jest zadeklarowany w rekordu użytkownika, który wynika z
         / / CAccessor
         wsprintf ("%d", rs.m_nFooID); 
      }
      
    • Użycie klasy CDynamicAccessor lub CDynamicParameterAccessor , można pobrać dane przy użyciu funkcji dostęp do elementu GetValue i GetColumn, jak pokazano w poniższym kodzie. Jeśli chcesz określić typ danych, którego używasz, użyj polecenia GetType.
      podczas (r.MoveNext() == wartość S_OK)
      {
       nbsp; / / Umożliwia dynamiczne akcesory pobierania użytkownika
         / / danych
      
      ULONG ulColumns = r.GetColumnCount();
         dla (ULONG I = 0; i < ulColumns; i ++)
         {
           r.GetValue(i);
         }
      }
      
    • Jeśli używasz CManualAccessor, musi określać swoje własne elementy danych, powiązać je samodzielnie i dostępu je bezpośrednio, jak pokazano tutaj:
      podczas (r.Move&Next() == wartość S_OK)
      {
       nbsp; / / Wykorzystywać członków dane określone w zaproszeniach do
         / / AddBindEntry.
      
      wsprintf ("%s", szFoo);
      }
      

Index