1 / 17

wykład 4

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

lars
Download Presentation

wykład 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. wykład 4 PSZ 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

More Related