ZPKSoft IBCommand

 
 
| Opis | Historia | Pobierz program |
Zapraszam do przesyłania uwag n/t

Opis:

Konsola ZPKSoft IBCommand służy do obsługi administracyjnej baz InterBase i 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:

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 IBCommand 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. Okno to różni się nieco od standardowego okna konsoli InterBase:

- 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. Uwaga: operacja Validation zawiera w sobie dwie pozostałe operacje.

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.

 
 
 
  Historia:
   
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-11-20
- Postanowiłem opublikować na licencji freeware komponent służący do wyboru aliasu występujący w programie IBCommand
Jest to specyficzny comboBox, wykorzystujący TValueListEditor w celu możliwości utworzenia dwukolumnowego comboBoxa. Opracowałem go na potrzeby programu IBCommand.

Nowe własności widoczne w oknie Object Inspectora:
  • Result: String;
  • EName: String;
  • EValue: String;
  • Items: TStrings;
Odpowiednie Item[i]:='name_i=value_i'; zgodnie ze sposobem przechowywania wartości przez TValueListEditor.

Nowe metody to:
  • procedure AssignStrings(Source: TStrings);
  • function deleteSelected: boolean;
  • function insertResult: boolean;
  • function updateSelected: boolean;
  • procedure sort;

Można go ładować danymi z pliku za pomocą Items.LoadFromFile('lista.txt');, itp.

Do pobrania:
VLEComboBox.pas
img.res

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żliwiajca 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 Back query.
- 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.
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 serwera Classic 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 ... - jak w/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 jednoznakowym (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.0 na 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' 2006-2008