Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Firebird, GDB i ODBC - jak to połączyć?

461 views
Skip to first unread message

d'plus

unread,
Jul 23, 2008, 5:02:07 AM7/23/08
to
Jestem trochę zielony w tym temacie. Dostałem plik gdb, sterownikiem
gemini odbc utworzyłem połączenie do tego DBF-a. Uruchamiam następnie
aplikację w Oracle Forms 6i i łączę się poprzez usera
sysdba/masterkey@odbc:nazwapolaczeniaDBF. następuje połączenie - mogę
czytać, jednak nie mogę pisać, a i przy odczycie co rusz jest komunikat
"nie udało się wykonać zapytania", ale dane się jednak pojawiają.

Pytanie:
Gdzie tu jest miejsce dla Firebirda? Jakoś tego nie rozumiem.
Wystarczyło mi sterownik i połączenie DBF do tego aby uzyskać dane, ale
po co i jak zintegrować z tym firebirda? Wiem ze w oryginalnej
instalacji wyłączenie firebirda powoduje brak możliwości nawet
odczytania danych z gdb. U mnie jest inaczej - można odczytywac, ale nie
można pisac..

Proszę o wskazówki, bo temat jest mi obcy i nie wiem za bardzo jak tego
szukać w googlach.


--
http://www.asiakepka.com - boston based photographer
http://www.oln.pl/ - olsztyńska galeria internetowa
http://www.limuzyny.ketrzyn.pl - limuzyny do wynajęcia - warmia i mazury

b0bik

unread,
Jul 24, 2008, 1:32:39 AM7/24/08
to
Zaiste ciekawe że możliwy jest odczyt. Pytanie czy masz zainstalowany
serwer Firebird'a ?

d'plus

unread,
Jul 24, 2008, 2:59:15 AM7/24/08
to
b0bik pisze:

> Zaiste ciekawe że możliwy jest odczyt. Pytanie czy masz zainstalowany
> serwer Firebird'a ?

tak, serwer chodzi, ale jakoś nie potrafię go połączyć z tym plikiem GDB

b0bik

unread,
Jul 24, 2008, 4:11:25 AM7/24/08
to
Ściągnij sobie FlameRobin'a i spróbuj. Może ODS pliku jest zbyt
wysokie w porównaniu do zainstalowanego serwer'a. A może baza jest
ustawiona w tryb ReadOnly jakimś gfix'em. Najlepiej obczaj to Falme'm
albo lepiej EMS SQL Manager'em ma więcej możliwości.

d'plus

unread,
Jul 24, 2008, 4:40:47 AM7/24/08
to
b0bik pisze:

Jak mówiłem zieleniec ze mnie, ale informacje które uzyskałem są takie.
Nie bardzo potrafię je zinterpretować..
Zainstalowana baza Firebird jest w wersji Firebird-1.0.2. (dostałem taką
w paczce więc zbytnio nie kombinowałem z przejściem na nowszy serwer -
nie wiem czy nie byłoby problemów po drodze...). Nie kombinowałem z
ustawieniami - wszystko leciało po default.
A Flamerobin (za którego niezwykle dziękuję...) mówi mi to:

Database file
ODS Version
10
Page size
8192
Pages
2135
Size on disk
16.68MB
Page buffers
2048
Read only
false

Settings
Dialect
3
Default character set
WIN1250
Sweep interval
20000
Forced writes

Czy dobrze rozumiem, że mając plik GDB gdziekolwiek i instalując
Firebirda mam już wszystko gotowe? tzn - że firebird w jakiś cudowny
sposób rozpozna połączenia do tego pliku i będzie pośredniczył?

Przemyslaw Osmanski

unread,
Jul 24, 2008, 4:54:25 AM7/24/08
to
d'plus pisze:

> Czy dobrze rozumiem, że mając plik GDB gdziekolwiek i instalując
> Firebirda mam już wszystko gotowe? tzn - że firebird w jakiś cudowny
> sposób rozpozna połączenia do tego pliku i będzie pośredniczył?

