Save
SAVE - duplicitní klíčová slova
■ save............. příkaz pro uložení změn souborů (z cache na disk)
■ save(...)........ PROLOG - uložení databáze do údaje typu T
save (PROLOG)
save
save(NázevDatabáze,ParamSoub.UdajTypuT)
NázevDatabáze Jméno databáze. Uvedeno za klíčovým slovem #DATABASE.
ParamSoub.UdajTypuT Globální proměnná.
Uložení současného obsahu databáze do globální proměnné typu T.
Příklad:
vloz:-save(FIRMA,PROLPAR.KapB).
SaveAfter
PARAMETRY EDITACE
Sdílená editace
LAN - SDÍLENÁ EDITACE
Při práci se sdíleným souborem lze dělat vše (editovat, pořizovat a rušit
věty), pokud to některá z dalších stanic nezakazuje! Při konkurenční práci
více účastníků je pro každého z nich rozhodující nejvyšší mód blokování
nárokovaný ostatními účastníky. Pro koordinaci datových editorů je použita
technika zamykání vět.
Mód blokování při editaci je jednoznačně určen způsobem editace a právě
probíhající akcí:
NoExcl - editace podmnožiny vět souboru s indexovou podporou (cond, owner,
mode='F2' nebo mode='wx')
NoDel - editace celého souboru (kromě cond, owner, mode='F2' nebo mode='wx')
NoCr - editace podmnožiny vět souboru bez indexů (cond nebo mode='F2')
Použití módů Rd a vyšších je časově omezeno na provedení konkrétní akce
(čtení souboru, zápis věty, přidání věty, aditivní změna atd.).
Při editaci podmnožiny vět (NoExcl, NoCr) pravidelný refresh vypisuje pouze
aktuální stav vět vybraných při vytváření podmnožiny. Věty zrušené jiným
účastníkem jsou při refresh zobrazeny barevně odlišně, nově pořízené věty se
nezobrazí a při změně hodnoty klíče je hledání F3 ještě podle starých hodnot
klíče. Obnovení podmnožiny lze vyvolat kombinací kláves Ctrl-F2.
Jsou-li deklarovány rozsáhlejší aditivní změny a především referenční
integrita, blokují se při potvrzení věty v odpovídajících módech blokování
všechny nadřízené, resp. podřízené soubory. Celá akce tvoří jakousi transakci,
která se provede buďto celá nebo vůbec. V případě nepřístupnosti souborů
ji lze odvolat (ESC).
Sdílení datových souborů
LAN - SDÍLENÍ DATOVÝCH SOUBORŮ
Sdílení datových souborů je možné pouze při instalovaném síťovém softwaru !
┌─────────────────────────────────────────────────────────────────────────┐
│ Před spuštěním FANDu je nutné instalovat parametr operačního systému: │
│ ■ SET LANNODE= Unikátní číslo stanice v síti (0 až 255) │
└─────────────────────────────────────────────────────────────────────────┘
Datové soubory i katalog jsou implicitně umístěny ve stejném adresáři, kde
je úloha. Rozmístění datových souborů je možné změnit v katalogu. Umístění
katalogu a datových souborů v něm neuvedených lze změnit před spuštěním
FANDu nastavením SET FANDDATA. Určení přístupových práv viz. instalace sítě.
Sdílené datové soubory je nutné při instalaci úlohy v katalogu všech stanic
označit v údaji "Návěští" dle požadavku na sdílení:
■ všichni účastníci soubor pouze čtou - (úloha,.HLP) soubor má DOS-atribut
ReadOnly , nemusí být v katalogu
uveden nebo je návěští v katalogu
prázdné.
■ někteří účastníci soubor pouze čtou - v katalogu těchto stanic je soubor
označen '#R'
■ soubor je určen pro čtení i zápis - návěští v katalogu obsahuje '#'.
Deklarace sdílených souborů není možné měnit ! Zápis do souboru určeného
pouze pro čtení je vyhodnocen jako běhová chyba s ukončením úlohy !
Sdílení FANDu
LAN - SDÍLENÍ FANDU
Pro sdílení FANDu je třeba nejprve nastavit DOS - atribut ReadOnly pro
soubory FAND.EXE a FAND.OVR.
Před sdíleným spuštěním FANDu je nutné instalovat následující parametry
operačního systému (SET-parametry):
■ SET FANDWORK= Cesta k pracovním souborům
- každý účastník má vlastní adresář na lokálním počítači nebo na serveru
Soubory FAND.OVR, FAND.CFG, FAND.RES a FANDHLP.* jsou standardně hledány
ve stejném adresáři, kde je FAND.EXE. Dalšími parametry operačního systému
lze standardní hledání změnit: SET FANDOVR=, SET FANDCFG=, SET FANDRES=.
Programem FANDINST je možné dále nastavit "síťové" parametry:
(viz. používané pojmy)
net delay - opakování blokovaného přístupu
refresh - obnova obrazovky v datovém editoru (zvýšení implicitní
hodnoty 5 sec. zmenší zatížení disku serveru a sítě)
Sdílení úlohy
LAN - SDÍLENÍ ÚLOHY
Sdílení úlohy je možné pouze v režimu provádění (nelze sdíleně ladit).
Projektové soubory (*.RDB a *.TTT) a soubory s nápovědou k úloze (.HLP) musí
mít DOS-atribut ReadOnly. Pro úlohu FAND nastavuje tento atribut automaticky
při uzavření na heslo, zruší je při ladění nebo při instalaci (na dobu úprav).
!!!
Od verze PC FANDu 4.0 se úlohy v režimu provedení otevírají automaticky
RdOnly, není potřeba si toto vynucovat označením DOS-atributem.
Pro práci s katalogem úlohy existují dvě varianty:
■ společný katalog - v případě, že úloha do katalogu nepíše, stačí přiřadit
(ručně) katalogu DOS-atribut ReadOnly (při instalaci atribut není na
závadu). Katalog může být umístěn ve stejném adresáři jako sdílená úloha
nebo dle nastavení: SET FANDCAT= nebo SET FANDDATA=.
■ každý účastník má vlastní katalog - před spuštěním FANDu je třeba nastavit
pro každého účastníka do zvláštního adresáře (na lokálním počítači nebo na
serveru) parametr: SET FANDCAT= nebo SET FANDDATA=.
SET FANDDATA= - určuje umístění katalogu a datových souborů, které nejsou v
katalogu uvedeny. Implicitně jsou data umístěna v adresáři, kde je úloha.
SET FANDCAT= - určuje pouze umístění katalogu, uplatní se i při SET FANDDATA
Sel
PROCEDURÁLNÍ PARAMETRY EDITACE
Select (SQL)
ODBC
SelectStr
SELECTSTR
Sestava
SESTAVA - kapitola R
SET-parametry
SET-parametry
SetEditTxt
SETEDITTXT
SetKeyBuf
OŠETŘENÍ KLÁVESNICE
SetMouse
MYŠ V PROCEDUŘE
SetPrinter
PŘÍKAZY PRO TISK TEXTU
Seznam
#DOMAINS - Definice typů
Seznam údajů
SYNTAXE SEZNAMU ÚDAJŮ
V parametrech dupl, noed, tab, exit příkazu edit se může vyskytovat seznam
údajů daného souboru, který má jednotnou syntaxi.
██ syntaxe : [^] ( [ NázevÚdaje [ {,NázevÚdaje }]] )
Jak vidno, seznam údajů je vždy uzavřen v kulatých závorkách , jednotlivé
údaje jsou odděleny čárkou. Prázdný seznam () znamená všechny údaje souboru.
Znak ^ před seznamem znamená doplněk - tj. všechny neuvedené uložené údaje.
Poznámka: () a ^() mají totožný význam - tj. všechny údaje
Seznam uživatelů
SEZNAM UŽIVATELŮ - kapitola U
Seznam uživatelů je nepovinná kapitola typu U na začátku úlohy. Nemá jméno,
musí být jako první v projektu a ve strukturovaných úlohách může být pouze
v hlavní úloze. Obsahuje seznam oprávněných uživatelů úlohy.Každý uživatel
má přiřazeno jméno (text), kód (číslo), heslo a seznam přístupových práv.
█ 'Jméno',Kód,Heslo,(SeznamPřístupovýchPráv); ... jedna položka seznamu
■ Jméno: jméno aktuálního uživatele pro identifikaci v projektu
■ Kód: číslo aktuálního uživatele pro identifikaci v projektu
■ Heslo: tímto heslem se uživatel přihlašuje při startu úlohy
■ Seznam: seznam čísel (1..255) pro rozlišení přístupových práv v projektu
lze použít i interval
Pokud je úloha opatřena kapitolou U, před vstupem do úlohy musí uživatel
zadat jedno z povolených hesel, jinak úloha nebude spuštěna. Po správném
zadání hesla se naplní jméno, kód a přístupová práva aktuálního uživatele
a podle nich lze měnit chování programu v dalším zpracování. Podle
kapitoly U se řídí i omezení při navigaci po databázi podle uživatelských
pohledů. Prázdná kapitola U má stejný efekt, jako když kapitola neexistuje
(lze dodatečně instalovat z hlavního menu PC FANDu bez zásahu do programu).
░░░░░░░░░░░░
░░příklady░░
░░░░░░░░░░░░
{obsah kapitoly U}
'Vladimír Grosmut',1,'VG',(1,2,4..6,9,11);
'Luděk Galbavý',2,'LG',(1,3);
'Iva Jablonská',3,'IJ',(10..11);
Seznam voleb
SEZNAM VOLEB
Shared
LAN - PŘÍKAZ WITH SHARED
V některých případech může být žádoucí změnit automatické chování PC FANDu
při blokování sdílených souborů. V proceduře je pro určení režimu blokování
jednoho nebo více souborů k dispozici příkaz:
█ with shared NázevSouboru(MódSdílení) {,NázevSouboru(MódSdílení)} do
█ Příkaz1
█ [ else Příkaz2 ];
Mód sdílení je textová konstanta, určující způsob práce se souborem a může
nabývat hodnot: NoExcl, NoDel, NoCr, Rd, Wr, Cr, Del, Excl.
Po dobu provedení "Příkaz1" je blokován soubor (případně více souborů) ve
zvoleném režimu blokování. Přístup k blokovaným souborům jiným účastníkem je
povolen jen v případě, že nárokuje mód blokování, který je možné s aktuálním
blokováním kombinovat. V opačném případě je přístup k souboru odmítnut. Při
požadavku na blokování více souborů najednou blokuje všechny současně nebo
žádný. Není-li uvedena větev "else ..", čeká FAND v případě blokování
některého z uvedených souborů jiným účastníkem na jeho uvolnění bez možnosti
čekání přerušit. Periodu opakování přístupu je možné instalovat (net delay).
Shift
ALTERNATIVNÍ NÁPOVĚDA
Sin
ARITMETICKÉ FUNKCE
Sloupcový blok
SLOUPCOVÝ BLOK
Běžný blok je tvořen souvislým úsekem textu , který je vymezen prostým
začátkem a koncem bloku. Sloupcový blok je kromě toho vymezen i určitým
počátečním a koncovým sloupcem textu. Z interního hlediska se tedy nejedná
o souvislý úsek textu. Vizuálně jde o obdélník na obrazovce.
Se sloupcovými bloky se manipuluje stejnými operacemi jako z běžným blokem.
Režim práce (sloupcový<->běžný blok) se nastaví přepínačem Ctrl-K Ctrl-N.
Pro sloupcové bloky nejsou definovány operace vyhledávání Ctrl-Q Ctrl-F,
nahrazení Ctrl-Q Ctrl-A s podmínkou l a operace formátování bloku Ctrl-K
Ctrl-F.
Složený příkaz
SLOŽENÝ PŘÍKAZ
Složený příkaz je sekvencí několika příkazů , ohraničených programovými
závorkami begin a end. Složený příkaz se v kontextu chápe jako jeden
příkaz. Pomocí begin a end se provede i vnější ohraničení těla procedury.
Se stejnou syntaxí jako v proceduře se složený příkaz může vyskytnout v
reportu nebo transformaci.
██ Syntaxe: begin { Příkaz ; } end ;
■ Příkaz ...... Může být libovolný jiný příkaz včetně složeného příkazu.
Sort
SORT - duplicitní klíčové slovo
■ report(...sort) ..... parametry automatické sestavy: dočasné třídění
v sestavě
■ sort(...) ........... třídění: třídění vyvolané z procedury
■ getindex(...sort) ... vytvoření pracovního indexu
Soubor formátu .DBF
SOUBOR FORMÁTU .DBF
Soubor pro nápovědu
KONSTRUKCE NÁPOVĚDY
Soubory v katalogu
SOUBORY V KATALOGU
Katalogizovat lze následující soubory:
■ Datový soubor ... jiné fyzické jméno (nebo přípona) než podle kapitoly F
... soubor je umístěn v jiném adresáři (disku) než úloha
... soubor je na disketě (automatická práce s návěštím)
... sdílený soubor v síti (lokální sítě)
... soubor SQL
... generační soubory
... archivní soubory pouze pro záložní kopie (copyfile)
bez deklarace v kapitole F (externí soubory)
... vícedisketové soubory (copyfile)
v katalogu je návěští první diskety, ostatní mají ASCII kód posledního znaku
o 1 vyšší než předchozí disketa; pouze externí soubory
přípona: 2. a 3. znak jsou v rozsahu '00'..'49'
■ Textový soubor ...... procedury pro zpracování textu edittxt, printtxt
■ Externí program ..... obecné volání programu exec
■ Projektový soubor ... katalogizace subúloh (subúloha není v podadresáři)
NázÚlohy: volající, call(NázSouboru): volaná úloha
Sound
OŠETŘENÍ KLÁVESNICE
Speciální funkce
SPECIÁLNÍ FUNKCE
Speciální funkce v sestavě
SPECIÁLNÍ FUNKCE V SESTAVĚ
Speciální funkce v transformaci
SPECIÁLNÍ FUNKCE V TRANSFORMACI
Speciální operátory
SPECIÁLNÍ OPERÁTORY
Speciální příkazy
SPECIÁLNÍ PŘÍKAZY A FUNKCE
SQL
SQL
Tato část nápovědy poskytuje ucelenou úvodní informaci o podpoře
komunikace PC FANDu s SQL serverem.
Rozšíření syntaxe příkazů.
Základní princip komunikace SQL serveru s klientem je následující:
PC FAND (klient) vyšle příkaz na výběr množiny vět z tabulky. SQL
server provede výběr vět(y) a při výběru automaticky provádí
optimalizaci vyhledávacího výrazu. Vybraná množina vět je předána
klientu (proměnné typu záznam) a může být zpracována pomocí
standardního příkazu PC FANDu. Po změně je upravená proměnná typu
záznam přenesena a zapsána do databáze SQL serveru.
V prostředí PC FANDu lze tabulku SQL serveru zpřístupnit pomocí
souboru typu "SQL". SQL server pracuje s tabulkou pomocí množinových
operací a neumožňuje identifikaci vět pomocí čísla věty. Větu lze
identifikovat pouze pomocí jednoznačného klíče. Toto omezení se
projevuje například při editaci souboru - editovat lze soubor pouze dle
jednoznačného klíče.
Deklarace souboru typu SQL.
Soubor typu SQL je definován pomocí přípony ".SQL" názvu kapitoly
"F". Typ uložených údajů musí být slučitelný s existující tabulkou na
SQL serveru. Délka údaje nemusí přesně odpovídat, ale různé délky a
přesnosti mohou způsobit ztrátu dat.
Podporované typy:
PC FAND SQL
F,R int, smallint, tinyint. Myšlená řádová čárka ve Fandu.
float, real. Skutečná řádová čárka ve Fandu.
A,N char(n) nebo varchar(n). Při různé délce se dle zarovnání
ve Fandu odříznou a doplňují vedoucí nebo ukončující znaky.
D datetime, smalldatetime (smalldatetime může vést ke ztrátě
přesnosti).
B bit.
T text. Maximálně 65 KB.
Soubor typu SQL je obdobou indexového souboru. Podporuje více
vlastních klíčů i parametrický klíč. Při změně hodnoty údaje
parametrického souboru je prováděna změna ve všech větách souboru.
Text delší než 32 KB lze přenést pomocí příkazů sqlrdtxt a sqlwrtxt.
Hodnota NULL.
PC FAND nepodporuje hodnotu null, vyjímkou je pouze typ D a T. U
ostatních typů nelze hodnotu null přenést a platí následující omezení.
Hodnota představuje nevyplněný údaj. Při přenosu z SQL serveru je
hodnota null převedena na 0, resp. prázdný řetězec.
Klíčové údaje nemohou obsahovat hodnotu null. Pro PC FAND by věty
s tímto klíčem byly neviditelné. V datovém editoru by věty obsahující
tuto hodnotu byly zobrazeny jako smazané a obarveny modrou barvou ( dle
instalace ). Čtení a následný zápis věty z PC FANDu změní hodnoty null
na hodnotu 0, resp. ''.
Navázání spojení s SQL serverem.
Soubor typu SQL může být lokální nesdílený soubor (v katalogu
nevyplněný údaj návěští), sdílený soubor (v údaji návěští znak "#").
Uvedením "#SQL" do údaje návěští definujeme umístění souboru na SQL
serveru.Zda bude soubor umístěn na SQL serveru,je určeno hodnotou údaje
návěští v okamžiku kompilace úlohy. Pozdější změna údaje návěští
neprovede změnu umístění souboru: tabulka SQL serveru <->
sdílený/nesdílený soubor. Provedené změny umístění souboru zplatní
pouze příkaz resetcatalog.
Při startu úlohy je vyhledávána hodnota "#SQL" v údaji návěští
katalogu. V případě nalezení následuje pokus o navázání komunikace
s SQL serverem. Při neúspěchu navázat spojení je vyvolána běhová chyba
a chod aplikace je ukončen. V případě úspěšného spojení se pokračuje
v provádění aplikace.
Spojení s SQL serverem musí být vyvoláno v okamžiku startu úlohy.
Nelze jej vyvolat zápisem "#SQL" do katalogu a vyvoláním příkazu
resetcatalog.
██ Rozšíření syntaxe příkazů PC FANDu pro práci s SQL serverem.
keyof ( RecordProměnná[/NázevKlíče] ) : string
keyof ( SOUBOR[/NázevKlíče],SeznamKlíčÚdajů ) : string
edreckey :string
isdeleted ( RecordProměnná ) : boolean
linkrec (RecordProměnná1,[NázevSpojení(]RecordProměnná2[)])
readrec ( RecordProměnná[/NázevKlíče],
[OperaceSrovnání] TextVýraz|ČíselnýVýraz )
Při neexistenci čtené věty je proměnná typu věta vynulována a
označena jako neplatná.
writerec ( RecordProměnná[/NázevKlíče],TextVýraz|ČíselnýVýraz [,+] )
deleterec ( NázevSouboru[/NázevKlíče],TextVyraz|ČíselnýVýraz[,+] )
sql(TextovýVýraz)[:real]
Provedení SQL příkazu SQL serverem. Lze použít pro vyvolání
uložených procedur a příkazů, které nevracejí tabulku. Příkaz použitý
jako funkce vrací chybový návratový kód a negeneruje běhovou chybu.
Příkaz použitý jako procedura generuje v případě chyby na SQL serveru
běhovou chybu.
forall RecordProměnná in sql(TextovýVýraz) do Příkaz
Provedení SQL příkazu uloženého v TextovýVýraz generujícího
výstupní tabulku SQL serverem. Sloupce tabulky musí odpovídat deklaraci
údajů v RecordProměnné, vztahující se na popis souboru typu "SQL".
Výsledkem SQL příkazu může být pouze jedna tabulka, zpracovaná forall
cyklem.
Příkaz break ukončí provádění cyklu. Tabulka je PC FANDem dočtena
do konce.
login( TextVýraz1,TextVýraz2 )
Explicitní přihlášení k SQL serveru jako uživatel s jménem
TextVýraz1 a heslem TextVýraz2. Není vytvořeno další spojení, ale jde o
odhlášení a nové přihlášení.
Příkaz nelze vyvolat v okamžiku provádění akce, např. v exit
proceduře, forall in sql atd.
Příkaz se provádí, jen když existuje spojení, tj. v okamžiku
kompilace je v údaji návěští katalogu uvedeno "#SQL".
Pokud katalog úlohy obsahuje návěští "#SQL", FAND automaticky
vysílá login při překladu hlavní úlohy. Jméno a heslo uživatele je
čteno z kapitoly U).
sqlrdtxt(NázevBinSouboru,NázevDatSouboru[/Klíč],Údaj,TextVýraz)
sqlwrtxt(NázevBinSouboru,NázevDatSouboru[/Klíč],Údaj,TextVýraz)
Čtení či zápis údaje Údaj typu Text z tabulky NázevDatSouboru SQL
serveru. Údaj je uložen do binárního souboru NázevBinSouboru. Věta je
identifikována pomocí klíče uloženého v TextVýraz.
Maximální délka textu je 1800 MB.
resetcatalog
Příkaz zajišťuje zohlednění změn v katalogu. Uzavírá všechny
soubory mimo aktivních projektů. Změní umístění souborů ( tabulka SQL
serveru <-> sdílený/nesdílený soubor) dle hodnoty údaje návěští.
Příkaz edit
Při editaci tabulky je vždy použit pracovní index. Na počátku
editace FAND čte hodnoty klíčových údajů pro vytvoření pracovního
indexu. Po ukončení výběru je pracovní index setříděn. Při vlastní
editaci FAND zasílá příkaz pro výběr, zápis a mazání jednotlivých vět
identifikovaných dle hodnoty pracovního indexu.
Pro SQL soubory nelze zadávat následující parametry : journal=,
refresh=, saveafter=, owner=, recno=, irec=.
Blokování vět realizované při sdílené editaci údaje není
realizováno. Změněná věta je ukládána až při ukončení editace věty.
Před vlastním zápisem se provádí kontrolní čtení věty, a porovnává se s
původním obsahem před začátkem editace. Při nerovnosti následuje
hlášení o změně věty, zobrazení aktuálního načteného stavu a uživatel
může pokračovat v editaci.
Při editaci údaje je chyba SQL serveru hlášena pouze číslem, ale
nevyvolá běhovou chybu a ukončení FANDu. Časté chyby tvoří duplicita
klíče a vkládání nepovolené hodnoty.
Vstupní podmínka.
Vstupní výběrová podmínka zadávaná pomocí logického výrazu je
realizovaná na lokální stanici (z SQL souboru je přenesena celá
tabulka). Výběr vět na SQL serveru lze realizovat zadáním textového
výrazu namísto logické podmínky u kapitol "R", "M" a příkazů edit,
graph, forall, report. Výběrový výraz odpovídá klauzuli WHERE příkazu
SELECT.
Třídění a automatické třídění reportu a merge.
Třídění je realizováno na SQL serveru. Součástí řídících a
třídících údajů nemůže být vypočítaný údaj. Při použití vypočítaného
údaje SQL server generuje běhovou chybu neznámého názvu údaje.
Transformace
Pro vstupní i výstupní soubory je vytvořen samostatný proud.
Vstup je realizován jako výběr vět příkazem SELECT. Výstup je
realizován komunikačním serverem jako INSERT nebo bulkcopy. Chyby
vznikající při zápisu jsou komunikačním serverem kumulovány a po
ukončení transformace předány FANDu, zobrazeny a následně je
generována běhová chyba.
Vytváření aplikace pro různá prostředí.
Direktivy kompilátoru umožňují podmíněný překlad, tj. vypuštění
části zdrojového kódu. V praxi lze například jednu aplikaci vytvářet
pro použití s SQL serverem, nebo jako klasickou aplikaci se sdílením
souborů.
Před použitím direktiv si pečlivě prostudujte omezení.
Příkladem použití může být vstupní podmínka. U SQL verze je výhodnější
zadávat podmínku v textovém výrazu a pro klasickou verzi je nutno
zadat logický výraz.
Příklad:
edit(ORGANIZ,U=ORGANIZ_FIRMA,cond=(
{$ifdef S} 'Firma like "'+trailchar(' ',PARAMADR.Text30)+'%"'
{$elsif} Firma =~ PARAMADR.Text30
{$endif}));
SQL příkazy a provoz SQL aplikace bez SQL serveru.
Popsané příkazy lze používat i v aplikačních programech
pracujících se sdílenými soubory. Vyjímkou jsou příkazy :
sql, forall rp in sql, sqlrdtxt, sqlwrtxt a textově zadávaná vstupní
podmínka.
Tyto příkazy jsou ignorovány. Při vytváření aplikace používané pro
práci s SQL serverem i bez SQL serveru v prostředí lokální sítě
doporučujeme programovat univerzální projekt a využít direktiv
kompilátoru pro vložení odpovídajících příkazů.
Příklady použití souborů typu "SQL" v PC FANDu.
■ Vstupní a výstupní soubor reportu, merge, copyfile a writerec,
readrec, deleterec, edit, forall, konstrukce NadřazenýSoubor.Údaj a
ParametrSoubor.Udaj...
Omezení
■ Soubory typu SQL nelze použít v příkazech pracujících s číslem věty
■ DML nepodporuje přístup k souborům typu SQL. Lze realizovat pomocí
knihovny funkcí dodávané společně s SQL serverem
■ Copyfile z/do binárního souboru není povoleno
■ Násobný výstup #O*_ nelze aplikovat při vstupním souboru typu SQL
■ Transformace "na místě" není dovolena
■ SQL soubor lze editovat pouze dle jednoznačného vlastního klíče
■ Aditivní přiřazení ":=" není přípustné pro SQL soubor
■ Přerušení vytváření reportu stiskem klávesy ESC přeruší vytváření
sestavy, ale tabulka z SQL serveru je čtena až do konce
■ SOUBOR.nrecs:= nelze použít
■ nelze použít owner=ProměnnáTypuIndex
Převod do SQL FANDu
Převod hotových aplikačních programů na platformu klient-server
je umožněn s minimálním množstvím změn v zdrojovém kódu. Jde především
o náhradu příkazů realizujících přímý přístup a používajících
identifikační číslo věty tvarem využívajícím identifikaci věty dle
jednoznačného klíče.
Prvním krokem by měla být analýza datové základny a změna
duplicitních klíčů na jednoznačné. Většina indexovaných souborů má
primární klíč jednoznačný a alternativní klíč duplicitní.
SQL server SYBASE neumožňuje indexaci dle vypočítaného údaje,
údaje typu bit (B) a text (text) ! V deklaraci souboru typu SQL lze
definovat klíč s vypočítaným údajem i typem B.
V některých případech jsou alternativní klíče používány pouze pro
zrychlení výběru a dle alternativního klíče není prováděna editace. V
tomto případě postačí definice klíčů na SQL serveru a v PC FANDu není
nutno tyto klíče definovat. Výběr zadaný textovým výrazem je zaslán na
server, který provede výběr dle optimálního indexu.
V případě požadavku editace dle klíče je nutno klíč doplnit o
jednoznačný primární klíč.
Příklad klíče adresáře:
#K @ Cislo; { Primární klíč }
ORGANIZ_MISTO(@) ~Misto,Cislo; { Alternativní klíče }
ORGANIZ_PRIJM(@) ~Jmeno,Cislo;
Po opravě klíčů změňte typ souboru na "SQL". Kontrola pomocí
překladu odhalí především používání identifikátoru čísla věty, které
je nutno nahradit identifikací klíčem.
Dále převeďte vstupní podmínky do textového tvaru. Tuto část není
možno odladit bez propojení s SQL Serverem. Textové podmínky nejsou PC
FANDem kontrolovány a je nutno je ověřit provedením.
Náročnější částí je využití a definice uložených procedur,
triggerů atd. Programování SQL serveru je hlavním nástrojem pro zvýšení
bezpečnosti a rychlosti zpracování.
SqlRdTxt (SQL)
ODBC
SqlWrTxt (SQL)
ODBC
Sqr
ARITMETICKÉ FUNKCE
Sqrt
ARITMETICKÉ FUNKCE
Str
KONVERZNÍ TEXTOVÉ FUNKCE
Funkce val převede text na číslo. Lze ji použít v kapitolách F,M,R,P,D.
Pro převod textového zápisu datumu nebo(a) času na číslo použijte ValDate.
██ syntaxe : VAL ( TextVýraz ) : real
──────────── (Funkce v L kapitole)
Převod číselného výrazu na text.
██ syntaxe 1: STR ( ČísVýraz, Šířka, PočetDesMíst ) : string
2: STR ( ČísVýraz, Maska ) : string
■ Šířka .......... Číselný výraz, celková délka výsledného řetězce.
■ PočetDesMíst ... Číselný výraz, počet míst za desetinnou tečkou.
Dle počtu des. míst dojde k případnému zaokrouhlení.
Naopak při přetečení před des. tečkou je výsledkem
řetězec v plné délce.
Je-li -1, použije se exponenciální tvar.
■ Maska ... Textový výraz. Následující znaky mají speciální význam.
',' desetinná čárka (potlačena, pokud před ní nebudou cifry)
'.' tečka oddělující skupiny cifer
'_' významné cifry, znaménko zleva nebo mezera
'-' mezery, pokud je číslo kladné
'*','0' významné cifry nebo znaménko zleva. Všechny '_' vpravo
od '*','0' budou nahrazeny cifrou. Pokud je číslo nenulové
budou cifry vystupovat počínaje nejpozději prvním místem
před čárkou. Místa za čárkou musí být ve výrazu jako zlomek.
Nemaskované cifry resp. znaménko se připojí zleva (přetečení).
■ Kapitoly ........ F,M,R,P,D
zpracování textu
░░░░░░░░░░░░ ██ str(625.128,5,2) = '625.13'
░░příklady░░ str(625.128,1,0) = '625'
░░░░░░░░░░░░ str(625,6,0) = ' 625'
str(1234.25,'__.___,__') = ' 1.234,25'
str(1234,'000.000') = '001.234'
Stránkování
STRÁNKOVÁNÍ V SESTAVĚ
StrDate
AKTUÁLNÍ DATUM A ČAS, KONVERZE
String
TYPY VÝRAZŮ
Struktura projektu
STRUKTURA PROJEKTU
Style
PARAMETRY AUTOMATICKÉ SESTAVY
Subdir
FYZICKÉ ZÁLOHOVÁNÍ
Sum
SUM - duplicitní klíčové slovo
■ sum(ČísVýraz) ... funkce typu real, kumulace číselného výrazu za skupinu
vět
... PopisnáČástÚrovně: součtování v sestavě
... PříkazováČástVýstupu: součtování v transformaci
... edit: součtování v automatických sestavách
Syntaxe (PROLOG)
Syntaxe PC FAND PROLOGu
Syntaktické diagramy
SYNTAKTICKÉ DIAGRAMY
Syntaktické diagramy popisují formální syntaxi jednotlivých kapitol projektu.
V zápisu se používají následující speciální znaky:
■ { } kladná iterace, konstrukce uvnitř složených závorek se
může jednou nebo vícekrát opakovat.
■ [ ] nepovinný výskyt, konstrukce uvnitř hranatých závorek se
vyskytuje jednou nebo vůbec.
■ | alternativa, vyskytne se buď konstrukce vlevo od svislé
čáry nebo konstrukce vpravo od ní.
■ [{ }] iterace, konstrukce uvnitř závorek se může libovolně-krát
opakovat nebo může být vynechána.