Pobieranie wierszy
IRowset interfejs jest interfejsem podstawowego zestawu zestaw wierszy.IRowset interfejs udostępnia metody pobierania wierszy sekwencyjnie, pobieranie danych z tych wierszy i zarządzanie wierszy.Konsumentom należy użyć metody w IRowset dla wszystkich operacji podstawowego zestawu zestaw wierszy.Obejmuje to pobieranie i zwolnienie wierszy i pobieranie wartości kolumna.
Gdy klient uzyska wskaźnika interfejs na zestawu zestaw wierszy, pierwszym krokiem jest zwykle do ustalenia możliwości zestawu zestaw wierszy za pomocą IRowsetInfo::GetProperties metoda.To zwraca informacje o interfejsach 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 czas.
Następny krok dla konsumentów jest ustalenie charakterystyki lub metadane kolumn w zestawie zestaw wierszy.To korzystają z IColumnsInfo metoda prostej kolumna informacji lub IColumnsRowset metoda rozszerzone kolumna informacji.GetColumnInfo metoda zwraca następujące informacje:
Liczba kolumn zestaw wyników.
Tablica struktur DBCOLUMNINFO, jedna kolumna.
Kolejność struktur jest kolejność wyświetlania kolumn w zestawie zestaw wierszy.Struktura każdego DBCOLUMNINFO zawiera kolumna metadane, takich jak nazwa kolumna porządkowa kolumna, maksymalna długość możliwe wartości kolumna, typ danych kolumna, precyzji i długości.
Wskaźnik do przechowywania wszystkich wartości ciąg w blok jednej alokacji.
Konsument określa kolumny, które wymaga albo z metadane, lub oparta na polecenia tekst, który wygenerował zestawu zestaw wierszy.Określa, aby liczby porządkowe potrzebne kolumna zamawiania informacji o kolumnie zwrócony przez IColumnsInfo lub od liczby porządkowe w zestawie kolumn metadane zestaw wierszy zwracanych przez IColumnsRowset.
IColumnsInfo i IColumnsRowset interfejsy są używane do wyodrębnić informacji na temat kolumn w zestawie zestaw wierszy.IColumnsInfo interfejs zwraca ograniczony zestaw informacji, dlatego IColumnsRowset zawiera wszystkie metadane.
Ostrzeżenie
W SQL Server w wersja 7.0 i wcześniejszych, kolumny 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 kolumny podstawowej jest obliczana.
Liczebniki porządkowe są używane do określania powiązanie do kolumna.Powiązanie jest strukturą kojarzy element konstrukcji konsumenta z kolumna.powiązanie Można powiązać wartości danych, długość i wartość stanu kolumna.
Zestaw powiązania są zbierane razem w metoda dostępu.To jest tworzony przy użyciu IAccessor::CreateAccessor metoda.metoda dostępu może zawierać wiele powiązania, dzięki czemu można pobrać danych dla wielu kolumn lub zestaw w pojedyncze wywołanie.Konsument można utworzyć kilka akcesorów do użycia różnych wzorców w różnych częściach aplikacji.Ją utworzyć i zwolnij akcesor zestawu zestaw wierszy pozostaje w istnienia.
Aby wiersze pobrać z bazy danych, konsumenta wywołuje metoda, takich jak IRowset::GetNextRows lub IRowsetLocate::GetRowsAt.Pobrać te operacje umieszczanie wiersz danych z serwera do buforu wiersza Dostawca.Konsument nie ma bezpośredniego dostępu do buforu wiersza Dostawca.Używa konsumenta IRowset::GetData do kopiowania danych z bufora dostawca do buforu konsumenta i IRowsetChange::SetData do kopiowania zmian danych z buforu konsumenta do dostawca buforze.
Wywołania konsumenta GetData metody i przekazuje dojście do wiersza, dojście do metoda dostępu i wskaźnik do buforu przydzielone przez konsumenta.GetData konwertuje dane i zwraca kolumny, jak określono w powiązaniach używane do tworzenia metoda dostępu.Konsument może wywołać GetData więcej niż jeden czas dla wiersza, przy użyciu różnych metod dostępu i buforów i dlatego konsumenta można uzyskać kopie tych samych danych.
Dane z kolumn o zmiennej długości, mogą być traktowane na kilka sposobów.Po pierwsze takich kolumn można powiązać skończonej sekcji Struktura konsumenta.Powoduje obcięcie, gdy długość danych przekracza długość buforu.Konsument można określić, że obcinania wystąpił, sprawdzając stan DBSTATUS_S_TRUNCATED.Zwrócona długość jest zawsze true długością w bajtach, tak aby konsument również można określić ilość danych została obcięta.
Po zakończeniu konsumenta pobieranie lub aktualizowanie wierszy zwalnia je z ReleaseRows metoda.Zwalnia zasoby z kopiowania zestaw wierszy w zestawie zestaw wierszy, a dzięki przestrzeni dla nowych zestaw wierszy.Konsument 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 metody, aby 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 akcesorów konsument może pomieścić.