Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

PSZ wykład 4 > Integracja aplikacji z bazami danych cz. II

Podobne prezentacje


Prezentacja na temat: "PSZ wykład 4 > Integracja aplikacji z bazami danych cz. II"— Zapis prezentacji:

1 PSZ wykład 4 > Integracja aplikacji z bazami danych cz. II
Programowanie w Środowiskach Zintegrowanych > Integracja aplikacji z bazami danych cz. II

2 Na poprzednim wykładzie
Koncepcja mechanizmów integracji Architektura środowiska Zarys hierarchii komponentów Typowy schemat komunikacji aplikacji z bazą danych Komponenty abstrakcyjne i niezależne cz. I TCustomConnection TDataSet

3 Komponenty abstrakcyjne i niezależne cz. II
Komponent abstrakcyjny TField Komponent niezależny TDataSource Tworzenie struktury tabel powiązanych

4 TField Odpowiedzialność – umożliwia łatwy dostęp do danych zapisanych w polu rekordu TField – klasa nie wizualna (nie stanowi elementu GUI) Jest klasą składową klasy TDataSet Podstawowe usługi odczytywanie i ustawianie wartości pola formatowanie i konwersja danych walidacja

5 Komponenty bardziej wyspecjalizowane obsługujące konkretne typy pól – pochodne klasy TField

6 Pobieranie, zapisywanie i konwersja danych
Pobranie danych i zapisywanie przykłady: Numer = PrzekładowePole1->Value; Numer = PrzykladowePole1->AsInteger; Nazwa = PrzykladowePole2->AsString; PrzykladowePole2->AsString = „Jakiś tekst”; Właściwości AsSomething AsBoolean AsCurrency AsDateTime AsFloat AsInteger AsSQLTimeStamp AsString AsVariant

7 Formatowanie i walidacja
Właściwości EditMask __property TEditMask EditMask = {read=FEditMask, write=SetEditMask}; DisplayWidth __property int DisplayWidth = {read=GetDisplayWidth, write=SetDisplayWidth, stored=IsDisplayWidthStored, nodefault}; ValidChars typedef Set<char, 0, 255> TFieldChars; __property TFieldChars ValidChars = {read=FValidChars, write=FValidChars}; Zdarzenia OnValidate __property TFieldNotifyEvent OnValidate = {read=FOnValidate, write=FOnValidate}; Jeśli wygenerujemy wyjątek – walidacja negatywna

8 Tworzenie pól w klasie TDataSet
Komponent TDataSet posiada własny edytor służący do zarządzania polami Tworzenie pól nie jest obowiązkowe, gdyż w przypadku ich braku pola tworzone są automatycznie Zalecana praktyka – jawne tworzenie pól

9 Podstawowe rodzaje pól
Pola danych (data fields) Pola obliczane (calculated fields) Pola słownikowe (lookup fields)

10 Pola wyliczane Pole wyliczane – wartość pola nie jest odczytywana z bazy danych, ale obliczana w momencie odczytywania wiersza Wartość pola ustala się w ramach obsługi zdarzenia OnCalcFields __property TDataSetNotifyEvent OnCalcFields = {read=FOnCalcFields, write=FOnCalcFields}; Zdarzenie pojawia się w trzech przypadkach Zbiór zostaje otwarty Zbiór zostaje wprowadzony w stan edycji (State = dsEdit) Rekord jest pobierany z bazy danych

11 Pola słownikowe Pola słownikowe – przyjmują wartość ustaloną na podstawie innego zbioru danych Pole powiązane jest z innym zbiorem poprzez pola klucze (KeyFields) Na podstawie wartości pola klucza, z innego zbioru pobierana jest wartość innego pola Pola słownikowe rozpoznawane są przez elementy interfejsu obsługujące edycję bazy danych >posługiwanie się polami – przykład MicroCRM – regiony.

12 TDataSource Odpowiedzialność – interfejs pomiędzy zbiorami danych a elementami interfejsu przeznaczonymi do ich edycji Dane ze zbioru pobiera się za pośrednictwem źródła danych Za pośrednictwem źródła dane są również zapisywane do zbioru Zbiór (TDataSet) Źródło (TDataSource)

13 TDataSource - właściwości
AutoEdit __property bool AutoEdit = {read=FAutoEdit, write=FAutoEdit, default=1}; Czy elementy interfejsu mogą samodzielnie wprowadzić zbiór danych w stan edycji lub wstawiania. DataSet __property TDataSet* DataSet = {read=FDataSet, write=SetDataSet}; Zarządzany zbiór danych (zbiór, z którego źródło pobiera dane) Enabled __property bool Enabled = {read=FEnabled, write=SetEnabled, default=1}; Czy źródło jest włączone State __property TDataSetState State = {read=FState, nodefault}; Stan zarządzanego zbioru danych

14 Tworzenie struktur hierarchicznych
Z komponentów typu TTable lun TCustomDataSet można utworzyć strukturę hierarchiczną Najczęściej struktura odzwierciedla powiązania typu master-detail O powiązaniu w strukturę decydują dwie właściwości klasy TTable i TCustomDataSet __property Db::TDataSource* MasterSource = {read=GetDataSource, write=SetDataSource}; __property AnsiString MasterFields = {read=GetMasterFields, write=SetMasterFields}; >posługiwanie się strukturami hierarchicznymi – przykład: MicroCRM; Kontakty z klientem.

15 Elementy interfejsu zintegrowane ze zbiorami danych
Dostępne komponenty Przykład

16 Komponenty edycyjne zintegrowane ze zbiorami danych
Przeznaczenie – szybka implementacja zadań dotyczących edycji bazy danych Elementy edytujące pola Elementy edytujące wiersze Elementy specjalne >posługiwanie się strukturami hierarchicznymi – przykład: Zarządzanie zwrotami gwarancyjnymi

17 Podsumowanie Komponenty abstrakcyjne i niezależne cz. II
Komponent abstrakcyjny TField Komponent niezależny TDataSource Tworzenie struktury tabel powiązanych Komponenty edycyjne


Pobierz ppt "PSZ wykład 4 > Integracja aplikacji z bazami danych cz. II"

Podobne prezentacje


Reklamy Google