Proste połączenie SQLite do C++ Buildera.

W tym wpisie chciałbym przybliżyć trochę silnik bazodanowy SQLite oraz sposób prosty połączenia do C++ Builder.

„SQLite – to system zarządzania bazą danych oraz biblioteka C implementująca taki system, obsługująca język SQL (ang. Structured Query Language). Została stworzona przez Richarda Hippa i jest dostępna na licencji public domain. Projekt został rozpoczęty w roku 2000[potrzebne źródło].

Biblioteka implementuje silnik SQL, dając możliwość używania bazy danych bez konieczności uruchamiania osobnego procesu RDBMS. W wielu zastosowaniach, a w szczególności w systemach wbudowanych, takie rozwiązanie jest najpraktyczniejsze.

SQLite posiada również API do innych niż C języków programowania, a mianowicie: ActionScript, Perl, PHP, Ruby, C++, Delphi, Python, Java, Tcl, Visual Basic, platformy .NET i wielu innych; a także interfejs powłokowy. Baza może łączyć się przez ODBC.

Zawartość bazy danych przetrzymywana jest w jednym pliku (do 2 TB). Baza SQLite jest utrzymywana na dysku przy użyciu B-drzew. Osobne drzewo jest używane dla każdej z tabel i każdego z indeksów. SQLite udostępnia transakcje ACID oraz implementuje większość standardu SQL 92. SQLite jest często wykorzystywany w większych aplikacjach oraz w systemach obsługi relacyjnych baz danych takich jak Kexi.

Bazy danych zapisywane są jako pliki binarne. Ich bezpieczeństwo jest oparte na zabezpieczeniach oferowanych przez używany system plików. Istnieje też projekt oferujący szyfrowanie baz danych SQlite na bieżąco.

SQLite obsługuje między innymi:

  • zapytania zagnieżdżone,
  • widoki,
  • klucze obce,
  • transakcje,
  • wyzwalacze (częściowo),
  • definiowanie własnych funkcji,
  • przechowywanie baz danych w pamięci RAM komputera, co znacznie przyspiesza działanie.

 

Należy zaznaczyć, że niektórych z nich brakuje nawet w rozbudowanych serwerach baz danych, a wydajność SQLite (przy obsłudze jednego użytkownika) w porównaniu z serwerami baz danych MySQL oraz PostgreSQL jest bardzo wysoka.” źródło Wikipedia

 

Jak wynika z powyższego tekstu SQLite doskonale nadaje się na małe i średnie projekty, głównymi zaletami są:

  • nie wymaga instalacji serwera bazodanowego,
  • darmowy, w pełni funkcjonalny
  • prosty w obsłudze

Teraz dochodzimy do sedna problemu czyli połączeniem SQLite i C++ Builder. Są gotowe płatne rozwiązania (komponenty), oraz dodatkowe biblioteki (zazwyczaj płatne), ale nas interesuję rozwiązanie darmowe i proste. Z pomocą przychodzi tutaj ODBC, sterownik ten jest w wersji 32 i 64 bitowy. Możemy go pobrać z :

SQLite ODBC wersja 32 bit

SQLite ODBC wersja 64 bit

Po instalacji odpowiedniego sterownika, tak jak przy innych silnikach ODBC, korzystamy z administracji źródłami danych odbc i dodajemy nowe. Przy tworzeniu powinno się pojawić nowy sterownik SQLite ODBC Driver, wybieramy go i tworzymy nowe źródło.

edytowanie akcji

Podajemy nazwę (dowolną) oraz podajemy ścieżkę gdzie znajduję się nasza baza danych.

edytowanie akcji

Teraz przyszła na kolej na C++ Builder, tutaj także sprawa jest prosta, wykorzystamy komponenty palety ADO. Do połączenia z źródłem, które wcześniej utworzyliśmy wykorzystamy ADO Connection, jako dostawcę można wybrać „Microsoft OLE DB Provider for ODBC Driver”, następnie wybrać nazwę naszego źródła ODBC i to jest praktycznie wszystko, można już w pełni czerpać dane z SQLite w C++ Builder.

Zaszufladkowano do kategorii Bazy danych, C++ Builder | Dodaj komentarz

Automatyczna kopia baz danych w SQL Server Express na dysku sieciowym.

Każdy użytkownik/administrator MS SQL Server w wersji Express stanął przed problemem robienia kopii bezpieczeństwa. Najlepszym sposobem jest aby kopie te były tworzone automatycznie tak aby nie było potrzeby pamiętania o tym. Niestety w wersja Express jest pozbawiona możliwości tworzenia kopii automatycznej. Kolejnym dodatkowym wyzwaniem jest tworzenie kopii na dysku sieciowym np. jakiś NAS. Domyślnie lokalizację sieciowe nie są dostępne z poziomu SQL Servera. Poniżej opisze jak tego dokonać, kody źródłowe dostępne tylko dla zalogowanych użytkowników.

