(C) ZPKSoft ZPKSoft FBCommand

| Opis| Historia | |

Opis

Konsola ZPKSoft FBCommand służy do obsługi administracyjnej baz FireBird.

Program nie wymaga żadnych zabiegów instalacyjnych. W folderze w którym będzie umieszczony tworzy plik tekstowy- listę baz do których nastąpiło prawidłowe logowanie.

Wszystkie operacje w konsoli wymagają wcześniejszego zalogowania się do serwera.

Aby zalogować się, należy wpisać alias do bazy (np. server:c:\baza\baza.fbk) i kliknąć przycisk logowania. Po prawidłowym zalogowaniu się przycisk logowania przyjmuje napis Wyloguj i czcionkę pogrubioną. Logowanie zakończone sukcesem skutkuje także dopisaniem aliasu do listy. Przy następnym logowaniu wystarczy zamiast wpisywania- wybrać alias z listy.
Jedynie opcja Database - Restore wymaga logowania dopiero po zdefiniowaniu parametrów przywracania:

Listę zasobów bazy można odczytać po wybraniu z listy typów zasobów:

Definicję zasobu można odczytać po wybraniu zasobu i użyciu przycisku mtd (metadata):

Aby podejrzeć zawartość tabeli, można  ręcznie w edytorze sql wpisać stosowną instrukcję select, lub użyć przycisk sel:

Podobnie można spreparować instrukcję Insert. W tym przypadku można posłużyć się przyciskiem ins a następnie uzupełnić komendę o właściwe wartości:

Wielkość jaką zajmują dane określonej tabelo można odczytać za pomocą specjalnie spreparowanego zapytania sql. Aby je utworzyć należy skorzystać z menu kontekstowego listy tabel:

Tak utworzone zapytanie można uzupełnić o klauzulę where oraz usunąć kolumny które nie są dla nas interesujące.

Zapytanie do bazy można przesłać na dwa sposoby: klikając przycisk lub stosując kombinację klawiszy Ctrl+Enter. Aby zatwierdzić transakcję, można wysłać komendę commit lub użyć przycisku .W polu edycyjnym można zawrzeć listę poleceń SQL. Polecenia te należy rozdzielić znakiem separatora. Domyślnym separatorem komend jest znak "^". Separator można ustawić z menu Database->SQL->Command separator.
Ustawienie opcji Database->SQL->Auto commit after change data wymusza komendę COMMIT po każdym poleceniu za wyjątkiem SELECT i COMMIT.

Aby wycofać transakcję można wysłać komendę rollback lub użyć przycisku .

Poprzednie zapytanie można przywołać przy pomocy przycisku .

Okno edytora sql jest czasami wykorzystywane przez program do umieszczania logu (raportu) z wykonanej operacji.

Aby odczytać zawartość pola typu blob, należy kliknąć to pole w DBGridzie lewym przyciskiem myszy. Aby zapisać wartość pola typu blob w postaci pliku należy skorzystać z opcji Save as menu kontekstowego tego pola.
Jeżeli zawartość pola blob stanowi dane spakowane algorytmem ZLIB, wówczas za pomocą drugiej opcji tego menu, Save as unpacked zlib file... można rozpakować zawartość z równoczesnym zapisem do pliku.

Opcje naprawcze i administracyjne menu Database:
Opcje Backup, Restore, Sweep, Validation i Transaction recovery wykorzystują narzędzia command-line tools gbak i gfix dzięki czemu po zainstalowaniu nowego motoru bazodanowego będziemy korzystali z aktualnych możliwości środowiska.
Po operacjach backup-restore w edytorze sql pojawia się pełny log operacji.

Create

Opcja ta pozwala na wykreowanie nowej bazy danych:

Backup

Użycie tej opcji wywołuje okno dialogowe z listą parametrów kopii zapasowej. Okno to różni się nieco od standardowego okna konsoli InterBase:

- Alias Backup powinien być pełny, np: server:c:\baza\baza.fbk. W przypadku zastosowania innego serwera niż zawartego w aliasie archiwizowanej bazy, backup zostanie wykonany na serwerze wskazanym. W przypadku, gdy alias bazy ma postać np. server:c:\baza\baza.fdb a alias backupu c:\backup\baza.fbk to backup z serwera server zostanie wykonany na lokalnej maszynie (download).

