Problem połączeniem z bazą - FIREBIRD

0

Cześć, po przeinstalowaniu systemu Win 10 i instalce Firebird w wersji 2.5 lub 3.0 mam problem z połączeniem z bazą danych.
Poniżej komunikat zwracany przez kompilator po uruchomieniu programu:

Project ProjectSprzedaz.exe raised exception class EIBInterBaseError with message 'Unable to complete network request to host "127.0.0.1".
Failed to establish a connection.
Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie go odmawia.
'. Process stopped. Use Step or Run to continue.

Próbowałem łączyć się za pomocą IBexpert i pokazuje ten sam problem.
Mam też, starszą wersję serwera InterBase 6.5 na którym też nie można się połączyć.

A.M.

2

skoro ibexpert także się nie łączy to nie masz problemu z połączeniem a raczej problemem jest serwer bazy danych.
Na początek sprawdź czy w menadżerze zadań masz proces odpowiedzialny za serwer firebird. W zależności czy jest to instalacja super server cz classic należy szukać:

  • dla super server dwa procesy: fbguard i fbserver,
  • dla classic: fb_inet_server

od tego bym zaczął

0

@robertz68: nie ma tych procesów, serwer jest uruchomiony jako usługa i działa

0

skąd wiesz że działa?

0

Dlaczego łączysz się po locallhost, zamiast normalnie bez podawania hosta. Masz jakiś szczególny powód?

W przypadku błędów typu 'Unable to complete network request to host "127.0.0.1" pierwszą rzeczą jest sprawdzenie czy bo bazy lokalnej idzie połączenie, a następnie dodanie serwera Firebird do wyjątków zapory sieciowej/antywirusa tak samo ewentualnie programu który się łączy do serwera.

0

@robertz68: usługa jest uruchomiana

0

no to pora sprawdzić czy działa gsec.
uruchom cmd, następnie:

c:\Program Files\Firebird\Firebird_2_5"\bin\gsec -user sysdba -password masterkey

zadbaj o poprawną ścieżkę do twojej instalacji

pojawi się

GSEC>

wpisz:

display.

Jeśli serwer działa to zobaczysz użytkowników bazy

0

@robertz68: to działa. IBExpert wywala taki komunikat:
IB-err.jpg

Tak choćby odnosił się do serwera IB zainstalowanego w katalogu Borlanda - tylko dlaczego? Jak to zmienić ?

0

oj nie mam pojęcia, ale zobacz na ścieżkę, jest jakaś dziwna, po InterBase masz slash zamiast backslash

edit:
wiesz co, możesz użyć czegoś innego żeby sprawdzić połączenie z bazą danych. Nie podoba mi się twoja wersja IBExpert-a. Tak jakby pamiętała jakieś dziwne ścieżki.
Może DBeaver np. https://dbeaver.io/download/

0
robertz68 napisał(a):

Nie podoba mi się twoja wersja IBExpert-a. Tak jakby pamiętała jakieś dziwne ścieżki.

Niekoniecznie, ponieważ pliku firebird.msg szuka dll'ka klienta GDS32.dll dla starszych aplikacji, fbclient.dll dla nowszych. W IBExpercie da się ustawić jakiej libki ma używać do łączenia się.
Ogólnie z opisu i postów wynika, że kolega ma bałagan. Interbase/Firebird zainstalowany na jednym komputerze przy niezbyt doświadczonym userze/adminie to proszenie się o kłopoty. Kolega zignorował moje pytanie dlaczego chce się łączyć protokołem sieciowym po 127.0.0.1. Teraz podejrzewam dlaczego. Oba serwery muszą działać na innych portach gdyż używają domyślnie tego samego 3050. Stąd mogą wynikać błędy typu unavailable database. Otóż IB może łączyć się do bazy FB i stąd ma ten błąd. Ewentualnie klient IB łączy się do serwera FB. I tak pewnie jest. IBExpert domyślnie szuka pliku GDS32.dll (niestety generuje do instalator Inter Base oraz Firebirda, pytanie którego GDS32.dll w systemie ma pytający) który zapewne jest biblioteką od IB (wskazuje na to fakt szukania pliku interbase.msg). Przy łączeniu się poprzez plik GDS32.dll z Firebirda byłby komunikat o braku pliku firebird.msg

Możliwości tego błędu jest jeszcze kilka. Jak nawet chociażby próba podłączenia się do bazy znajdującej się na udziale sieciowym, albo dysku utworzonym przy użyciu polecenia subst.

0

@Mr.YaHooo: Dzięki, rzeczywiście nałożyły się instalacje IB i FB i biblioteki fbclient oraz gds32.
Po wyczyszczeniu wszystkiego, też rejestru i po nowej instalacji FB 3.0 (64x) wywala taki błąd

Project Project-SP.exe raised exception class EIBInterBaseError with message 'unsupported on-disk structure for file D:\PROJECTSDELPHI\PROJ-SP\DATA.GDB; found 10.1, support 12.2
IProvider::attachDatabase failed when loading mapping cache'. Process stopped. Use Step or Run to continue.

Może możesz pomóc ?

2
amprogramming napisał(a):

raised exception class EIBInterBaseError with message 'unsupported on-disk structure for file D:\PROJECTSDELPHI\PROJ-SP\DATA.GDB; found 10.1, support 12.2
IProvider::attachDatabase failed when loading mapping cache'. Process stopped. Use Step or Run to continue.*

Google ci zamknęli?
Zrób kopię (backup przy pomocy gbak w trybie transportable, a nie kopia pliku bazy danych!) tej bazy danych danych i odtwórz ją (restore) na swoim serwerze Firebird.
Albo zainstaluj serwer w dokładnie takiej wersji jaką masz bazę danych.

A poza tym, wybij sobie z głowy kopiowanie pliku bazy danych na żywca - czasem nie zadziała i będzie problem.

0

To ja jeszcze dodam od siebie, że można wykonywać kopię bazy która jest zwykłym kopiowaniem pliku bazy. Jednak trzeba poinformować serwer za pomocą poleceń (nie trzeba tego robić nbackupem):

alter database begin backup

oraz

alter database end backup

Te polecenia są obsługiwane już od bardzo dawna, ale z tego co kojarzę to mało ludzi z tego korzysta. Szerzej jest to opisane w dokumentacji link

Co więcej. Wydaje mi się, że samo kopiowanie bazy nawet jeśli serwer działa i zapisuje dane do pliku nie może spowodować uszkodzenia kopiowanej bazy danych. Jedyne co może się stać, to kopia wykonana w ten sposób będzie uszkodzona. Więc pół biedy.

0

Dzięki panowie za pomoc. Generalnie pomógł porządek z konfliktem pomiędzy instalkami FB i IB oraz zainastalowałem wersję serwera FB stosowną do bazy - czyli 2.5.
Proszę jesszcze o informację na przyszłość jakim narzędziem (konsloa) najlepiej wykonać ewentualną kopię bazy (nbackup) oraz o polecenie jakiegoś darmowego wizualnego narzędzia do zarządzania - alternatywy dla IBExpert-a.
Pozdrawiam,

1

Zobacz narzędzie "SQL Manager Lite for InterBase & Firebird"

1 użytkowników online, w tym zalogowanych: 0, gości: 1