MSQL je univerzální nástroj pro správu dat a databází. Je to jakási “Datová centrála”, ze které mohou být přistupovány a udržovány různé datové zdroje.
MSQL se skládá z jádra (to příkazy vykonává) a různých interface (ty naopak příkazy formulují a předávají jádru ke zpracování).
Jádro provádí vlastní příkazy, které obdrželo od některého z interface. Tomuto interface také vrací výsledky své činnosti a případné zprávy (chybové a jiné). Interface tyto výsledky a zprávy zobrazuje uživateli (nebo např. ukládá do souborů na serveru - to pokud použitý interface přímo nekomunikuje s uživatelem). Jádro neví, jakým způsobem byly příkazy zadány ani jak budou zpracovány zprávy, které samo vrací.
Jednotlivé Interface zajiš'tují komunikaci mezi zadavatelem příkazů (podle typu interface to může být uživatel nebo např. proces na GapoServeru) a jádrem (které tyto příkazy provádí).
MSQL využívá knihoven RtsSystému. Z toho vyplývají některé vlastnosti:
podpora řady platforem (Windows, Linux, MacOS ...)
volitelné šifrování dat mezi klientem / serverem
V současnosti jsou k dispozici tyto interface MSQL :
grafický interface
(standardní MSQL)
kompletní
grafický program včetně manageru DSN, task manageru a grafického
generátoru SQL příkazů.
Jeho popisu bude věnován další text
Grafická varianta MSQL je k dispozici také jako “single
varianta úlohy” (tu lze spustit jako samostatný program;
ke své činnosti nepotřebuje GapoServer; má integrovány ovladače pro
nejobvyklejší databáze - Oracle, Sybase, MS SQL, Pervasive,
Interbase ...)
commandline interface
speciální varianta, která
nevyžaduje ke své činnosti grafické prostředí. Neobsahuje
administrátora DSN ani grafický generátor SQL příkazů.
Jinak je
funkčně shodná s grafickou variantou MSQL, příkazy se zadávají na
systémovou konzolu. Provedení série příkazů se spustí příkazem “go”
na samostatném řádku.
runtime interface
dovoluje pouze interpretovat již
napsané MSQL skripty. Vhodné pro spouštění “rychlých
jednoúčelových” úloh pro klienty.
Na příkazové řádce
očekává název proměnné. V INI parametrech klienta je pak definován
obsah této proměnné (MSQL příkaz nebo skript). Takto lze zajistit
např. spouštění různých úloh pro různé uživatele jediným příkazovým
řádkem.
interface na Rts erveru
je součástí
GapoServeru - na něm je k dispozici po celou dobu běhu serveru.
Provádí MSQL skripty spouštěné jako události Rts erveru, na
vyžádání klienta, případně (pokud je to povoleno v konfiguraci
serveru) MSQL příkazy a skripty přijímané prostřednictvím
TELNETu / SSH.
Je to základní varianta MSQL. Je k dispozici pro každou instalaci úlohy pro Rts Systému. Zde je nezbytná pro vytvoření potřebných datových struktur a údržbu databází používaných Rts Systémem a klientskými úlohami. Její jeho použití je však mnohonásobně širší.
Pomocí skriptovacího jazyka lze vytvářet skripty pro opakované operace (ty mohou obsahovat i jednoduché formuláře, do kterých uživatel může zadat parametry požadované pro činnost skriptu). Tyto skripty lze pak spouštět ve všech ostatních interface (na GapoServeru, z příkazové řádky a pod.)
Z MSQL lze přímo odesílat SMS, e-maily, spouštět skripty na GapoServeru, vyvolávat události GapoServeru ....
Všechny tyto funkce jsou k dispozici na všech obvyklých platformách (MS Windows, Linux, MacOS, PalmOS ...).
Co lze pomocí grafického klienta MSQL provádět – jeho hlavní funkce:
vytvoření systémových tabulek při instalaci Rts Systému - vytvoření systémové databáze
vytvoření tabulek v databázi pro úlohu podle připravených
skriptů nebo podle definice šablony a její naplnění výchozími
hodnotami
(šablonu lze vlastním vygenerováním databáze ještě
upravit - např. změnit velikost polí podle potřeby zákazníka a pod.)
údržba databází, vytváření pohledů na data, tisk rychlých jednoúčelových sestav, úpravy a změny dat v databázích
změny struktury tabulek, vytváření a rušení tabulek
psaní a provádění SQL příkazů a skriptů, opakované operace s daty ...
příprava a ladění MSQL skriptů určených pro spouštění na
GapoServeru
tyto skripty mohou být spuštěny jako události,
nebo vyvolány z klientských nebo serverových modulů
.
Grafická varianta MSQL má integrován jednoduchý telnet (s podporou login skriptů - skripty jsou uloženy zašifrovaně v systémové databázi uživatele), s jehož pomocí lze spravovat servery ve firmě.
je to mudul pro správu datových zdrojů (DSN).
Dovoluje přidávat, rušit nebo upravovat DSN,
která budou známa Rts Systému v aktuální systémové databázi, jež
je v tomto okamžiku aktivní (v manageru DSN MSQL lze jako
v jediném modulu Rts Systému měnit aktivní DSN - viz změna
systémového DSN).
Zde zaregistrovaná DSN pak budou známá také
všem úlohám, které tuto (právě
aktivní) systémovou databázi využívají jako své systémové
DSN.
V manageru DSN se také volí DSN, které budou SQL panely
používat pro následující SQL operace (v MSQL skriptu lze zvolit DSN
také příkazem selectDSN; pak platí DSN nastavené tímto příkazem a
nikoli DSN vybrané v manageru).
|
|
Pro zaregistrování DSN do Rts Systému musím znát tyto údaje:
DSN – vlastní jméno, pod kterým bude databáze zaregistrována
Typ databáze – určuje o jakou databázi se jedná.
Je editovatelný jen u nově zadávaného DSN. Pokud uživatel zvolí typ
databáze, systém podle něj navrhne vhodný ovladač a prefix pro
připojení k této databázi a nabídne obvyklý tvar JDBC suffixu.
Po
uložení údajů o DSN systém zjistí skutečnou databázi, která je pod
tímto DSN zaregistrována a údaj v tomto poli změní.
JDBC Driver
ovladač, který bude použit pro
komunikaci s databází. U obvyklých databází stačí znát její typ (ten
se systému sdělí výběrem ze seznamu “Typ databáze”)
a systém sám zvolí vhodný ovladač.
JDBC Prefix
varianta ovladače - pokud zvolený
ovladač má více variant (např. podporuje více databází). Obvykle
mají ovladače pouze jednu variantu, kterou systém automaticky
nabídne. Exstují však některé “univerzální” ovladače,
podporující několik databází. Zde je pak pomocí prefixu nutné určit
typ databáze, ke které se bude připojovat.
Zadává se jako
JDBC Suffix
parametry, které musí ovladač znát pro
připojení k databázi. Obvykle je to IP adresa, IP port a jméno
databáze (pro databázové stroje), nebo adresář a / nebo
jméno souboru, ve kterém je databáze uložena (pro databáte typu MS
Access, DBASE, Paradoc a pod.) nebo jméno datového zdroje z ODBC
(pro JdbcOdbcDriver). Někdy začíná speciálními znaky (“@”,
“//” a pod.).
přímé připojení
Obvykle
jsou databáze připojeny přes Rts Srerver. Ten také musí mít
nainstalovány potřebné ovladače a musí mít IP spojení k databázovému
stroji (nebo přístup k souborům s databází, nebo zaregistrovány ODBC
zdroje). Klienta tyto věci nezajímají, protože k datům databáze
přistupuje GapoServer a klientovi tato data zprostředkuje.
Může
ale nastat situace, kdy klient potřebuje přistupovat k datům přímo
ze své stanice mimo GapoServer (např. pracovní nebo dočasné
databáze, přenos dat mezi programy běžícími na stanici klienta a
pod. - obvyklé je to u databází typu MS Access, FoxPro, MS Excel,
Dbase a pod; může však jít o jakoukoli databázi). Toho lze dosáhnou
zatržením položky “přímé připojení” u DSN, které má být
takto přistupováno. Při následujícím spuštění úlohy, která taková
data vyžaduje, již budou data přistupována přímo ze stanice klienta
(v MSQL se tato změna projeví okamžitě). Klient však musí mít
nainstalovány ovladače pro komunikaci s takovou databází a případně
IP přístup k databázovému stroji .
Uživatelské jméno a Heslo
Pro připojení k
většině databází je nutné znát jméno uživatele (uživatelského účtu)
v této databázi a jeho heslo.
Ostatní volby:
Připoj
po stlačení bude vybrané DSN připojeno. MSQL
se přepne do návrhového panelu (“SQL dotaz”), ve kterém
bude obsah vybraného DSN.
neukládat
Pokud je zatrženo, systém nebude ukládat
jméno uživatele databáze a / nebo jeho heslo. Po uložení
údajů o DSN zůstane nastaveno původní jméno a / nebo heslo
(u nového DSN prázdné). K DSN se však lze připojit, aniž by byly
jeho údaje uloženy.
V DSN Manageru MSQL lze (jako v jediném modulu Rts Systému)
za chodu úlohy měnit její systémové DSN.
Tímto způsobem si lze
prohlédnout obsah každého DSN, které obsahuje systémové tabulky; lze
tedy zjistit jaká další DSN jsou v něm registrována, jeho uživatele,
role atd.
K přepínání mezi systémovými DSN slouží navigační klávesy nad
seznamem DSN. Pokud je v seznamu DSN vybráno DSN, které obsahuje
systémové tabulky, lze se
do něj “přepnout” pomocí tlačítka
.
Po stlačení tohoto tlačítka nastaví MSQL vybrané DSN jako externí
systémové DSN. Další operace budou probíhat s tímto DSN tak, jako
by bylo normální systémové. Seznam dostupných DSN se změní na ta,
která jsou zaregistrována v systémové databázi pod vybraným DSN.
Pokud jsou splněny podmínky pro práci s ním (viz dále), lze normálně
pracovat s daty uloženými v databázích pod jednotlivými DSN tohoto
externího systémového DSN (lze volat SQL příkazy ...).
Aby bylo možné “Externí systémová DSN” používat, musí být splněny následující podmínky:
uživatel musí mít (v
INI parametrech klienta) nastaven
atribut “msql.dsn.changeEnabled” na hodnotu
“true”
pokud ne, systém nedovolí DSN přepnout
všechna takto připojovaná DSN jsou přistupována přes GapoServer, ke kterému je (jako klient) připojeno MSQL; proto musí být z tohoto serveru přístupná.
pokud se pro normální přístup k těmto DSN používá jiný GapoServer, musí používat pro šifrování údajů stejné klíče jako server, ke kterému je připojeno MSQL, nebo musí být údaje o DSN uloženy nešifrovaně.
Tlačítko
nastaví
jako systémové DSN pro MSQL toDSN, se kterým bylo MSQL spuštěno.
Tlačítko
občerství
seznam dostupných DSN.
V horní části panelu DSN Manageru je tlačítko
(místo textu “$system” je zde skutečné jméno DSN, které
je právě aktivní). Timto tlačítkem lze jím modul
správy systému pro to DSN, které je právě nastaveno jako aktivní
.
Pokud nemá přihlášený uživatel v tomto DSN stejný účet jako v DSN se kterým bylo MSQL spuštěno, nebo pokud nemá nastaveny přepínače Admin nebo Superadmin, je vyzván k přihlášení do tohoto DSN.
Poté je již k dispozici normální správa systému pro toto DSN. Údaje pro modul správy systému se berou a zapisují do systémových tabulek databáze, zaregistrované pod tímto DSN.
Aby byla správa cizích DSN přístupná, musí být splněny tyto podmínky:
přihlášený uživatel musí být superadmin pro DSN se kterým bylo spuštěno MSQL
musí mít nastaven atribut “msql.dsn.changeEnabled” na hodnotu “true” (jinak by se do tohoto DSN nemohl přepnout)
v cílovém DSN musí mít stejný účet jako v tom, ve kterém bylo MSQL spuštěno (nebo musí znát jméno a heslo k jinému účtu, který má v cílové dsn práva “Administrátor uživatelů” nebo “Superadmin”)
GapoServer, který je používán pro normální přístup k tomuto
DSN, musí používat stejné klíče k šifrování údajů, nebo musí být
hesla uživatelů uložena nešifrovaně
(to je nutné jen pokud by
bylo nutné ukládat změny; pro prohlížení údajů ne)
se provádí v návrhovém panelu (panel “SQL Dotaz” na obr.).
Do panelu “SQL Dotaz” se lze dostat ze správce DSN
zvolením některého DSN a stlačením “Připoj”.
Vlevo
nahoře se volí typ SQL dotazu (“Select”, “Insert”,
“Update”, “Delete”,
“Stored Procedure”). Podle vybraného typu
dotazu se změní také zbytek panelu. V dalším textu jsou popsány
vlastnosti společné všem variantám SQL panelu.
Ve všech
variantách panelu lze výběrem jeho prvků (zatržením odpovídajících
polí) volit komponenty, které budou tvořit SQL příkaz. Systém tento
příkaz zobrazuje v pravém okně obrazovky.
Vygenerovaný SQL příkaz lze v pravém okně upravit, po jakékoli změně v grafickém návrhu však budou tyto upravy přepsány.
|
|
|
|
|
|
|
|
Ovládací Prvek |
Význam |
|---|---|
|
Občerstvi |
znovu načte (aktualizuje) seznam SQL objektů (tabulek, pohledů, procedur...) |
|
Soubor: |
Pokud je v poli zadán nějaký text, bude místo příkazu SELECT
vytvořen příkaz SAVE a místo příkazu INSERT příkaz
LOAD. |
|
Jen vlastní |
V seznamu SQL objektů budou zobrazeny pouze objekty v
kontextu databázového uživatele |
|
Systémové |
V seznamu SQL objektů budou zobrazeny i systémové tabulky
RTS Systému. Pokud je k tomu zatrženo i “Pouze”,
budou zobrazeny jen tyto systémové tabulky. |
|
|
V seznamu SQL objektů |
|
Filtr |
Lze zadat libovolný filtr, který určí, co bude vidět v seznamu SQL objektů. Filtr se zadává v “hvězdičkové” konvenci - t. j. tvaru, v jakém se zadává filtr na soubory operačního systému. Filtr může být složen z několika podmínek (každá podmínka na samostatném řádku), mezi nimiž platí vztah “OR” - kombinace podmínek tedy zvětšuje výběr. |
|
Proveď |
Odešle SQL příkaz ke zpracování databázi. |
|
Vše |
(v panelech Select, Insert): vloží do SQL příkazu všechny sloupce vybraných tabulek |
|
Reset |
(v panelech Select, Insert): vyjme z SQL příkazu všechny sloupce - příkaz zůstane prázdný |
|
Invert |
(v panelech Select, Insert): Obrátí výběr sloupců pro SQL příkaz (t. j. ty, které byly zvoleny pro příkaz nebudou a naopak) |
Jednotlivé varianty návrhového panelu (pro jednotlivé SQL příkazy) jsou detailně popsány zde:
MSQL má integrován správce databází - výkonný nástroj pro správu existujících databází a pro tvorbu databází nových.
Lze v něm provádět kompletní údržbu libovolné databáze, která je jako DSN zaregistrována v systému.
měnit struktury existujících tabulek
přidávat a mazat tabulky
vytvořit a udržovat šablony pro databázi (nebo pro část
databáze)
(tabulky, pohledy - včetně UNION, default hodnoty,
kterými bude databáze naplněna, referenční integritu atd...)
kopírovat objekty (tabulky, pohledy) z existující databáze do šablony
vygenerovat SQL skripty pro vytvoření databáze ze šablony (včetně rašení objektů, které by případně již v databázi existovaly)
ukládat šablony do souborů a načítat ze souborů
takto může
být šablona pro vytvoření databáze pro některou úlohu posílána např.
e-mailem a pod.
V šablonách může být uložen vzor databáze: tabulky, pohledy ...
Pravé tlačítko myši na objektu => lokální menu k vybranému objektu (tam lze vybírat akce spojené s tímto objektem)
|
|
|
Vytvoření šablony
Šablona pro
v každém DSN může (ale nemusí) existovat
jedna šablona, jejíž objekty jsou k dispozoici ihned po otevření
šabloby ve stromu objektů. Z hlediska práce je to normální šablona,
liší se pouze tím že nemá samostatný název.
MSQL má integrován jednoduchý modul správy úkol. V něm si lze vést