Serwer nie widzi plików w sensie takim jak np MSSQL.
W Firebird jest tylko jedna instancja serwera (i bez kombinacji nie moze
byc wiecej) i ona ma sie nijak do plików z danymi. W jakims katalogu z
przeszukiwaniem globalnym masz natomiast dll'ke klienta firebird'a, stad
mozna bylo czytac taki plik.
Natomiast serwer firebirda nie rozpozna polaczenia do pliku, bo jednym z
parametrow podawanych przy nawiazywaniu polaczenia z baza danych, jest
wlasnie sciezka do pliku z danymi (tutaj GDB). Wymagane jest zeby serwer
mial dostep do podanej sciezki i uprawnienia do zmian w podawanym katalogu.
Pozatym jesli system to XP, to warto zmienic rozszerzenie z GDB na FDB
(rozszerzenie nia ma znaczenia dla serwera, ale z GDB potrafia sie cuda
robic, bo to jakies rozszerzenie systemowe XP).

pozdrawiam,
Przemek O.

b0bik

unread,
Jul 24, 2008, 5:07:57 AM7/24/08
to
On 24 Lip, 10:40, d'plus <usundplusu...@tlen.pl> wrote:
> Zainstalowana baza Firebird jest w wersji Firebird-1.0.2. (dostałem taką
> w paczce więc zbytnio nie kombinowałem z przejściem na nowszy serwer -
> nie wiem czy nie byłoby problemów po drodze...). Nie kombinowałem z
> ustawieniami - wszystko leciało po default.
> A Flamerobin (za którego niezwykle dziękuję...) mówi mi to:
> ...

> Czy dobrze rozumiem, że mając plik GDB gdziekolwiek i instalując
> Firebirda mam już wszystko gotowe? tzn - że firebird w jakiś cudowny
> sposób rozpozna połączenia do tego pliku i będzie pośredniczył?
>

1. Co to znaczy zainstalowana baza Firebird ? Bazy się nie instaluje,
instaluje się serwer. Może ktoś Ci przesłał cały katalog Firebird'a ?
2. Może zainstaluj FB od nowa i przeszukaj bym dysk pod kątem
bibliotek gds32.dll i fbclient.dll i sprawdź ich zgodność z
zainstalowanym serwerem.
3. A w flame mogłeś dokonywać modyfikacji w bazie ?
4. Może sterownik coś knoci, a nie próbowałeś:
http://www.praktik.km.ua/downloads/Firebird_ODBC_2.0.0-Win32.exe
5. Co do pośredniczenia w połączeniu. Serwer serwer'em - on musi być
zainstalowany i musi działać. Na komputer z działającym serwerem może
skopiować pliki baz danych i przy łączeniu podajesz scieżkę do
takowych. Jak działa serwer to się połączych (chociaż przy zwykłym
kopiowaniu pliku z linux'a pod wind'e nie wiem czy nie występuje jakiś
problem). Opcjonalnie możesz zdefiniować aliasy na serwerze w pliku
aliases.conf. Zerknij tam szczegolnie jak ktoś Ci przesłał cały
katalog firebird'a.

b0bik

unread,
Jul 24, 2008, 5:10:33 AM7/24/08
to
On 24 Lip, 10:54, Przemyslaw Osmanski <przeme...@cos.gdzies.pl> wrote:
> Pozatym jesli system to XP, to warto zmienic rozszerzenie z GDB na FDB
> (rozszerzenie nia ma znaczenia dla serwera, ale z GDB potrafia sie cuda
> robic, bo to jakies rozszerzenie systemowe XP).

Przy tym rozmiarze bazy nie miało by to zauawżalnego znaczenia. Cały
buzer polega na tym, że przy włączonym przywracaniu systemu (+ na
dysku musi być wystarczająca ilość miejsca) cudowny Windows XP robi
kopię pliku przy dostępie do tego pliku przez inny program. Tak czy
siak dobrą praktyką jest proponowana zmiana nazwy.

d'plus

unread,
Jul 24, 2008, 5:11:21 AM7/24/08
to
Przemyslaw Osmanski pisze:

przejaśnia się, dzięki :)

d'plus

unread,
Jul 24, 2008, 6:08:45 AM7/24/08
to
b0bik pisze:

