wykład 4

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

description

wykład 4. PSZ Programowanie w Środowiskach Zintegrowanych > Integracja aplikacji z bazami danych cz. II. Na poprzednim wykładzie. Koncepcja mechanizmów integracji Architektura środowiska Zarys hierarchii komponentów Typowy schemat komunikacji aplikacji z bazą danych - PowerPoint PPT Presentation

Transcript of wykład 4

Page 1: wykład 4

Programowanie w środowiskach zintegrowanych

wykład 4wykład 4

PSZPSZProgramowanie w Środowiskach ZintegrowanychProgramowanie w Środowiskach Zintegrowanych

> Integracja aplikacji z bazami danych cz. II> Integracja aplikacji z bazami danych cz. II

Page 2: wykład 4

Programowanie w środowiskach zintegrowanych

Na poprzednim wykładzieNa 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

Page 3: wykład 4

Programowanie w środowiskach zintegrowanych

Komponenty abstrakcyjne i niezależne cz. IIKomponenty abstrakcyjne i niezależne cz. II

• Komponent abstrakcyjny TField

• Komponent niezależny TDataSource

• Tworzenie struktury tabel powiązanych

Page 4: wykład 4

Programowanie w środowiskach zintegrowanych

TFieldTField

• Odpowiedzialność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

TComponent

TDataSet<<DBAccess>>

TField<<DBAccess>>

0..n1

+DataSetField

0..n1

Page 5: wykład 4

Programowanie w środowiskach zintegrowanych

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

Page 6: wykład 4

Programowanie w środowiskach zintegrowanych

Pobieranie, zapisywanie i konwersja danychPobieranie, 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

Page 7: wykład 4

Programowanie w środowiskach zintegrowanych

Formatowanie i walidacjaFormatowanie 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

Page 8: wykład 4

Programowanie w środowiskach zintegrowanych

Tworzenie pól w klasie TDataSetTworzenie 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

Page 9: wykład 4

Programowanie w środowiskach zintegrowanych

Podstawowe rodzaje pólPodstawowe rodzaje pól

• Pola danych (data fields)

• Pola obliczane (calculated fields)

• Pola słownikowe (lookup fields)

Page 10: wykład 4

Programowanie w środowiskach zintegrowanych

Pola wyliczanePola wyliczane

• Pole wyliczanePole 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

Page 11: wykład 4

Programowanie w środowiskach zintegrowanych

Pola słownikowePola słownikowe

• Pola słownikowePola 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.

Page 12: wykład 4

Programowanie w środowiskach zintegrowanych

TDataSourceTDataSource

• Odpowiedzialność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)

Page 13: wykład 4

Programowanie w środowiskach zintegrowanych

TDataSource - właściwościTDataSource - 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

Page 14: wykład 4

Programowanie w środowiskach zintegrowanych

Tworzenie struktur hierarchicznychTworzenie 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.

Page 15: wykład 4

Programowanie w środowiskach zintegrowanych

Elementy interfejsu zintegrowane ze zbiorami danychElementy interfejsu zintegrowane ze zbiorami danych

• Dostępne komponenty

• Przykład

Page 16: wykład 4

Programowanie w środowiskach zintegrowanych

Komponenty edycyjne zintegrowane ze zbiorami Komponenty edycyjne zintegrowane ze zbiorami danychdanych

• PrzeznaczeniePrzeznaczenie – 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

Page 17: wykład 4

Programowanie w środowiskach zintegrowanych

PodsumowaniePodsumowanie

• Komponenty abstrakcyjne i niezależne cz. II

– Komponent abstrakcyjny TField

– Komponent niezależny TDataSource

– Tworzenie struktury tabel powiązanych

• Komponenty edycyjne