- Program ZPKSoft FBCommand sugeruje unikatową nazwę dla backupu. Nazwa ta zawiera w sobie datę i czas powstania backupu.

- Jeżeli zostanie określona wartość Number of files inna niż 1, wówczas program wykona backup wieloplikowy, przy czym tylko ostatni plik ma wielkość niezdefiniowaną- pozostałe przybiorą rozmiar nie większy niż 2GB.

Restore:

- Użycie tej opcji wywołuje okno dialogowe z listą parametrów odtwarzanej bazy.

- Jeżeli zalogowaliśmy się do bazy przed wywołaniem tej opcji to program inicjuje właściwą wartość Page Size. Wartość tę można oczywiście zmienić.
- Jeżeli backub był wieloplikowy to lista Backup files powinna być kompletna. W przeciwnym razie operacja przywracania nie powiedzie się.
- Aliasy Backup files i Database podlegają takim samym zasadom jak w przypadku backupu.
- Wartość Number of files podlega podobnej zasadzie jak wartość Number of files backupu.

Extract

Skorzystanie z tej opcji powoduje wczytanie struktury bazy do okna edycyjnego.

Sweep, Validation, Transaction recovery

Standardowe operacje czyszczenia, naprawy struktury i odzyskiwania transakcji.

Activate inactive indices

Użycie tej opcji spowoduje wygenerowanie w edytorze odpowiednich zapytań do bazy.
Zapytania dotyczą indeksów niesystemowych. Każde zapytanie ma komentarz z informacją której tabeli dotyczy. Aby uruchomić zapytania, należy usunąć komentarze i ewentualnie zapytania których nie chcemy wykonać.

Validate constrain type: NOT NULL

Jeżeli w bazie pojawią się błędy polegające na tym, że pola z klauzulą NOT NULL będą miały wartość NULL (np. gdy do istniejącej tabeli z danymi dodamy kolumnę z takim ograniczeniem i nie zainicjujemy dla niej wartości) to backup będzie możliwy, jednak nie można będzie z niego skorzystać bo operacja restore nie powiedzie się.
Polecam przed wykonaniem operacji backupu wykonać operacje: Validation i Validate constraint type: NOT NULL.

Repair corruption

Opcja ta uruchamia procedurę naprawczą uszkodzonej bazy.
Po zakończeniu w edytorze sql program umieści listę wykonanych operacji. Naprawiona baza będzie umieszczona w lokalizacji bazy właściwej, ale w innym pliku. Należy sprawdzić połączenie do tej bazy. Jeżeli się powiedzie to prawdopodobnie wszystko jest OK.

Connected users

Lista aktualnie podłączonych do bazy użytkowników.

size of this table

Opcja menu kontekstowego listy tabel. Pozwala na odczytanie ile miejsca w bazie zajmują dane określonej tabeli, czy kolumny.

Historia

2025-04-13 ver 6.1.0.0

Trzy nowe opcje w menu Database:

Folder Firebird tools - tu można wskazać inną lokalizację folderu (w FB 2.5 był to folder <fb>\bin, w FB 3.0 jest to folder <fb>). Jeżeli po instacji FB 3.0 nie usunięto folderu FB2.5 to FBCommand wybierał by niewłaściwe narzędzia (np. gfix.exe)

Lock database for single access - zablokowanie bazy dla jednego dostępu (np. w celu przeprowadzenia prac naprawczych)

Unlock multiple access to database - odblokowanie bazy dla wielodostępu (standardowy stan bazy)

2025-03-04 ver 6.0.0.0

Program już łączy się natywnie z bazą, nie wymaga instalacji biblioteki gds32.dll do komunikacji z bazą. Program jest przetestowany do współpracy z bazą Firebird 2.5 oraz 3.0.

2024-08-04 ver 5.3.0.0

Sporo zmian wewnętrznych, zmiany (w tym nowe opcje) w menu Database, możliwość otwarcia programu w trybie On-top.

2023-09-08 ver 4.1.0.0

