[ Pobierz całość w formacie PDF ]
.InstallCheck - sprawdza czy proces instalacji jest gotowy do przeprowadzenia.W razie problemów zostanie zgłoszony wyjątek EIBInstallError.InstallExecute - wywołanie metody powoduje rozpoczęcie procesu instalacji.ZdarzeniaKomponent nie wprowadza nowych zdarzeń.TIBUninstall, moduł IBInstallTen komponent umożliwia odinstalowanie serwera InterBase.Do tego niezbędny jest plik utworzony podczas instalacji.WłaściwościUnInstallFile - określa ścieżkę dostępu do pliku z informacjami o zainstalowa­nych opcjach InterBase.Jest on niezbędny podczas odinstalowywania serwera.MetodyUnInstallCheck - metoda sprawdza czy odinstalowanie serwera jest możliwe do wykonania.UnlnstallExecute - przeprowadza proces odinstalowywania serwera.ZdarzeniaKomponent nie wprowadza nowych zdarzeń.Rozdział 7.Obiekty występujące w InterBasePrzede wszystkim należy pamiętać o tym, że InterBase nie jest obiektową bazą danych.Określenia “obiektowy", podobnie jak przymiotnik “wirtualny”, są obecnie dosyć modne (zwłaszcza “wirtualny").Pod pojęciem “obiektu" będziemy rozumieć w tym przypadku wszystko to, co możemy umieścić w bazie.GeneratoryGenerator umożliwia utworzenie w InterBase unikalnych liczb, które można umie­ścić w kolumnach tabeli np.celem uzyskania klucza.Wykorzystuje się je najczęściej podczas wypełniania klucza głównego (PRIMARY KEY).Generator umożliwia i, utworzenie liczb z przedziału od -264 do 264-1.Składnia poleceńAby utworzyć generator, należy posłużyć się następującą składnią:CREATE GENERATOR nazwa;gdzie nazwa jest unikalną nazwą generatora w bazie danych.Próba zduplikowania nazwy zakończy się komunikatem podobnym do “Unsuccessful metadata update DEFINE GENERATOR failed attempt to store dupllcate value".W celu utworzenia generatora ID_OSOBY należy skorzystać z polecenia:CREATE GENERATOR ID_OSOBY;Domyślną wartością dla nowo utworzonych generatorów jest wartość zero.Można j ą zmienić za pomocą polecenia:SET GENERATOR nazwa TO liczba_calk;gdzie nazwa jest nazwą istniejącego generatora, a liczba_ca1k liczbą całkowitą z poda­nego wyżej zakresu.Jeśli obiekt o podanej nazwie nie istnieje, zostanie zgłoszony błąd “generator nazwa not defined".Aby przypisać generatorowi ID_OSOBY war­tość 1000, wykonamy polecenie:SET GENERATOR ID_OSOBY TO 1000:Aby pobrać wartość generatora i zmienić jego wartość pewną liczbę należy skorzy­stać z poniższej funkcji:gen_id(nazwa_generatora, krok)Jako wynik funkcja wygeneruje liczbę będącą wartością generatora nazwa_generatora powiększoną o krok.Drugi parametr może być dowolną liczbą całkowitą.Warto zapamiętać, że dla kroku różnego od zera każde wywołanie funkcji zwróci różną wartość.Umożliwia to generowanie naprawdę unikalnych wartości nawet wtedy, gdy w danej chwili wielu użytkowników pracuje na bazie danych.Z tej funkcji można skorzystać w dowolnym zapytaniu (Insert, Select czy Delete), w procedu­rach składowanych lub w wyzwalaczach (triggers).Chcąc usunąć generator nie znajdziemy żadnego polecenia w rodzaju polecenia Drop.Zamiast tego należy posłużyć się tabelą systemową RDB$GENERATORS.Stąd w celu usunięcia generatora należy wykonać poniższe zapytanie:DELETE EROM RDB$GENERATORS WHERE RDB$GENERATORS_NAME=''Wartości generatora w DelphiJeśli chodzi o Delphi, przez pewien czas istniał problem związany z uzyskiwaniem wartości pól typu autoincrement.Obecnie możemy w komponencie TField ustawić właściwość AutoGenerateValue na arAutoInc lub arDefault (domyślnie arNone).Umożliwia to uzyskanie wartości domyślnych z bazy danych.Jeśli jednak chodzi o komponenty IBX, to w wersji 4.42 w komponentach potomnych pojawiła się po TIBCustomDataSet właściwość GeneratorField.Umożliwia ona przypisanie wybra­nemu polu wartości z dowolnie wybranego generatora (z zadanym krokiem).Można określić, kiedy liczba ma zastać skopiowana.Ta akcja może zostać wykonana w mo­mencie:wystąpienie zdarzenia OnNewRecord,tuż przed wystąpieniem zdarzenia OnBeforePost,na serwerze - funkcjonalnie można to porównać do przypisania wartości} w wyzwalaczu (trigger).W przypadku edycji danych w relacji master-detail, konieczne jest przypisanie wartości klucza w tabeli podrzędnej i najlepiej jest skorzystać z pierwszej opcji.Jeśli w trakcie dodawania nowego pola użytkownikowi (programiście) w ogóle nie zależy na nowej wartości - dobrym rozwiązaniem jest rozwiązanie trzecie.Wersja ze zdarzeniem OnBeforePost może być wygodna wtedy, gdy zbiór danych po zapisie ma być w całości odświeżony, a w interfejsie użytkownika chcemy zaimplemento-wać zaznaczenie ostatnio dodanego sektora.Zanim pojawiła się ta wersja IBX, trzeba było sobie radzić inaczej:wykonać z 2Delphi zapytanie (np.w tymczasowym IBQuery) zwracające wartość generatora - można je wywołać w dowolnym, odpowiadającym nam, momencie:Select gen_id(.) From RDBSDatabasei następnie:TLargeIntField(TempIBQuery.Fields.Fields[0]) Valuewykorzystać procedurę na serwerze podobną np [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • agnieszka90.opx.pl