1 / 28

wykład 3

wykład 3. PSZ Programowanie w Środowiskach Zintegrowanych > Integracja aplikacji z bazami danych. Na poprzednim wykładzie. Przegląd komponentów biblioteki VCL Elementy interfejsu Elementy systemowe Elementy dostępu do danych Internet Projektowanie interfejsu użytkownika

Download Presentation

wykład 3

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 3 PSZ Programowanie w Środowiskach Zintegrowanych > Integracja aplikacji z bazami danych

  2. Na poprzednim wykładzie • Przegląd komponentów biblioteki VCL • Elementy interfejsu • Elementy systemowe • Elementy dostępu do danych • Internet • Projektowanie interfejsu użytkownika • Okna główne i ramki (TForm, TFrame) • Konstrukcja okna głównego (TPanel, TBevel, TSeparator, TGroupbox) • Podstawowe komponenty interfejsu użytkownika • Elementy wykorzystujące kolekcje (TListView, TTreeView)

  3. Konspekt bieżącego wykładu • Koncepcja mechanizmów integracji • Komponenty abstrakcyjne i niezależne cz. I • TCustomConnection • TDataSet

  4. Koncepcja mechanizmów integracji • Architektura środowiska • Zarys hierarchii komponentów • Typowy schemat komunikacji aplikacji z bazą danych

  5. Architektura środowiska • Podstawowe założenie – obsługa różnych standardów dostępu do bazy danych • Obsługiwane standardy bezpośrednie (natywne) • Obsługiwane standardy pośrednie ADO, BDE oraz ODBC • Pierwszy element architektury – interfejsy dostępowe (sterowniki) • Drugi – komponenty dostępowe

  6. Architektura środowiska Bazy lokalne i dostępne poprzez sieć komputerową MySQL ORACLE S1 S2 SN Sterowniki ADO Sterowniki DBX Sterowniki InterBase Sterowniki ODBC DB Express Sterowniki BDE Interfejs ODBC ADO ActiveX Interfejs BDE Komponenty DBExpress Komponenty IBase Komponenty BDE Komponenty ADO

  7. Struktura klas komponentów Komponenty abstrakcyjne i niezależne Komponenty edycyjne Komponenty Specjalizowane

  8. Komponenty specjalizowane • Komponenty abstrakcyjne i niezależne posiadają implementację usług nie uzależnionych od właściwości docelowej bazy danych • Usługi i cech zależne od bazy danych zaimplementowano w komponentach specjalizowanych • TDataSet – • TTable, TQuery (BDE), • TSQLTable, TSQLQuery (DBExpress), • TADOTable, TADOQuery (ADO) • TIBTable, TIBQuery (InterBase) • TCustomConnection – • TDataBase (BDE) • TSQLConnection (DBExpress) • TADOConnection (ADO) • TIBDataBase (InterBase)

  9. Typowy schemat komunikacji • Kolejne kroki konfiguracji • Konfiguracja komponentu odpowiedzialnego za połączenie (pochodzącego od TCustomConnection) • Konfiguracja komponentu odpowiedzialnego za reprezentacją zbioru danych (pochodzącego od TDataSet) • Konfiguracja źródła danych (komponent TDataDource) • Konfiguracja komponentu edycyjnego

  10. Typowy schemat komunikacji Komponent odpowiedzialny za połączenie Komponent odpowiedzialny za reprezentację zbioru danych Komponent – źródło danych Komponent – źródło danych Komponenty Edycyjne (BDControls)

  11. Przykładowy projekt • Przykład konfiguracji połączenia z bazą danych

  12. Komponenty abstrakcyjne i niezależne cz. I • Komponent abstrakcyjny TCustomConnection • Komponent abstrakcyjny TDataSet

  13. TCustomConnection • Odpowiedzialność – zapewnienie połączenia z bazą danych, zapewnienie wykorzystania mechanizmów bezpieczeństwa, udostępnienie mechanizmów pracy wielostanowiskowej • Podstawowe usługi • konfiguracja parametrów połączenia z bazą danych • obsługa zabezpieczeń dostępu • otwieranie i zamykanie połączenia

  14. Komponenty specjalizowane dziedziczące po TCustomConnection

  15. TCustomConnection - właściwości i funkcje • bool Connected – właściwość • zmiana wartości na true powoduje podjęcie próby połączenia się z bazą danych • w przypadku niepowodzenia generowany jest odpowiedni wyjątek • zmiana na wartości na false powoduje rozłączenie się z bazą danych • void __fastcall Open(void), void __fastcall Close(void); • Ustawiają wartość Connected odpowiednio na true i false • Powiązane właściwości typu Event • BeforeConnect • BeforeDisconnect

  16. TCustomConnection - właściwości i funkcje • bool LoginPropmpt – właściwość • jeśli wartość ustawiona na true – podczas łączenia pojawi się dialog logowania • jeśli ustawiona na false dialog się nie pojawi • w drugim przypadku należy podać parametry logowania na innym poziomie (np. w źródle ODBC lub skorzystać z zabezpieczenia zintegrowanego)

  17. TDataSet • Odpowiedzialność – reprezentacja zbioru danych, umożliwienie przeglądania i edycji danych, umożliwienie wykorzystania mechanizmów pracy wielostanowiskowej • Podstawowe usługi – • pobieranie danych • rejestracja dokonanych zmian • przesyłanie zmian do bazy danych • operacje na rekordach (wyszukiwanie, wstawianie, usuwanie, modyfikacja) • zarządzanie polami rekordów

  18. Komponenty specjalizowane dziedziczące po TDataSet

  19. TDataSet – wybrane właściwości • Active • __property bool Active = {read=GetActive, write=SetActive, default=0}; • określa czy zbiór jest „włączony” (wartość true), czy wyłączony (wartość false) • State • __property TDataSetState State = {read=FState, nodefault}; • określa stan zbioru danych • możliwe stany: • enum TDataSetState { dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc, dsOpening }

  20. TDataSet – właściwość State • dsInactiveZbiór zamknięty, dane nie są dostępne. • dsBrowse Dane można przeglądać, ale nie można ich modyfikować. Stan domyślny po otwarciu zbioru. • dsEdit Aktywny rekord może być modyfikowany. • dsInsertAktywny rekord, to rekord nowo wstawiony. Nie został on jeszcze przesłany do bazy danych. Rekord ten można modyfikować, a następnie przesłać lub zrezygnować ze zmian. • dsSetKey TTable, TClientDataSet. Dozwolone jest wyszukiwanie rekordów lubtrwa operacja SetRange. Określony podzbiór danych może być przeglądany, żadne dane nie mogą być modyfikowane. • dsCalcFieldsTrwa obsługa zdarzenia OnCalcFieldss. Można modyfikować jedynie pola typu ftCalculted. • dsFilterTrwa obsługa zdarzenia OnFilterRecord. Określony podzbiór danych może być przeglądany, żadne dane nie mogą być modyfikowane. • dsBlockReadZablokowany odczyt bloku. Nie są odświeżane okna edycyjne nie są przetwarzane zdarzenia. • dsOpeningTrwa proces otwierania zbioru danych.

  21. TDataSet – wybrane właściwości • Filtered • __property bool Filtered = {read=FFiltered, write=SetFiltered, default=0}; • określa czy włączono, czy wyłączono filtrowanie zbioru • Filter • __property AnsiString Filter = {read=FFilterText, write=SetFilterText}; • zawiera wyrażenie logiczne, którego wartość jest wyznaczana po odczytaniu rekordu • jeśli wyrażenie ma wartość false, wówczas rekord nie jest widoczny w zbiorze • jeden ze sposobów przeszukiwania zbioru

  22. TDataSet – wybrane właściwości • ActiveRecord • __property int ActiveRecord = {read=FActiveRecord, nodefault}; • określa numer aktywnego rekordu • rekord aktywny – rekord na który wskazuje wskaźnik aktywnego rekordu • RecordCount • __property int RecordCount = {read=GetRecordCount, nodefault};zawiera wyrażenie logiczne, którego wartość jest wyznaczana po odczytaniu rekordu • zawiera całkowitą liczbę rekordów w zbiorze

  23. TDataSet – wybrane funkcje • Open • void __fastcall Open(void); • otwiera zbiór danych • jeśli otwarcie nie jest możliwe generowany jest wyjątek • Close • void __fastcall Close(void); • zamyka zbiór danych

  24. TDataSet – wybrane funkcje • Edit • void __fastcall Edit(void); • przełącza zbiór w stan dsEdit • Insert • void __fastcall Insert(void);zamyka zbiór danych • wstawia do zbioru nowy wiersz • ustawia znacznik na pozycję nowego wiersza • przełącza zbiór w stan dsInsert • Post • virtual void __fastcall Post(void); • powoduje zapisanie zmina do bazy danych

  25. TDataSet – wybrane funkcje • FindFirst, FindNext, FindPrior, FindLast • bool __fastcall FindFirst(void); • bool __fastcall FindNext(void); • bool __fastcall FindPrior(void); • bool __fastcall FindLast(void); • przesuniecie się do określonego rekordu w zbiorze (pierwszego, następnego, poprzednido, ostatniego) • zwracana wartość informuje o tym, czy przesunięcie powiodło się

  26. TDataSet – wybrane funkcje • Locate • virtual bool __fastcall Locate(const AnsiString KeyFields, const System::Variant &KeyValues, TLocateOptions Options); • realizuje bardziej zaawansowane wyszukiwanie • GetBookmark • virtual void * __fastcall GetBookmark(void); • pobiera „zakładkę”, za pomocą której można zapamiętać pozycję bieżącego rekordu • GoToBookmark • void __fastcall GotoBookmark(void * Bookmark); • ustawia znacznik w pozycji zapamiętanej przy pobieraniu „zakładki”

  27. Przykładowy projekt • Przykład korzystania z TDataSet Micro CRM

  28. Podsumowanie • 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

More Related