Tworzenie zestawu rekordów DAO

Do utworzenia zestawu rekordów w DAO służy metoda OpenRecordset obiektu DAO Database 

kliknij, aby powiększyć

Parametry wejściowe to:

kliknij, aby powiększyć
    • Name 
      argument wymagany typu String. Może być to nazwa kwerendy, tabeli czy zmienna będąca zapisem kwerendy w SQL 
    • Type
      argument opcjonalny typu Variant, określa typ zestawu rekordów: 

        • dbOpenDynamic (lub wartość 16)
          Najbardziej „żywy” i dynamiczny typ rekordsetu.
          – pozwala na odczyt, dodawanie, edycję i usuwanie rekordów,
          • wszystkie zmiany wprowadzone przez innych użytkowników są widzoczne w czasie rzeczywistym,
          • wprowadzone zmiany są widoczne od razu także dla innych użytkowników,
          • najbardziej elastyczny, ale też najcięższy wydajnościowo,
          • nie działa z niektórymi źródłami danych (np. niektóre ODBC).
          Kiedy używać: gdy potrzebna jest pełna interakcja z danymi i współdzielenia zmian.
        • dbOpenDynaset (lub wartość 2)
          Najczęściej używany typ — kompromis między funkcjonalnością a wydajnością.
          – można odczytywać, edytować, dodawać i usuwać rekordy (o ile źródło na to pozwala).
          • Rekordset widzi niektóre zmiany innych użytkowników, ale nie wszystkie (np. nie widać nowych rekordów, jeśli nie spełniają kryteriów zapytania).
          • zmiany w bieżącym rekordzie są widoczne natychmiast.
          • bardziej wydajny niż dbOpenDynamic.
          Kiedy używać: w 90% przypadków — formularze, edycja danych, zapytania z JOIN.
        • dbOpenForwarOnly (lub wartość 8)
          Rekordset tylko do przodu — szybki i lekki,
          – można tylko odczytywać dane,
          – można przechodzić tylko do przodu (MoveNext),
          – brak możliwości edycji, dodawania, usuwania,
          – bardzo szybki, idealny do przetwarzania dużych zbiorów danych.
          Kiedy używać: gdy chcesz szybko przeiterować dane bez potrzeby modyfikacji.
        • dbOpenSnapshot (lub wartość 4)
          Statyczna migawka danych.
          – tylko do odczytu,
          – dane są „zamrożone” — nie widać zmian innych użytkowników.
          – bardzo stabilny i przewidywalny.
          – szybszy niż dynaset, wolniejszy niż forward-only.
          Kiedy używać: gdy potrzebujesz stabilnego zestawu danych do raportów, eksportów, porównań.
        • dbOpenTable (lub wartość 1)
          Bezpośredni dostęp do tabeli (tylko lokalne bazy Access).
          – można odczytywać i modyfikować dane,
          – działa tylko z tabelami w tej samej bazie (nie działa z zapytaniami, ODBC, linkami),
          – umożliwia dostęp do indeksów i szybkie wyszukiwanie (Seek),
          – najszybszy sposób pracy z lokalną tabelą.
          Kiedy używać: gdy potrzebujesz metody Seek lub maksymalnej wydajności w lokalnej tabeli.
    • Options
      argument opcjonalny typu Variant, określający cechy nowego zestawu rekordów
    • Lockedit
      argument opcjonalny typu Variant, określający blokadę zestawu rekordów:

        • dbOptimistic  (lub wartość 3)

          Najbardziej klasyczny i najczęściej używany tryb. 
          – rekord nie jest blokowany podczas edycji, 
          – blokada następuje dopiero w chwili zapisu,
          – jeśli w międzyczasie inny użytkownik zmienił ten sam rekord, pojawi się konflikt (błąd 3197 lub 3260).

          Zaletą jest tu bardzo dobra wydajność oraz minimalne blokowanie — użytkownicy nie przeszkadzają sobie nawzajem. Możliwe są tu jednak konflikty przy zapisie.

        • dbOptimisticBatch  (lub wartość 5)
          Odmiana optymistycznego blokowania, ale bardziej „precyzyjna”. DAO blokuje tylko te pola, które faktycznie zostały zmienione. Konflikt wystąpi tylko wtedy, gdy inny użytkownik zmienił dokładnie to samo pole, a nie cały rekord. 
        • dbOptimisticValue (lub wartość 1)
          Tryb dla aktualizacji wsadowych (batch updates)
          – zmiany są buforowane lokalnie, a nie zapisywane od razu,
          – można zmodyfikować wiele rekordów i zapisać je „hurtowo”
          – w przypadku konfliktów DAO zwraca informacje o błędach dla poszczególnych rekordów.

          Bardzo wydajne przy dużych operacjach, choć wymaga bardziej zaawansowanej obsługi błędów.

        • dbOptimistic (lub wartość 2)
          blokada natychmiast po rozpoczęciu edycji
          – rekord jest blokowany w momencie rozpoczęcia edycji,
          -blokada trwa aż do czasu zakończenia edycji,
          – w tym czasie żaden inny użytkownik nie może edytować tego rekordu

Bardzo przewidywalny w środowisku wieloużytkownikowym. Może powodować „zatory”, jeśli użytkownik długo trzyma rekord w edycji.


kawa dla marzateli

A tu możesz mi postawić kawę: 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *