(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
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ę:
- Get output to clipboard (without BLOBs)
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:
- ins with data from active record
- upd with data from active record
- type list
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 fieldWyś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
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-