Rozszerzenie opcji eksportu uzyskanych danych w wyniku zapytania select o format XLS zbudowany bez konieczności instalowania Microsoft Office.

2022-09-05 ver 4.0.0.1

2022-08-04 ver 3.0.0.0, 2022-08-07 ver 4.0.0.0

Opcje menu  Database : Sweep, Validation i Transaction recovery są wykonywane ze śledzeniem procesów.

2021-01-18 ver 2.2.0.0

Dodany parametr lc_ctype do parametrów połączeniowych z bazą. Jeżeli wystąpi problem z pokazywaniem polskich znaków, nawet jeśli baza została ustawiona jako

ALTER CHARACTER SET WIN1250
SET DEFAULT COLLATION PXW_PLK

to problem leży w ustawieniach systemu. Niemniej można to ominąć ustawiając ten parametr na  WIN1250.

2020-12-14 ver 2.1.1.0

Ulepszenia wewnętrzne

2020-10-18 ver 2.0.0.0

Wsparcie dla migracji danych, menu kontekstowe edytora otrzymało nową opcję: Data pump (fromTabe-toTable). Podanie nazw tabel spowoduje utworzenie polecenia SQL które przez uruchomieniem można oczywiście uszczegółowić poprzez zdefiniowanie klauzuli from. 

2020-10-15 ver 1.11.0.1

Nowa opcja dostępne w menu kontekstowym listy poleceń: Delete item

2020-10-03 ver 1.11.0.0

Możliwość zapisu listy poleceń sql, do wykorzystania np. w kolejnej sesji z programem. Opcje dostępne w menu kontekstowym listy poleceń:

Opcja Clear czyści listę poleceń i usuwa listę z pamięci dyskowej.

2019-11-08 ver 1.9.0.0

Program już nie wspiera baz Interbase, stąd zdecydowałem się na zmianę nazwy z IBCommand na FBCommand.

Owe niewspieranie polega na tym, że rozwój programu idzie ścieżką Firebirda. Nie śledzę rozwoju Interbase. Na pewno w większości przypadków FBCommand spełni swoje zadanie w przypadku baz Interbase, przynajmniej w podstawowym dialekcie SQL.

2019-09-01 ver 1.8.0.0

Możliwość sprawdzenia wielkości jaką zajmują dane wybranej tabeli, opcja dostępna z menu kontekstowego listy tabel

2019-01-06 ver 1.7.3.0

Umożliwione zostało uruchamianie poleceń sql execute block

2018-12-17 ver 1.7.1.0

Ulepszona opcja w menu Database: Activate inactive indices- szuka także indeksów primary key, pomija systemowe

2018-11-17 ver 1.7.0.0

Nowa opcja w menu Database: Activate inactive indices

2018-06-27 ver 1.6.0.0

- Dodano do listy obiektów triggery. Standardowo triggery dla danej tabeli zobaczymy po wybraniu tej tabeli i kliknięciu przycisku "mtd". Nowa opcja pozwala na przejrzenie listy zdefiniowanych triggerów.

2018-03-07 ver 1.5.0.0

- Udoskonalona funkcja walidująca Validate constrain type: NOT NULL

2018-01-24 ver 1.4.6.0

- Dodany został znacznik <gid> do sql.
Przykładowo: insert into tbl (gid, gida) values ('<gid>', '<gid>')
Będzie zamieniony na: insert into tbl (gid, gida) values ('1OXdDD1SRY6r', '1OXdDH1jR09k')

2014-12-10 ver 1.4.4.0

- Ustawienia menu Database fSQL są teraz pamiętane po zamknięciu programu. Przy otwieraniu programu ostatnie ustawienia tego menu są przywracane.

2013-11-16: ver 1.4.2.0

- Wprowadzona została możliwość zapisu rezultatu zapytania do pliku pdf (menu kontekstowe tabeli- opcja Zapisz jako)

2013-02-02: ver 1.4.1.0

