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.