Używałem sobie dotychczas Firebird 1.5.4 i nie miałem z nim problemów.
Nadeszła jednak wiekopomna chwila, że musiałem przeinstalować system. No
i podkusiło mnie, żeby być nowoczesnym i zainstalowałem sobie Firebird
2.0.1. Początkowo wszystko wydawało się działać dobrze. Dzisiaj jednak
ze zdumieniem zauważyłem, że na palecie komponentów Delphi (D7 Ent.) nie
ma palety zawierającej TIBSecurityService, TIBBackupService itp.
Próbując dojść do przyczyn tego niemiłego stanu rzeczy znalazłem, że w
komponenty IBX rejestrowane są w module IBDBReg.pas. Są tam między
innymi następujące instrukcje:
IB60Client := (GetGDSLibrary.GetIBClientVersion >= 6);
if (GetGDSLibrary.TryIBLoad) and IB60Client then
RegisterComponents(IBPalette2, [TIBConfigService, ...
No i okazało się, że metoda GetIBClientVersion dla Firebird 2.0 zwraca
wartość "2". To dlatego następna instrukcja uznała, że ma do czynienia z
wersją starszą niż IB6 -- dlatego nie rejestruje tych serwisów.
Najwyraźniej serwer FB 1.5 zwracał "6" lub większą liczbę.
Co teraz?
Mogę wrócić do FB 1.5, ale... ja chciałbym być nowoczesny. ;-) Przecież
wiecznie nie mogę zostać przy wersji 1.5 bo "kto nie idzie naprzód, ten
się cofa", prawda?
Mogę zamienić w powyższych instrukcjach cyfrę "6" na "2" i spróbować
skompilować odpowiednie pakiety Delphi. Ale... Oryginalne komponenty IBX
miały trochę błędów. Trzeba je zaktualizować ze strony
http://cc.borland.com. Niestety, mam powody wierzyć, że procedury
aktualizujące instalują nowsze wersje plików DCU i BPL, ale plików
źródłowych nie aktualizują, a przynajmniej nie wszystkie. Wierzę w to,
bo kiedyś nie mogąc znaleźć błędu w swoim kodzie chciałem pośledzić co
się dzieje w kodzie komponentów IBX. W tym celu dołączyłem kilka do
swojego projektu i okazało się, że w programie namnożyło się wiele
błędów, których nie było, gdy korzystałem tylko z plików DCU/BPL.
Mogę wywalić komponenty IBX i zacząć używać FIBPlus, IBObjects lub UIB.
Ale ja używałem IBX przez lata! Mam teraz przerabiać wszystkie
programy?! Masakra!!!
Poradźcie ludkowie mili -- co z tym zrobić?
--
Pozdrawiam,
Grzegorz Skoczylas
http://gskoczylas.rekord.pl
----------------------------------------------
No to załaduj FB2.1.
miab
No właśnie... Czytałem już w którymś wątku o FB 2.1. Sądziłem jednak, że
to jest literówka i autor wiadomości miał na myśli wersję 2.0.1.
Sprawdziłem właśnie na:
1. www.firebirdsql.org
2. www.ibphoenix.com
3. http://sourceforge.net/projects/firebird
We wszystkich tych portalach najnowsza wersja to "Firebird 2.0.1 Release
Candidate 1 kits". Nowszych tam nigdzie nie mogę znaleźć (chybam nie
oślepł?).
Zakładając wiec, że nie jestem ekstremistą i nie chcę kompilować własnej
wersji serwera na podstawie niekoniecznie stabilnych wersji źródłowej,
pobranej z CSV lub SVN -- jak mogę zdobyć skompilowaną wersję serwera
Firebird 2.1?
Szukaj w snapshot_builds www.firebirdsql.org
miab
Napisz sobie własny MyIBDBReg.pas, umieść go w pakiecie design-time
i zainstaluj.
--
pozdrowienia
Krzysztof Szyszka, X-Files Software
Developer of X-Files Components
Borland Technology Partner
_________________________________________
Website: http://www.x-files.pl/ E-mail: ne...@x-files.pl
Dzięki. Właśnie też wpadłem na ten pomysł -- już zarejestrowałem sobie
te komponenty. :-)
--
Grzegorz Skoczylas
http://www.rekord.com.pl