- W związku z wprowadzeniem przez ZPKSoft łańcuchowych identyfikatorów bazodanowych zastępujących tradycyjne GUID wprowadzone zostały opcje w menu kontekstowym tabeli: Get DateTime from GID12, oraz w menu kontekstowym edytora: Generate GID12.
Identyfikatory GID12 różnią się od identyfikatorów GUID następującymi cechami:
-- długość identyfikatora GUID wynosi 32 znaki, identyfikatora GID12 natomiast 12 znaków.
-- z identyfikatora GID12 można odczytać datę i czas jego utworzenia.
-- sortowanie po identyfikatorze GID12 jest tożsame z sortowaniem po dacie utworzenia.

2011-07-10: ver 1.4.0.1

- Usprawniona została identyfikacja folderu BIN Firebirda

2011-03-10: ver 1.4.0.0

- Dodanie do menu Database opcji Create umożliwiającej wykreowanie nowej bazy
- Dodanie do menu Database opcji Extract umożliwiającej wyekstrahowanie struktury bazy.

2011-03-01: ver 1.3.14.0

- Nowy przycisk narzędziowy do odczytu planu sql.

2009-04-30: ver 1.3.10.0

- Z menu kontekstowego edytora usunąłem opcję copy output to clipboard. Możliwość ta została dodana do opcji menu Save output as ...
Opcja Print output została udoskonalona o zawijane zawartości komórek wydruku

2008-11-26: ver 1.3.9.0

- Do menu Database dodałem opcję Fill Null for table with key.
- Do menu kontekstowego edytora dodałem opcję fill table from this data
Jak to działa? Dane skopiowane za pomocą opcji Get output to clipboard (without BLOBs) mogą być następnie wklejone do edytora i po przełączeniu bazy wczytane do podobnej tabeli w tej bazie.

2008-11-25: ver 1.3.7.1

- Do menu Database dodałem opcję Fill Null for table.
Wybranie tabeli i następnie tej opcji spowoduje przeskanowanie tabeli i zamiany wszystkich wartości NULL odpowiednio: pola łańcuchowe i bloby otrzymają wartość ' ', natomiast pola liczbowe wartość 0.


2008-10-25: ver 1.3.7.0

- Do menu kontekstowego tabeli z rezultatem select dodałem opcję:

Pierwszy wiersz tekstu w schowku to nazwy pól oddzielone znakami tabulacji, następne to wartości tych pól.
Kolejne wiersze zawierają dane, każdy rekord w oddzielnym wierszu, wartości pól rekordu oddzielone znakami tabulacji. Za wartości pól typu BLOB i MEMO podstawiany jest ciąg "BLOB" lub "MEMO".

2008-06-27: ver 1.3.5.0

- Do menu kontekstowego edytora dodałem opcje:

Pierwsza z wymienionych opcji tworzy zapytanie sql INSERT na podstawie wskazanego rekordu w tabeli z danymi. Umożliwia to łatwe przeniesienie danych między bazami.
Druga podobnie, tworzy zapytanie sql UPDATE.
Trzecia opcja podaje łańcuch znaków identyfikujących typy pól podanych w tworzonych zapytaniach sql (np. 'S' oznacza pole łańcuchowe - char lub varchar, 'B' - pole typu blob itd.)

2009-06-05: ver 1.3.4.0

- Backup w procedurze naprawczej uzupełniłem o przełącznik -L (-Limbo). Backup przy zawieszonych transakcjach nie chciał się wykonywać.

2008-05-29: ver 1.3.3.0

- Zmieniło się oznaczanie generatorów i funkcji w tabelach systemowych- dostosowałem do tego sposób wybierania listy tychże

2007-08-19: ver 1.3.0.0

- Nowa opcja w menu kontekstowym tabeli wyników zapytań, umożliwiająca porównanie zawartości pól rekordu poprzez odczytanie ich sumy kontrolnej (CRC):

Get CRC for field

Wyświetlona zostanie wartość sumy kontrolnej. Ta sama wartość zostanie umieszczona w schowku systemowym.

ver 1.3.0.1
Zrezygnowałem z zastosowania IBSecurityService na korzyść narzędzia z grupy comand-line tools: gsec.exe do zmiany hasła użytkownika (menu Database- Change user data).

2007-08-11: ver 1.2.6.0

- Poprawiona logika przycisków Next query i Backquery.
- Identyfikacja serwera Classic server FireBird.

2007-08-03..04: ver 1.2.5.1 .. 2

- Nieco rozszerzeń wewnętrznych :).