1. tak, instalowałem serwer. Baza to w moim przypadku pojedynczy plik
GDB. Nie robiłem tego w formie katalogu. Instalacja pierwotna to
firebird + plik w całkowicie innym miejscu i połączenie ODBC poprzez
sterownik gemini. Być może skopiuję cały katalog firebird z komputera
pierwotnego i spróbuję uruchomić to w ten sposob.
2. gds32.dll (z windows/system32) 6.2.2.908; fbclient.dll nie znalazłem.
3. tak, mogłem - operacje modyfikujące strukturę bazy
4. Po zainstalowaniu sterownika podanego przez Ciebie nic się niestety
nie zmieniło :/
5. aliases.conf nie znalazłem w ogóle.

b0bik

unread,
Jul 24, 2008, 7:40:36 AM7/24/08
to
A jaki ten serwer zainstalowałeś ? Jaką wersję ?

d'plus

unread,
Jul 24, 2008, 8:26:23 AM7/24/08
to
b0bik pisze:

> A jaki ten serwer zainstalowałeś ? Jaką wersję ?

Firebird-1.0.2
Taki sam serwer działa poprawnie na instalacji pierwotnej.

b0bik

unread,
Jul 24, 2008, 9:06:47 AM7/24/08
to
Tyle gadania a taka pierdoła. Już mi się nie chce : ). Jeszcze kilka
pomysłów, napisałeś "nie mogę pisać", rozwiń to proszę. Czy jest
komunikat o błędzie (jak tak to jaki), czy jest niby wszystko ok ale
sie nie zapisuje ? Do tego drugiego pytania od razu pytanie
pomocnicze: jak tam z transakcjami stoisz ?

d'plus

unread,
Jul 25, 2008, 3:35:35 AM7/25/08
to
b0bik pisze:

sprawdziłem wszystko po kolei i jednak zapis działa - nie wiem po której
operacji sie naprawiło - być może po zmianie sterownika ODBC/DBF.
Dalej wyskakuje komunikat o niemożności wykonania zapytania (FRM-40505)
ale to juz chyba wada którą będę mógł sobie zdebugować.

Dzięki za poświęcony czas :)
Miłego weekendu.

d'plus

unread,
Jul 25, 2008, 3:42:28 AM7/25/08
to
d'plus pisze:

> b0bik pisze:
>> Tyle gadania a taka pierdoła. Już mi się nie chce : ). Jeszcze kilka
>> pomysłów, napisałeś "nie mogę pisać", rozwiń to proszę. Czy jest
>> komunikat o błędzie (jak tak to jaki), czy jest niby wszystko ok ale
>> sie nie zapisuje ? Do tego drugiego pytania od razu pytanie
>> pomocnicze: jak tam z transakcjami stoisz ?
>
> sprawdziłem wszystko po kolei i jednak zapis działa - nie wiem po której
> operacji sie naprawiło - być może po zmianie sterownika ODBC/DBF.
> Dalej wyskakuje komunikat o niemożności wykonania zapytania (FRM-40505)
> ale to juz chyba wada którą będę mógł sobie zdebugować.
>
> Dzięki za poświęcony czas :)
> Miłego weekendu.
>
nie ma co chwalić dnia przed zachodem słońca...
http://biletomania.pl/2.jpg

Zapewne sterownik nie realizuje którychś z funkcji. Zapewne komunikat
FRM równiez z tego wynika...

b0bik

unread,
Jul 25, 2008, 4:58:15 AM7/25/08
to
Brak UDF'a. UDF to takie funkcję definiowane użytkownika. Nie wiem czy
sam pisałeś zapytanka, czy robisz selecta z jakiegoś widoku, czy w
bazie jest jakieś pole kalkulowane korzystające z funkcji, w każdym
razie korzysta on z UDF'a F_ADDMONTH. Rozwiązania widzę 2, albo gość
Ci podrzuci dll'ki z udf'em (trzeba je skopiować do katalogu udf
firebird'a i zmienić poziom dostępu w firebird.conf) albo przerobisz
zapytanko.

Tak mi jeszcze wczoraj zaświtało, że może sterownik nie wspierać FB1.
Może zainstaluj sobie FB1.5 i wtedy popróbuj (zrób sobie kopię bazy).

d'plus

unread,
Jul 25, 2008, 5:24:42 AM7/25/08
to
b0bik pisze:

heh, to teraz już wiem do czego służy paczka FreeUDFLib.zip :)
dostałem aplikację + bazę. w aplikacji zaszyte są pewne zapytania,
źródeł jak wcześniej sądziłem jednak nie mam.

wielkie dzięki za pomoc, jeszcze raz :)

0 new messages