Obiekt Recordset ADO

Przykład

GetRows
Ten przykład pokazuje, jak używać metody GetRows.

Obiekt Recordset

Obiekt Recordset ADO służy do przechowywania zbioru rekordów z tabeli bazy danych. Obiekt Recordset składa się z rekordów i kolumn (pól).

W ADO ten obiekt jest najbardziej ważny i najczęściej używany do operacji na danych bazy danych.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Gdy otwierasz Recordset po raz pierwszy, wskaźnik aktualnego rekordu wskazuje na pierwszy rekord, podczas gdy atrybuty BOF i EOF są ustawione na False. Jeśli nie ma rekordów, atrybuty BOF i EOF są ustawione na True.

Obiekt Recordset może obsługiwać dwa typy aktualizacji:

  • Natychmiastowa aktualizacja - W momencie wywołania metody Update, wszystkie zmiany są natychmiast zapisywane do bazy danych.
  • Aktualizacja w jednym kroku - provider przechowuje wiele zmian, a następnie przesyła je do bazy danych za pomocą metody UpdateBatch.

W ADO zdefiniowano 4 różne typy kursorów (wskaźników):

  • Dynamiczny kursor - Pozwala na przeglądanie dodatków, zmian i usunięć dokonanych przez innych użytkowników
  • Kursor zbioru kluczy - Podobny do dynamicznego kursora, różni się tym, że nie możesz zobaczyć dodatków innych użytkowników oraz zapobiega dostępowi do zapisanych przez innych użytkowników rekordów. Zmiany danych dokonane przez innych użytkowników są nadal widoczne.
  • Statyczny kursor - dostarcza statyczną kopię zbioru danych, którą można używać do wyszukiwania danych lub tworzenia raportów. W dodatku, dodania, zmiany i usunięcia dokonane przez innych użytkowników będą niewidoczne. Jest to jedyny dozwolony typ kursora, gdy otwiera się obiekt Recordset klienta.
  • Statyczny kursor - dostarcza statyczną kopię zbioru danych, którą można używać do wyszukiwania danych lub tworzenia raportów. W dodatku, dodania, zmiany i usunięcia dokonane przez innych użytkowników będą niewidoczne. Jest to jedyny dozwolony typ kursora, gdy otwiera się obiekt Recordset klienta.

Typ kursora można ustawić za pomocą właściwości CursorType lub parametru CursorType w metodzie Open.

Komentarz:Nie wszyscy dostawcy (providers) wspierają wszystkie metody i właściwości obiektu Recordset.

Atrybut

Atrybut Opis
AbsolutePage Ustawia lub zwraca wartość, która określa stronę w obiekcie Recordset.
AbsolutePosition Ustawia lub zwraca wartość, która określa pozycję bieżącego rekordu w obiekcie Recordset (numer pozycji).
ActiveCommand Zwraca obiekt Command związany z obiektem Recordset.
ActiveConnection Ustawia lub zwraca definicję połączenia, jeśli połączenie jest zamknięte, lub aktualny obiekt Connection, jeśli połączenie jest otwarte.
BOF Zwraca true, jeśli pozycja bieżącego rekordu znajduje się przed pierwszym rekordem, w przeciwnym razie zwraca false.
Bookmark Ustawia lub zwraca znacznik, który zapisuje pozycję bieżącego rekordu.
CacheSize Ustawia lub zwraca liczbę rekordów, które mogą być buforowane.
CursorLocation Ustawia lub zwraca lokalizację usługi kursora.
CursorType Ustawia lub zwraca typ kursora obiektu Recordset.
DataMember Ustawia lub zwraca nazwę członka danych, który można pobrać z obiektu wskazywanego przez właściwość DataSource.
DataSource Określa obiekt, który zawiera dane do reprezentowania jako obiekt Recordset.
EditMode Zwraca stan edycji bieżącego rekordu.
EOF Zwraca true, jeśli pozycja bieżącego rekordu znajduje się po ostatnim rekordzie, w przeciwnym razie zwraca false.
Filter Zwraca filtr dla danych obiektu Recordset.
Index Ustawia lub zwraca nazwę bieżącego indeksu obiektu Recordset.
LockType Ustawia lub zwraca wartość, która określa typ blokady, który można指定 w przypadku edycji rekordu w Recordset.
MarshalOptions Ustawia lub zwraca wartość, która określa, które rekordy są zwracane do serwera.
MaxRecords Ustaw lub zwróć maksymalną liczbę rekordów z zapytania, które zwróci Recordset.
PageCount Zwróć liczbę stron danych w obiekcie Recordset.
PageSize Ustaw lub zwróć maksymalną liczbę rekordów na jednej stronie obiektu Recordset.
RecordCount Zwróć liczbę rekordów w obiekcie Recordset.
Sort Ustaw lub zwróć nazwę pola, które jest podstawą sortowania Recordset.
Source Ustaw wartość ciągła, lub referencję do obiektu Command, lub zwróć wartość ciągą, która wskazuje, gdzie znajduje się źródło danych obiektu Recordset.
State Zwróć wartość opisującą, czy obiekt Recordset jest otwarty, zamknięty, łączy się, wykonuje się lub pobiera dane.
Status Zwróć stan bieżącego rekordu w partii aktualizacji lub innych dużych operacjach.
StayInSync Ustaw lub zwróć, czy odniesienie do podrzędnych rekordów zmienia się, gdy zmienia się pozycja rekordu nadrzędnego.

