Pobieranie wierszy
The IRowset interfejs is the base zestaw wierszy interfejs.The IRowset interfejs provides methods for fetching rows sequentially, getting the data from those rows, and managing rows.Konsumenci użyć metod opisanych w IRowset dla wszystkich operacji podstawowego zestawu zestaw wierszy.Dotyczy to także pobierania i zwalniania wierszy i pobieranie wartości kolumna.
Gdy klient uzyskuje wskaźnika interfejs na zestawu zestaw wierszy, pierwszym krokiem jest zwykle do określenia możliwości zestawu zestaw wierszy za pomocą IRowsetInfo::GetProperties metoda.Powoduje to zwrócenie informacji dotyczących interfejsów, udostępniane przez zestaw wierszy, a także możliwości zestawu wierszy, które nie są wyświetlane jako odrębne interfejsach, takie jak maksymalnej liczby aktywnych wierszy oraz liczbę wierszy, które mogą mieć oczekujące aktualizacje, w tym samym czasie.
Następny krok dla odbiorców jest określenie właściwości lub metadane z kolumn w zestawie zestaw wierszy.W tym używają IColumnsInfo Metoda informacji o kolumnie prostych lub IColumnsRowset metoda kolumna rozszerzonych informacji.The GetColumnInfo metoda returns the following information:
Liczba kolumn zestaw wyników.
Tablica DBkolumnaINFO struktur, jeden na kolumna.
Kolejność struktur jest kolejność wyświetlania kolumn w zestawie zestaw wierszy.Każda struktura DBCOLUMNINFO zawiera kolumna metadane, takich jak nazwa kolumna, liczba porządkowa kolumna, maksymalną długość możliwych wartości kolumna, typ danych kolumna, dokładność i długości.
Wskaźnik do przechowywania wszystkich wartości ciąg w blok jednej alokacji.
Konsument określa kolumny, które wymaga jednego z metadane lub oparte na polecenie tekstowe wygenerowanego zestawu zestaw wierszy.Określa on liczby porządkowe wymagane kolumna kolejność informacji o kolumnie zwrócone przez IColumnsInfo lub od liczby porządkowe w zestawie kolumn metadane zestaw wierszy zwracanych przez IColumnsRowset.
The IColumnsInfo and IColumnsRowset interfaces are used to wyodrębnić information about the columns in the zestaw wierszy.The IColumnsInfo interfejs returns a limited zestaw of information, whereas IColumnsRowset provides all the metadane.
Uwaga
W SQL Server w wersja 7.0 lub starszym, kolumna opcjonalne metadane DBCOLUMN_COMPUTEMODE zwrócone przez IColumnsInfo::GetColumnsInfo zwraca DBSTATUS_S_ISNULL (zamiast wartości, opisujący, czy kolumna jest obliczana), ponieważ nie można ustalić, czy w kolumnie podstawowej jest obliczana.
Liczby porządkowe służą do określenia, w celu kolumna.wiązanie jest strukturą, który kojarzy element konstrukcji konsumenta z kolumną.wiązanie może powiązać wartości danych, długość i wartości kolumna Stan.
Zestaw powiązania zebrane razem w metoda dostępu.To jest tworzona przy użyciu IAccessor::CreateAccessor metoda.metoda dostępu może zawierać wiele powiązania tak, aby dane dla wielu kolumn można pobrać lub ustawić pojedyncze wywołanie.Konsument może utworzyć kilka metod dostępu do wzorów użycia różne w różnych częściach aplikacji.Może utworzyć i zwolnij Akcesory zestawu zestaw wierszy pozostaje istniejących.
Do pobierania wierszy z bazy danych, konsument wywołania metoda, takie jak IRowset::GetNextRows or IRowsetLocate::GetRowsAt.Pobieranie tych operacji umieszczania wiersza danych z serwera do bufora wierszy dostawca.Konsument nie ma bezpośredni dostęp do buforu wierszy dostawca.Używa konsumenta IRowset::GetData kopiowanie danych z buforu dostawca buforze i IRowsetChange::SetData w celu skopiowania danych zmienia się z buforu konsumenta do buforu dostawca.
Wywołania konsumenta GetData metody i przekazuje dojście do wiersza, dojście do metoda dostępu i wskaźnik do buforu przydzielone konsumenta.GetData konwertuje danych i zwraca kolumny, jak określono w powiązaniach użyty do utworzenia metoda dostępu.Konsument może wywołać GetData więcej niż jeden raz dla wiersza, za pomocą różnych metod dostępu i buforów i w związku z tym konsumenta mogą otrzymać wiele kopii tych samych danych.
Dane z kolumn o zmiennej długości, mogą być traktowane na kilka sposobów.Po pierwsze takie kolumny można powiązać z skończonej części struktury konsumenta.Jeśli długość danych przekracza długość buforu powoduje obcięcia.Konsumenta, można określić, że obcinania wystąpił poprzez sprawdzenie stanu DBSTATUS_S_TRUNCATED.Zwrócona długość to zawsze true długości w bajtach, pozwoli konsumenta również określić ilość danych została obcięta.
Po zakończeniu konsumenta pobieranie lub aktualizowanie wierszy zwalnia je z ReleaseRows metoda.Zwalnia zasoby z kopii zestaw wierszy w zestawie zestaw wierszy i powoduje, że miejsce dla nowych zestaw wierszy.Konsument może powtórzyć cyklu pobieranie lub tworzenie wierszy i uzyskiwania dostępu do danych w nich.
Po zakończeniu konsumenta z zestawu zestaw wierszy, wywołuje IAccessor::ReleaseAccessor metoda zwolnić wszystkie metoda dostępu.Wywołuje IUnknown::Release metoda na wszystkich interfejsach udostępniane przez zestaw wierszy, aby zwolnić zestawu wierszy.Po zwolnieniu zestawu zestaw wierszy wymusza wydania wszelkie pozostałe wiersze lub Akcesory konsument może pomieścić.