1. Zaczniemy od mapowania lokalizacji sieciowej w SQL Server, wszystkie operację wykonujemy na bazie master.

  • Należy włączyć możliwość zaawansowanej konfiguracji serwera.

  • Zezwolić na dostęp do procedur sys.xp_cmdshell

  • Utworzyć procedurę mapowania dysku: mapowanie, polecenie net use jest standardowe znane z normalnego mapowania dysków

  • Dodatkową w/w procedurę można ustawić jako startową wraz z włączeniem serwera

  • Manualnie procedurę można uruchomić tak:

  • Sprawdzanie aktualnie działających procedur, wywołujemy tym selectem

2. Następnym krokiem będzie stworzenie procedury sp_BackupDb SQL Server do tworzenia kopii. Jako wzór do tej procedury posłużył mi kod napisany przez Doug Rathbone, dostępny w internecie a wygląda on następująco:

Powyższy skrypt tworzy nową procedurę o nazwie Sp_BackupDb , który działa na bazie danych z wyboru (@dbName), w zależności od typu backup danych (@backupTypeToRun) kopię tworzy albo pełną (przy użyciu parametru F), różnicową (przy użyciu parametru D) lub tworzenia kopii zapasowych loga (używając L parametr) do folderu sieciowego wcześniej za mapowanego (Z:\).

 

3. Kolejnym krokiem będzie stworzenie skryptu sql kopia_baz.sql, wywołującą powyższą procedurę. Srypt ten będzie wyglądał tak:

4. Ostatnim krokiem będzie stworzenie/zaplanowanie nowego zadania w harmonogramie zadań windows. Nazwa oraz czas i powtarzalność nowego zadania jest dowolna. Użytkownik który wywołuję procedurę powinien posiadać prawa administratora lub można przypisać, że użytkownikiem wywołującym to zadanie będzie SYSTEM. Zadanie jakie wykona program będzie włączenie programu SQLCMD.EXE, w zależności od wersji SQL Servera znajduję się on domyślnie w katalogach:

SQL Express 2005

C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE

SQL Express 2008

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE

SQL Express 2008 R2

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE

Należy dodać argument

edytowanie akcji

-S .\sqlexpress -E -i C:\Skrypty\kopia_baz.sql -o C:\Skrypty\raport.txt

-S (ta określa nazwę instancji programu SQL Server. – Jeśli używasz to lokalnie jest to domyślnie sqlexpress)

-E (ta określa, że chcesz, aby połączenie było zaufanym)

-i (to określa plik polecenia wejściowego, które w naszym przypadku jest to kopia_baz.sql zapisany w katalogu C:\Skrypty)

-o (to określa plik wyjściowy raport może być formacie txt lub rpt, nazwałem go raport.txt, jest nadpisywany każdorazowo po wykonaniu zadania)

To jest praktycznie wszystko co należy zrobić, testowałem to rozwiązanie na SQL Server 2005,2008,2008 R2 wszystko działało prawidłowo.

Zaszufladkowano do kategorii Bazy danych | Dodaj komentarz

Podgląd konkurencji

Chciałbym zaprezentować następny program, jest to Podgląd konkurencji. Zauważyłem że często klienci szukają narzędzia w którym stale mogliby monitorować ceny produktów u konkurencji. Produkty te również posiadaja w sprzedaży a chca stale być konkurencyjni. Dzieki temu narzędziu nie tylko dowiemy się że konkurencja np. dokonała obniżki ceny ale możemy uruchomić akcje automatycznie obniżki u nas tego towaru. Jest to narzędzie uniwersalne w którym można uzyskać sporo potrzebnych funkcji w szczegółach opisze to poniżej.

Aby lepiej zrozumieć opis programu należy wyjaśnić pare zwrotów, które funcjonują w programie:

  • obiekt – jest to dana/towar/produkt który monitorujemy np. może to być cena danego produktu. Dla uzyskania obiektu są wymagane podstawowe informacje takie jak: strona gdzie jest obiekt, klucz obiektu, przesunięcie itp. opisze to w dalszej części
  • katalog – każdy obiekt jest przyporządkowany dla jakiegoś katalogu, aby np. usprawnić szukanie obiektów
  • akcje – jest to czynność jaka może zostać wykonana po zmianie obiektu monitorowanego. W programie są 3 typy akcji
  1. Uruchomienie innego programu
  2. Wysłanie e-maila
  3. Uruchomienie skryptu sql w bazie mysql
  • obiekt monitorowany – jest to obiekt który ma przypisane akcje, widnieje w oknie Monitorowanie, jest sprawdzany czy nastapiła jego zmiana.

Okno główne prezentuje się tak:

Na samej górze jest menu programu, poniżej informacja co ile minut maja być sprawdzane wszystkie obiekty monitorowane, czas ten można zmienić zalecane jest aby nie był to zbyt krótki czas aby nie obciążać nie potrzebnie łacze internetowe oraz sam komputer gdzie pracuje program.

W menu obiekty mamy następujące pozycję:

  1. Katalogi  – konfiguracja katalogów obiektów
  2. Dodaj – tutaj można dodawać nowy obiekt
  3. Obiekty – moduł do zarządzania obiektami

W module katalog służy do zarządzania katalogami obiektów, czyli możemy dodawać, modyfikować oraz usuwać katalogi.

Następnym modułem jest dodawanie/tworzenie nowych obiektów.

Dodawanie obiektu odbywa się w następujący sposób:

  1. Pierwsze wpisujemy adres strony www gdzie znajdziemy dany obiekt, na przykładzie jest adres kursy walut NBP i klikamy wczytaj stronę, nastepnie powinno się pojawić kod źródłowy strony oraz podgląd strony www.
  2. Następnie należy wpisać klucz obiektu, czyli szukany tekst. Jest to tekst który na stronie występuje tylko raz i  jest przed obiektem. Jest swoisty marker gdzie znajdziemy nasz obiekt. Po wpisaniu szukanego tekstu, klikamy Szukaj tekst, już wtedy pojawi się nam otrzymana dana.
  3. Ustawiamy długość danej zaleca się aby była wieksza niż chcemy uzyskać ze względu na jej zmiany.
  4. Ustawiamy przesunięcie, jest to potrzebne gdy klucz obiektu (szukany tekst) jest odalony o określoną ilość znaków od danego obiektu, ilość znaków to przesuniecie.
  5. Gdy w końcu w polu otrzymana dana mamy nasza daną a na jej końcu są jeszcze jakieś nie potrzebne znaki stosujemy filtr i wpisujemu od jakiego znaku należy obciąć obiekt, wyniku tego otrzymujemy ostateczną daną.
  6. Jeśli ostateczna dana jest liczba zaznaczamy że jest dana liczbowa.
  7. W kroku 2 wspisujemy nazwe obiektu oraz możemy dodać opis obiekty, na koniec klikamy dodaj obiekt i jest to ostatni krok przy dodawaniu obiektu.

Nastepnym modułem jest moduł Obiekty – zarządzający obiektami.

W module tym możemy zobaczyć listę obiektów a na zaznaczony obiekt możymy modyfikować, usuwać oraz możemy dodawać nowy obiekt.

Następnym elementem aplikacji są moduły akcji.

W modułach akcji możemy:

  1. Ustawienia bazy mysql – jest to moduł do konfiguracji połaczenia z bazą mysql, tak  aby można było uruchomiać akcję skryptów sql.
  2. Ustawienia konta pocztowego – jest to moduł konfiguracji konta pocztowego z którego bedą wysyłane e-maile automatyczne przez program.
  3. Ustawienia akcji – jest to moduł zarządzający akcjami.

Ostatnim już modułem Monitorowanie – jest to moduł do zarządzania obiektami monitorowanymi. Możemy dodawać, modyfikować, podglądać (historia zmian) oraz usuwać obiekty monitorowane.

Obiekty monitorowane dodajamy w następujący sposób:

Dla danego obiektu przypisujemy akcje jaka ma zostać automatycznie wykonana, maksymalnie można przypisać 3 akcje do 1 obiektu. Dana otrzymana z obiektu jest polem do sprawdzenia poprawności obiektu. Wywołanie akcji może być po jakiekolwiek zmianie (jedyny sposób przy nie liczbach), innym wywołaniem może być gdy wartośc zmieni się o dana wartość np. chcemy akcje były wykonane jak cena mieni się o 10 zł a jeśli zmiana bedzię niższa to program nie ma nic robić.

Tak w  skrócie wygląda program Podgląd konkurencji.

Wersje demostracyjną można pobrać z tego Linka

Zaszufladkowano do kategorii Programy | Dodaj komentarz

Dziennik informatyka