Metoda

Metoda Opis
AddNew Utwórz nowy rekord.
Cancel Anuluj jedno wykonanie.
CancelBatch Anuluj jednorazową aktualizację w partii.
CancelUpdate Anuluj zmiany dokonane na jednym rekordzie obiektu Recordset.
Clone Utwórz kopię istniejącego Recordset.
Close Zamknij Recordset.
CompareBookmarks Porównaj dwa znaczniki.
Delete Usuń jeden rekord lub grupę rekordów.
Find Szukaj jednego rekordu spełniającego określone warunki w Recordset.
GetRows Kopiuj wiele rekordów z obiektu Recordset do dwuwymiarowego tablicy.
GetString Zwróć Recordset jako ciąg znaków.
Move Przenieś wskaźnik rekordu w obiekcie Recordset.
MoveFirst Przenieś wskaźnik rekordu do pierwszego rekordu.
MoveLast Przenieś wskaźnik rekordu do ostatniego rekordu.
MoveNext Przenieś wskaźnik rekordu do następnego rekordu.
MovePrevious Przenieś wskaźnik rekordu do poprzedniego rekordu.
NextRecordset Usuń bieżący obiekt Recordset przez wykonanie serii poleceń i wróć do następnego Recordset.
Open Otwórz element bazy danych, który umożliwia dostęp do rekordów tabeli, wyników zapytania lub zapisanych Recordset.
Requery Aktualizuje dane w Recordset, ponownie wykonując zapytanie, na którym opiera się obiekt.
Resync Odświeża dane w bieżącym Recordset z oryginalnej bazy danych.
Save Zapisuje obiekt Recordset do pliku lub obiektu Stream.
Seek Szuka w indeksie Recordset, aby szybko zlokalizować wiersz pasujący do określonej wartości i uczynić go bieżącym wierszem.
Supports Zwraca wartość logiczną, która definiuje, czy obiekt Recordset obsługuje określony typ funkcji.
Update Zapisuje wszystkie zmiany dokonane dla pojedynczego rekordu w obiekcie Recordset.
UpdateBatch Zapisuje wszystkie zmiany w Recordset do bazy danych. Używaj w trybie partycji aktualizacji.

Zdarzenie

Uwaga: Nie można obsługiwać zdarzeń za pomocą VBScript lub JScript (tylko języki Visual Basic, Visual C++ i Visual J++ mogą obsługiwać zdarzenia).

Zdarzenie Opis
EndOfRecordset Zdarzenie wywoływane, gdy próbujesz przejść do wiersza poza końcem Recordset.
FetchComplete Zdarzenie wywoływane po odczytaniu wszystkich rekordów w asynchronicznym działaniu.
FetchProgress Zdarzenie wywoływane regularnie w trakcie asynchronicznego działania, zgłaszające, ile rekordów zostało odczytanych.
FieldChangeComplete Zdarzenie wywoływane po zmianie wartości obiektu Field
MoveComplete Zdarzenie wywoływane po zmianie aktualnej pozycji w Recordset.
RecordChangeComplete Zdarzenie wywoływane po zmianie rekordu.
RecordsetChangeComplete Zdarzenie wywoływane po zmianie Recordset.
WillChangeField Zdarzenie wywoływane przed zmianą wartości obiektu Field
WillChangeRecord Zdarzenie wywoływane przed zmianą rekordu.
WillChangeRecordset Zdarzenie wywoływane przed zmianą Recordset.
WillMove Zdarzenie wywoływane przed zmianą aktualnej pozycji w Recordset.

Zbiór

Zbiór Opis
Fields Indykuje liczbę obiektów Field w tym Recordset.
Properties Zawiera wszystkie obiekty Property w obiekcie Recordset.

Atrybuty zbioru Fields

Atrybut Opis
Count

Zwraca liczbę elementów w zbiorze fields. Zaczyna się od 0.

Przykład:

	countfields = rs.Fields.Count
	
Item(nazwa_elementu/numer)

Zwraca określony element zbioru fields.

Przykład:

	itemfields = rs.Fields.Item(1)
	lub	
	itemfields = rs.Fields.Item("Name")
	

Atrybuty zbioru Properties

Atrybut Opis
Count

Zwraca liczbę elementów w zbiorze properties. Zaczyna się od 0.

Przykład:

	countprop = rs.Properties.Count
	
Item(nazwa_elementu/numer)

Zwraca określony element zbioru properties.

Przykład:

	itemprop = rs.Properties.Item(1)
	lub
	itemprop = rs.Properties.Item("Name")