2007-07-19: ver 1.2.4.0

- Dla operacji korzystających z narzędzi commandLine tools w przypadku nieznalezienia przez program folderu FireBird jest umożliwione wskazanie ręcznie tego folderu.
- Możliwość wykonania operacji insert/update z polem typu blob. Jego zawartość powinna znajdować się w pliku i wówczas prawidłowe polecenie będzie brzmiało:


insert into tabela (poleBlob) values (file:"c:\plik")

lub:

insert into tabela (poleBlob) values (zfile:"c:\plik")

- w tym drugim przypadku zawartość pliku zostanie zapisana do bazy w postaci spakowanej.
Należy przy tym pamiętać, że przed wyrażeniem file lub zfile musi być jeden ze znaków: "(" lub "  " (spacja).

2007-06-26: ver 1.2.3.0

- Możliwość wybierania kolumny po zastosowaniu desygnatora pola (kropki) w pytaniu SQL.

2007-04-15: ver 1.2.0.0

- Uruchamianie usług (sweep itp) dla serweraClassic Server (dotychczas nie było to możliwe).
- Definiowanie aliasów z możliwością określenia nazwy aliasu.
- Menu kontekstowe do tabeli wyników zapytań typu select:

-- Save as ... - zapisuje wartość pola typu blob do pliku,
-- Save as unpacked zlib file ... - jakw/w, z rozpakowaniem
-- Save output as ... - pozwala zapisać wynik w postaci raportu w różnych formatach (sory że wyjątkowo po polsku, ale wykorzystałem jeden ze swoich gotowców :-):

2006-11-16: ver 1.1.0.0

- Opracowałem możliwość wstawiania listy komend SQL oddzielonych separatorem jedno znakowym (zamiast konstrukcji SET TERM). Komendy zmieniające dane mogą być automatycznie zatwierdzane (COMMIT)
- Do menu kontekstowego pola BLOB dodałem możliwość rozpakowania zawartości do pliku .ZLIB (pod warunkiem oczywiście, że dane tworzą strukturę spakowaną tym algorytmem).
- Pokazuję czasy trwania operacji.

2006-09-01: ver 1.0.2.1.

- Dodałem przycisk Rollback:
- Dodałem menu kontekstowe do DBGrid z opcją zapisu pola typu blob jako plik.
- Kilka drobnych zmian wewnętrznych

2006-08-05: ver 1.0.1

Dodałem przycisk , oraz po operacjach backup-restore w edytorze sql pojawia się pełny log operacji.
Z właściwości okna Backup properties usunąłem opcję Show log. Log jest zawsze pokazywany.

2006-08-04: ver 1.0

W ubiegłym miesiącu przeszedłem z InterBase 6.0na FireBird-a. Zasmucił mnie brak konsoli w pakiecie instalacyjnym. Przejrzałem kilka darmowych programów tego typu, napotkałem trochę irytujących błędów i postanowiłem sam wyrzeźbić coś co będzie mi odpowiadało. Przy okazji pomyślałem sobie, że wielokrotnie chętnie korzystam z obcych darmowych narzędzi i mógłbym coś do tej puli dołożyć. Dokładam więc ZPKSoft IBCommand.
Życzę zadowolenia z korzystania z programu i chętnie zapoznam się z Waszymi uwagami n/t rozszerzenia możliwości programu, i napotkanych błędów także...


(C) ZPKSoft' 2001-


Twój komentarz


  Uwaga: administrator portalu ma prawo do usunięcia komentarza bez informowania o tym.
Komentarze
  Paweł  [2025-03-30]
Od wersji 6 program już nie wymaga instalacji biblioteki gds32.dll
  Paweł  [2023-10-06]
Raczej nie. Program jest dedykowany pod Firebird
Port ustawiamy tak: https://firebirdsql.org/rlsnotesh/config-port.html
  Piotr  [2023-10-06]
Czy jest szansa aby program działał z firebase 4.
Czy można ustawić port do komunikacj z bazą
  Paweł  [2022-03-23]
Powinien działać. Musi być zainstalowana biblioteka GDS32.DLL
  Piotr  [2022-03-22]
Przydałoby się do firebird v 3 :)