Chciałbym zaprezentować moją nową aplikację Dziennik informatyka. Program ma ten wspomóc codzienną pracę informatyka, administratora. Dzienniku informatyka możemy prowadzić kartotekę sprzętu, programów, certyfikatów jakie istnieją w firmie. Możemy zapisywać wszelkie informację dotyczące zmian np. awarii, pisać notatki służbowe, przesuniecia magazynowe, zmian użytkowych, zakup części itp.

Okno główne aplikacji możemy zobaczyć poniżej.

W aplikacji mamy następujące działy:

-Administrator – moduł zarządzający

-Sprzęt – wszystko co się dotyczy sprzętu

-Programy –  dział z informacjami o programach

-Certyfikaty – dział odpowiadający za certyfikaty w firmię

-Okna – lista otwartych okien

-O programie – krótka informacja o programie

Tak został podzielony program na działy a jak to wygląda w poszczególnych działach. Tak więc na początku dział Administrator.

Dziale Administrator możemy definiować typy notatek w systemie, oraz użytkowników. Administrowania typie notatek, tak w jak każdym module administracyjnym możemy dodawać, modyfikować oraz usuwać dane w tym przypadku informację o typie notatek. Sam typ notatek definiuję się aby ułatwić późniejsze ich znalezienie.

Następnym działem jest dział Sprzęty.

W dziale tym mamy takie moduły:

Kategorie, Statusy, Magazynu są to moduły administracyjne to zarządzania poszczególnymi informacjami. Poza tym mamy rozbudowany dział sprzęty oraz oczywiście dodawanie sprzętu.

Powyżej widoczny moduł sprzęt z włączonym podglądem szczegółowym sprzętu. Module sprzęty możemy: wprowadzić nowy sprzęt, modyfikować dane o sprzęcie, zmieniać magazyn (przesunięcie magazynowe), zmieniać status sprzętu, wprowadzać notatki oraz wyświetlacz szczególowe informację o sprzęcie (Podgląd sprzętu). W podglądzie sprzętu mamy następujące informację: ogólne, transakcje/operację (informację o przesunieciach magazynowych i zmianach statusu), oraz wszystkie notatki dotyczące tego sprzętu.

Analogicznie jak dział sprzętu jest wykonany dział Programy.

Powyżej menu działu Programy.

W dziale Programy (widoczny powyżej) zmianą odnośnie do działu sprzetu, mamy zamiast przesunieć magazynowych instalację oraz deinstalację programu. Informację ta jak sama nazwa wskazuje o instalacji programu oraz deinstalacji na poszczególnym sprzecie.

Następnym działem jest dział Certyfikaty.

W dziale tym definiujemy certyfikaty, określamy dla kogo/czego one dotyczą uzupełniamy szczególowe informację o certyfikacie. Dla certyfikatów również możemy stworzyć notatkę.

W programie jest również ukryty system powiadamiania o:

-upływającym terminie gwarancji sprzętu,

-upływającej licencji oprogramowania którego należy przedłużyć

-upływającym terminie ważności  certyfikatu.

To tak po krótce prezentuję się Dziennik informatyka.

Zaszufladkowano do kategorii Programy | Otagowano , , , , | Dodaj komentarz

Zarządzanie szkółką lotniczą – program FTO

Chciałbym przedstawić mój program wspomagający zarządzanię szkółką lotniczą.

Program realizuje następujące funkcje:

1.MODUŁ SAMOLOTY
Obejmuje następujące elementy:
• tworzenie grup samolotów, do których przyporządkowane są konkretne samoloty (panel
administracji),
• dodawanie informacji podstawowych o samolocie,
• definiowanie dokumentacji samolotu i ważności jej trwania (ubezpiecznia, świadectwa zdatności
do lotu),


• odnotowywanie informacji o przeprowadzonych przeglądach i serwisach, z podziałem na
określone typy przeglądów,
• wprowadzanie wykonanych badań sprzętu,
• zestawienie lotów dokonanych na danym samolocie – lista lotów zasilana poprzez dodawanie
lotów w innej części systemu,
• dostępność samolotu w kolejnych dniach poprzez indywidualny kalendarz samolotu, • saldo
samolotu, czyli dokonane płatności związane z utrzymaniem samolotu oraz kwoty
uzyskane z jego wypożyczenia,
• dokumenty – możliwość dodawania dowolnych dokumentów do systemu związanych z
samolotami,
•wykresy z ilością lotów samolotu, ilością lotów na godzinę, ilością lądowań, ilością wydatków.


