Baza wiedzy

×Druczek

Druczek PRO

Fakturzysta

Fakturzysta PRO

Podatki

Pakiet JZK

Gabinet

Hotel

Kancelaria

Lokator

Majster

Rolnik

Serwis

Szkoła

Warsztat

przyjazdyGTFS

Kontakt

Kontakt BAZA WIEDZY BLOG POMOC Strona główna    

Struktura bazy hybrydowej


Jak wygląda struktura bazy hybrydowej? Jak wykorzystać dane z Druczka do innych celów?

Bazy hybrydowe łączą wygodę, elastyczność i szybkość pracy Druczka z bezpieczeństwem, stabilnością i możliwościami baz SQL. Zobacz więcej jak działają bazy hybrydowe.

Tekst poniżej wymaga pewnej wiedzy informatycznej i jest przeznaczony dla zaawansowanych użytkowników.

Elastyczność Druczka wynika z faktu, że jest aplikacją polimorficzną, od początku zbudowaną w systemie obiektowym. Podstawowy obiekt Druczka umie zapisać się na dysku, odczytać, wydrukować, wyedytować, wyeksportować do PDF, XML, wysłać mailem itp. Poszczególne moduły Druczka dodają do tego tylko funkcje specyficzne dla konkretnego obiektu, na przykład faktura umie wydrukować się na formularzu faktury, innym niż przelew. Obiekty spakowane są w listy o swobodnym dostępie, przetwarzane w pamięci RAM, dzięki czemu ich obróbka, w tym sortowanie, wyświetlanie i analiza są niezwykle szybkie.

W przypadku baz hybrydowych zachowujemy ten polimorfizm, z jednym zastrzeżeniem. Obiekty zamiast w formie list, zapisywanych na dysku, lądują w ramach jednej, polimorficznej tabeli SQL, w której rekordami są poszczególne obiekty. Dane są indeksowane i przetwarzane wspólnie. Wyświetlenie listy dokumentów związanych z konkretnym kontrahentem jest niezwykle proste i wymaga tylko pojedynczego zapytania, podczas gdy w innych systemach trzeba byłoby wykonywać serię zagnieżdżonych zapytań typu JOIN.

Jeśli nie podłączyłeś innej bazy danych, dane zapisane są w folderze tożsamości w pliku jzk.db.

Przykładowa tabela DANE ma rekordy o następującej strukturze:
_numer (TEXT 64) numer związany z obiektem (np. numer faktury)
_data (DATETIME) data związana z obiektem (np. data wystawienia na fakturze)
_termin (DATETIME) termin związany z obiektem( np. termin płatności faktury)
_kwota (MONEY) kwota związana z obiektem (np. wartość faktury)
_ok (BOOL) oznaczenie, czy dokument został zamknięty
_tresc (MEMO) treść dokumentu w postaci nazwa=wartość
_klient (MEMO) dane kontrahenta, występującego w danym obiekcie (np. nabywcy na fakturze) w postaci nazwa=wartość
_blob (BLOB) obiekt w postaci binarnej
_xml (MEMO) obiekt w postaci tekstowej
_guid (TEXT 48) GUID obiektu, unikalny dla każdego obiektu
_klient_guid (TEXT 48) GUID kotrahenta, występującego w danym obiekcie (np. nabywca na fakturze)
_stamp (DATETIME)
_wersja (INT) wersja obiektu, każda edycja zwiększa licznik o 1
_id_listy (TEXT 64) identyfikator listy, z której obiekt pochodzi
_classID (INT) numeryczny ID klasy Druczka
_class (TEXT 64) nazwa klasy Druczka
_blob_size (INT) pole kontrolne, rozmiar danych binarnych (w bajtach)
_xml_size (INT) pole kontrolne, rozmiar danych xml (w znakach)
Wytłuszczono pola widoczne dla użytkownika.

Wewnętrzna struktura bazy SQL jest zmienna i zależy od wersji aplikacji. Opis dotyczy typowej, przykładowej bazy danych.

Które pola można wykorzystać do odczytywania danych w innej aplikacji? Pola _numer, _data, _termin, _kwota, _ok mają treść bezpośrednio nadającą się do użycia. Powiedzmy aby wyświetlić listę faktur dla Kowalskiego, wykonaj zapytanie SQL o treści:

SELECT [_data], [_numer], [_kwota] FROM [dane] WHERE [_classID]="TFaktura" AND [_klient] LIKE "*kowalski*";

Jeśli firma Kowalskiego ma NIP 555-555-55-55, możesz zawęzić wyszukiwanie:

SELECT [_data], [_numer], [_kwota] FROM [dane] WHERE [_classID]="TFaktura" AND [_klient] LIKE "nip=555-555-55-55";

Pole <_xml> daje dostęp do wszystkich danych, zatem żeby odszukać faktury na żarówki, wykonaj zapytanie o treści

SELECT [_data], [_numer], [_kwota] FROM [dane] WHERE [_classID]="TFaktura" AND [_xml] LIKE "*żarówka*";

albo wykorzystaj pole <_tresc>, na przykład:

SELECT [_data], [_numer], [_kwota] FROM [dane] WHERE [_classID]="TFaktura" AND [_tresc] LIKE "TOWAR-*-NAZWA=*żarówka*";

Składnia zapytania zależy od konkretnej implementacji bazy SQL. Zamiast LIKE może być na przykład znak %.

Skąd wziąć wykaz dostępych pól? Po prostu obejrzyj przykładowe obiekty w bazie danych. Staraliśmy się zawsze, aby struktura była samoopisująca.

Nie próbuj zmieniać tych danych. Dane są obrabiane automatycznie przez Druczka, a priorytet ma zapis binarny. Pozostałe pola powstają wynikowo. Zmiana np. kwoty w polu _kwota nie zmieni kwoty na fakturze.

Zobacz także jak odczytywać dane XML.

2020-06-07

sieci

· Pozostałe tematy
· Zadaj swoje pytanie

Programy JZK · Pliki do pobrania · Dane firmy · Zaloguj się · Kontakt
Regulamin · Polityka prywatności · Licencja · Wymagania · Referencje

System sprzedaży i obsługa klienta - partial copyright © Studio JZK sp. z o.o. 2012-2020
Partial copyright © JZK24 sp. z o.o. © 2019-2020 · JZK® © Studio JZK programy komputerowe Jarosław Knypl, © 1992-2020 · Druczek® © Studio JZK programy komputerowe Jarosław Knypl, © 1998-2020 · Fakturzysta® © Studio JZK programy komputerowe Jarosław Knypl, © 2000-2020 · Lecturo © JZK24 sp. z o.o. © 2020 · Facturo © JZK24 sp. z o.o. © 2020 · Vecturo © JZK24 sp. z o.o. © 2020 · PRZYJAZDY.PL Partial © Open Street Map contributors CC-BY-SA. Partial © Mapbox.
JZK®, Druczek®, Fakturzysta® są zastrzeżonymi znakami towarowymi. Wszelkie prawa zastrzeżone.

Jeśli nie podano inaczej, wszystkie dane osób, firm, przedmiotów i zwierząt są fikcyjne, służą wyłącznie ilustracji. Wyjątkiem są referencje, gdzie umieszczono dane istniejących firm i osób prowadzących działalność gospodarczą, które wyraziły na to indywidualną zgodę.

2020-08-11 00:13 #32.3 for 34.200.218.187 @ec2-34-200-218-187.compute-1.amazonaws.com