====== Foreign Sync ======
Aktuálna verzia je **1.27** z 5.8.2014
===== Zoznam zmien =====
FIXME
===== Obslužné funkcie =====
Obslužné funkcie a procedúry sú určené napr. pre prihlásenie a podobne.
==== FS_VERSION ====
* ''**FUNCTION FS_VERSION()**''
* ''RETURNS //VARCHAR(30)//''
Táto funkcia vráti aktualnu verziu FS databázy.
SELECT FS_VERSION();
----
==== FS_RESULT ====
* ''**PROCEDURE FS_RESULT()**''
Táto procedúra generuje jednoriadkovú tabuľku podľa aktuálneho stavu poslednej chyby.
\\ Ak nenastala žiadna chyba, potom stĺpec ``status`` bude obsahovať hodnotu ''**1**'' a stĺpec ``info`` bude obsahovať text ''**ok**''.
\\ Ak nastala nejaká chyba, potom stĺpec ``status`` bude obsahovať hodnotu ''**0**'', stĺpec ``info`` bude obsahovať text ''**err**'' a stĺpec ``error`` bude obsahovať text chyby.
Stĺpec ``data`` je určený ako dodatkový parameter pre niektoré procedúry, napr. procedúra ''fs_changelog_status()'' do tohoto stĺpca ukladá informáciu o tom, že či je nutné robiť aplikáciu synchronizačného logu alebo nie.
:!: Ak je pri nejakej nižšie popísanej procedúre napísané, že výsledok procedúry je ''**SELECT //FS_RESULT//**'', potom môžete na výstupe očakávať práve takúto jednoriadkovú tabuľku, z ktorej sa dozviete, či bola procedúra úspešne ukončená a ak nebola, potom sa dozviete aj chybovú hlášku.
Príklad: pokúsime sa prihlásiť pomocou chybného ``hash_idf``, ktoré nepatrí momentáne žiadnemu zariadeniu.
mysql> call fs_select_device("ddf24");
+--------+-------+----------------------------------------------------+-------+
| status | info | error | data |
+--------+-------+----------------------------------------------------+-------+
| 0 | error | Zadany hash nepatri ziadnemu aktivnemu zariadeniu! | NULL |
+--------+-------+----------------------------------------------------+-------+
Príklad: teraz sa pokúsime sa prihlásiť pomocou funkčného ``hash_idf``.
mysql> call fs_select_device("kwef7dv");
+--------+------+-------+-------+
| status | info | error | data |
+--------+------+-------+-------+
| 1 | ok | NULL | NULL |
+--------+------+-------+-------+
----
==== FS_ERROR ====
* **''FUNCTION FS_ERROR()''**
* ''RETURNS //SMALLINT//''
Táto funkcia vráti hodnotu ''**1**'', ak nastala nejaká chyba, alebo ''**0**'', ak žiadna chyba nenastala. \\ Text chyby sa dá zistiť pomocou funkcie ''fs_last_error()''.
SELECT FS_ERROR();
----
==== FS_LAST_ERROR ====
* ''**FUNCTION FS_LAST_ERROR()**''
* ''RETURNS //VARCHAR(255)//''
Táto funkcia vráti text poslednej chyby.
SELECT FS_LAST_ERROR();
----
==== FS_GET_DEVICE_LAST_ACCESS ====
* ''**FUNCTION FS_GET_DEVICE_LAST_ACCESS()**''
* ''IN ``_DEVICE_ALIAS`` //VARCHAR(50)//''
* ''RETURNS //DATETIME//''
* od verzie 1.27
Funkcia pre zistenie času posledného prístupu zariadenia podľa jeho aliasu ``_DEVICE_ALIAS``.
SELECT FS_GET_DEVICE_LAST_ACCESS("system24");
----
==== FS_SELECT_DEVICE ====
* ''**PROCEDURE FS_SELECT_DEVICE()**''
* ''IN ``_DEVICE_HASH`` //VARCHAR(50)//''
* ''SELECT //FS_RESULT//''
Procedúra, pomocou ktorej sa treba prihlásiť, ak chcete vykonávať synchronizáciu alebo aplikovať synchronizačný log (changelog). Ako vstup sa používa parameter ``_DEVICE_HASH``, ktorý je pridelený vašemu zariadeniu. Výsledok procedúry je select fs_result.
CALL FS_DELECT_DEVICE("d86dkh213");
----
==== FS_SELECT_DEVICE_QUICK ====
* ''**PROCEDURE FS_SELECT_DEVICE_QUICK()**''
* ''IN ``_DEVICE_HASH`` //VARCHAR(50)//''
* ''SELECT //FS_RESULT//''
Skoro rovnaká procedúra ako [[#FS_SELECT_DEVICE|FS_SELECT_DEVICE()]], ale nerobí zmeny v tabuľke zariadení, takže by nemala čakať na uzamknutie inou transakciou.
\\ Je vhodné ju používať pre rýchlu prácu so zámkom.
----
==== FS_FREE ====
* ''**PROCEDURE FS_FREE()**''
* ''SELECT //FS_RESULT//''
Procedúra určená pre ukončenie spojenia. Táto procedúra vyčistí všetky dočasné premenné a tabuľky a pripraví databázu pre nové spojenie.
:!: Túto procedúru použite po skončení činnosti, napr. po pridaní záznamov do logu alebo po aplikácii synchronizačného logu.
CALL FS_FREE();
----
===== Manipulačné funkcie =====
FIXME
Manipulačné funkcie sú určené pre manipuláciu s dátami, napr. pridávanie, zmeny a podobne.
===== Changelog funkcie =====
FIXME
Tieto funkcie sú určené pre zisťovanie zmien v synchronizačnej databáze.
===== Príklady =====
===== Register =====
===== Lock - práca so zámkom =====
==== Lock - procedúry a funkcie ====
==== Simple lock - procedúry a funkcie ====