2. MODUŁ UŻYTKOWNIKÓW
Grupy użytkowników są definiowane poprzez administatora. Przykładowi użytkownicy to:
piloci, instruktorzy, uczniowie szkoły.
Baza użytkowników obejmuje następujące elementy:
• informacje podstawowe o użytkowniku (dane kontaktowe),
• zestawienie dokumentacji użytkownika, czyli danych o posiadanych przez niego licencjach i uprawnieniach wraz z terminem ich ważności,
•tabela z użytkownika balansem dostępnych funduszy / należności
•lista wykonanych lotów – historia lotów
• statystyka użytkownika, czyli wskazanie informacji o ilości lotów dokonanych w danym
czasie, ilości lądowań, dacie ostatniego lotu, ilości dni od ostatniego lotu,


• informacje o kursach, w jakich bierze udział użytkownik, z wyszczególnieniem daty, rodzaju
kursu, rodzaju samolotu, na którym odbyto ćwiczenia, pilocie, instuktorze lub profesorze
prowadzącym kurs, rodzajach wykonanych ćwiczeń, ocenie i notatkach dotyczących użytkownika,
•dokumenty związane z danym użytkownikiem,
•harmonogram z dostepnością użytkownika (szczególnie pilota),
• historię wszystkich akcji, zdarzeń, w jakich wziął udział użytkownik,
• ustawienia powiadomień, jakie są wysyłane do użytkownika.
Dodatkowo w ramach bazy użytkowników istnieje możliwość przesyłania wiadomości email z poziomu aplikacji,


3.MODUŁ KONTAKTÓW
Obejmuje zestawienie osób, które nie są związane bezpośrednio z firmą (szkołą), jak piloci czy uczniowie, ale stanowią potencjalnych klientów lub innych użytkowników samolotów. Baza  obejmuje wyłącznie podstawowe informacje kontaktowe o tych osobach, z możliwością tworzenia grup kontaktów w celu ich lepszego uporządkowania.

4. KREATOR WIADOMOŚCI DO UŻYTKOWNIKÓW SYSTEMU
System umożliwia wysyłkę wiadomości mailowej do grupy użytkowników, które spełniają określone warunki, kryteria (np. użytkownicy, którzy są pilotami).

5.POWIADOMIENIA – NOTYFIKACJE

System prezentuje powiadomienia (tzw. Billboard) w przypadku, gdy:
zbliża się termin ważności wybranych dokumentów samolotu (np. ubezpieczenia),
zbliża się termin ważności dokumentów wybranego pilota (np. licencja na loty),
zbliża się termin kontraktu z wybranym pilotem lub instruktorem,

6.FAKTURY
System umożliwia generowanie faktur i ich pobranie w formacie doc. Gromadzi również historię wystawionych faktur.
7.LOTY
System umożliwia:
•definiowanie nowych lotów ze wskazaniem dokładnych danych o dokonanym locie

• przeglądanie bazy lotów według zadanych kryterium czasowym (od.. do..).

8. MODUŁ KURSÓW
Umożliwia:
• tworzenie kursów (wprowadzenie nazwy kursu), jakie są realizowane w klubie,

• definiowanie przedmiotów w ramach danego kursu: o nazwa przedmiotu, o klasa,
• czas trwania przedmiotu, o instruktor (profesor),
• dodawanie dokumentów związanych z przedmiotem,
• wskazanie lekcji, które są wymagane przed przystąpieniem do uczestniczenia w danym przedmiocie.
• definiowanie lekcji w ramach danego przedmiotu


9. ADMINISTRACJA
Obejmuje:
•dodawanie nowych użytkowników, definiowanie typów użytkowników z ustawieniem ich dostępu do poszczególnych części aplikacji, usuwanie nowych użytkowników,możliwość zmiany hasła do aplikacji,
•grup samolotów, jakie występują w klubie,
•rates dla typów samolotów
•wprowadzanie lotnisk, z których zazwyczaj są starty samolotów klubu,
•nazw przedmiotów w ramach kursów,
•profesorów, którzy prowadzą kursy,
•sal, w których odbywają się kursy,
•techników, grupy użytkowników,

•typów lotów, typów wydatków związanych z obsługą samolotów,
•typów dokumentów samolotów, jakie są kontrolowane w systemie.

To tak w skrócie wyglądają główne funkcje programu Flight Training Organizer (FTO).  Wykorzystywanym silnikiem bazy jest mysql, po za tym istnieje jeszcze instalator programu, oraz wbudowany system zabezpieczający program przed nie licencjowanym używaniem programu. Kolejnym pod programem jest wbudowany ftpuse – program do wykorzystywania plików umieszczonych gdzieś na serwerze przy użyciu ftp.

Zaszufladkowano do kategorii Programy | Otagowano , , , , , , , , , | Dodaj komentarz