Prenos handle na databázové spojenie medzi ESL skriptami je zabezpečený pomocou RPC procedúr. V deklarácii RPC procedúry je potrebné označiť parameter reprezentujúci handle na databázové spojenie, vymenovaným typom DB_HANDLE. Algoritmus je podmienený existenciou databázového spojenia. Ak handle na databázové spojenie je neplatná hodnota alebo ukazuje na neexistujúce databázové spojenie, algoritmus skončí s chybou.
Vymenovaný typ DB_HANDLE je typu INT.
Deklarácia RPC procedúry:
RPC PROCEDURE ProcName [([IN] DB_HANDLE _db_handle[,_db_handle2, ...] [IN] DB_HANDLE _db_handle3]...)] ;akcie END ProcName |
_db_handle, ktoré sa môže prenášať medzi ESL skriptami vzniká akciami: DB_CONNECT, PG_DISCONNECT, SQL_CONNECT, DB_TRANS_OPEN.
Poznámky:
INT _db_handle _db_handle := 5 CALL [objIdent] INSERT (_db_handle) ON procIdent |
****************** ; volaný ESL skript RPC PROCEDURE InsertToDB(DB_HANDLE _handle) ..... END InsertToDB *************** ; volajúci ESL skript INT _db_handle CALL[...] InsertToDB(_db_handle) ASYNC ON .... ; Po takomto volaní, handle na databázové spojenie v tomto skripte zaniká, vlastníkom sa stáva volaný ESL skript ***************** |
****************** ; volaný ESL skript RPC PROCEDURE InsertToDB(IN DB_HANDLE _handle) ..... END InsertToDB *************** ; volajúci ESL skript INT _db_handle CALL[...] InsertToDB(_db_handle) ON .... ; po takomto volaní databázové spojenie v tomto skripte zaniká, vlastníkom sa stáva volaný ESL skript *************** |
****************** ; volaný ESL skript RPC PROCEDURE InsertToDB(DB_HANDLE _handle) ..... END InsertToDB *************** ; volajúci ESL skript INT _db_handle CALL[...] InsertToDB(_db_handle) SYNC ON .... ; po takomto volaní, vlastníkom databázového spojenia ostáva volajúci ESL skript *************** |