- Created by D2000 Dev Team, last modified on Aug 09, 2022
Akcia SQL_CONNECT
Funkcia
Akcia nadviaže spojenie s databázou (otvorenie databázy).
Deklarácia
SQL_CONNECT dbObjIdent, handleIdent_Int, retCodeIdent_Int [TRANS _transHandle_Int] SQL_CONNECT connectString, handleIdent_Int, retCodeIdent_Int ON dbManIdent
Parametre
dbObjIdent | in | Odkaz na objekt typu Databáza alebo Tabuľka. |
connectString | in | Identifikátor typu Text, alebo textová konštanta obsahujúca pripájací string na databázu. |
dbManIdent_Int | in | Odkaz na objekt typu Proces (D2000 DBManager), ktorý bude realizovať požadované príkazy. |
handleIdent_Int | out | Identifikátor typu Int - jednoznačné číslo (handle) spojenia. |
retCodeIdent_Int | out | Identifikátor typu Int- návratový kód. |
transHandle_Int | in | Identifikátor typu Int - jednoznačné číslo (handle) spojenia s databázou. |
Návratový kód
Hodnota parametra retCodeIdent_Int - pozri tabuľku chybových stavov. Je možné získať rozšírenú informáciu o chybe.
Popis
Identifikátor pre číslo spojenia, alebo handle sa používa pri ďalšej práci s otvorenou databázou. Návratový kód popisuje úspešnosť akcie (_ERR_NO_ERROR).
Každé otvorenie databázy skriptom má pridelené jednoznačné číslo (identifikátor, handle). Toto je potrebné po ukončení práce s databázou zatvoriť akciou SQL_DISCONNECT. Ak po skončení skriptu nebudú všetky databázy uzatvorené volaním akcie SQL_DISCONNECT (tie, ktoré skript pri svojej činnosti otvoril), budú interne automaticky zatvorené. Handle platí len v rámci skriptu, ktorý databázu otvoril.
Akcia SQL_CONNECT má vždy charakter otvorenia databázy (nie tabuľky na rozdiel od akcií DB_CONNECT a PG_CONNECT), lebo prostredníctvom takto vytvoreného spojenia je možné pracovať s celou databázou (všetkými v nej obsiahnutými tabuľkami). Ak sa na otvorenie použije objekt typu Tabuľka, interne bude databáza otváraná prostredníctvom jeho rodiča, teda objektu typu Databáza.
Otváranú databázu je možné určiť objektom typu Databáza alebo Tabuľka (prvý spôsob zápisu) alebo tzv. pripájacím stringom (druhý spôsob zápisu).
Pri prvom spôsobe nie je potrebné zadať meno procesu D2000 DBManager, ktorý bude následné príkazy interpretovať, lebo toto je dané rodičovským vzťahom medzi objektom typu Databáza a týmto procesom. Akcia SQL_CONNECT využije z konfigurácie objektu typu Databáza konfiguračné parametre Užívateľ, Heslo a DSN.
Druhý spôsob zápisu umožňuje vytvoriť spojenie s databázou na základe znalosti Mena, Hesla a DSN pomocou tzv. pripájacieho stringu (parameter connectString). Jeho obsah je nasledovný:
"UID=meno užívateľa;PWD=heslo užívateľa;DSN=meno DSN".
Kľúčové slová UID, PWD a DSN označujú hodnoty jednotlivých parametrov. Ak niektorý z nich nie je uvedený, bude nahradený prázdnym reťazcom. Pri tomto spôsobe je nutné špecifikovať odkazom proces D2000 DBManager, ktorý bude zabezpečovať vykonávanie jednotlivých príkazov. Ďalšie voliteľné parametre pripájacieho stringu sa týkajú optimalizácie a sú popísané v kapitole Transakčná práca s databázou.
V prípade otvárania databázy prostredníctvom objektu typu Databáza alebo Tabuľka, je možné uviesť parameter transHandle_Int. Týmto budú všetky akcie SQL_* vykonávané v rámci určitého pripojenia. Toto pripojenie je potrebné najprv vytvoriť akciou DB_TRANS_OPEN.
Ak klauzula TRANS nie je uvedená, použije sa automatické pripojenie.
V prípade otvárania databázy prostredníctvom pripájacieho stringu (parameter connectString), proces D2000 DBManager vždy vytvára nové pripojenie na databázu. Ak sa v pripájacom stringu nachádza kľúčové slovo ACD (Auto Commit Disable), je v rámci nového pripojenia vypnutý režim Auto Commit, teda je potrebné "commit" vykonať manuálne pomocou SQL príkazu COMMIT.
Každé otvorenie databázy skriptom má pridelené jednoznačné číslo (identifikátor, handle). Toto je potrebné po ukončení práce s databázou zatvoriť akciou SQL_DISCONNECT. Ak po skončení skriptu nebudú všetky databázy uzatvorené volaním akcie SQL_DISCONNECT (tie, ktoré skript pri svojej činnosti otvoril), budú interne automaticky zatvorené. Handle platí len v rámci skriptu, ktorý databázu otvoril.
Akcia SQL_CONNECT má vždy charakter otvorenia databázy (nie tabuľky na rozdiel od akcií DB_CONNECT a PG_CONNECT), lebo prostredníctvom takto vytvoreného spojenia je možné pracovať s celou databázou (všetkými v nej obsiahnutými tabuľkami). Ak sa na otvorenie použije objekt typu Tabuľka, interne bude databáza otváraná prostredníctvom jeho rodiča, teda objektu typu Databáza.
Otváranú databázu je možné určiť objektom typu Databáza alebo Tabuľka (prvý spôsob zápisu) alebo tzv. pripájacím stringom (druhý spôsob zápisu).
Pri prvom spôsobe nie je potrebné zadať meno procesu D2000 DBManager, ktorý bude následné príkazy interpretovať, lebo toto je dané rodičovským vzťahom medzi objektom typu Databáza a týmto procesom. Akcia SQL_CONNECT využije z konfigurácie objektu typu Databáza konfiguračné parametre Užívateľ, Heslo a DSN.
Druhý spôsob zápisu umožňuje vytvoriť spojenie s databázou na základe znalosti Mena, Hesla a DSN pomocou tzv. pripájacieho stringu (parameter connectString). Jeho obsah je nasledovný:
"UID=meno užívateľa;PWD=heslo užívateľa;DSN=meno DSN".
Kľúčové slová UID, PWD a DSN označujú hodnoty jednotlivých parametrov. Ak niektorý z nich nie je uvedený, bude nahradený prázdnym reťazcom. Pri tomto spôsobe je nutné špecifikovať odkazom proces D2000 DBManager, ktorý bude zabezpečovať vykonávanie jednotlivých príkazov. Ďalšie voliteľné parametre pripájacieho stringu sa týkajú optimalizácie a sú popísané v kapitole Transakčná práca s databázou.
V prípade otvárania databázy prostredníctvom objektu typu Databáza alebo Tabuľka, je možné uviesť parameter transHandle_Int. Týmto budú všetky akcie SQL_* vykonávané v rámci určitého pripojenia. Toto pripojenie je potrebné najprv vytvoriť akciou DB_TRANS_OPEN.
Ak klauzula TRANS nie je uvedená, použije sa automatické pripojenie.
V prípade otvárania databázy prostredníctvom pripájacieho stringu (parameter connectString), proces D2000 DBManager vždy vytvára nové pripojenie na databázu. Ak sa v pripájacom stringu nachádza kľúčové slovo ACD (Auto Commit Disable), je v rámci nového pripojenia vypnutý režim Auto Commit, teda je potrebné "commit" vykonať manuálne pomocou SQL príkazu COMMIT.
Príklad
Príklad práce s databázou (akcie SQL_...).
INT _handle ; handle to database INT _retCode ; return code TEXT _name ; product name TEXT _type ; product type ; parametrized SQL command TEXT _sql = "SELECT Name, Type FROM Products WHERE ID>= #PAR# AND ID<= #PAR#" SQL_CONNECT MyDatabase, _handle, _retCode SQL_PREPARE _handle, _retCode, _sql BINDOUT _name, _type SQL_BINDIN _handle, _retCode, 1, 100 ; read all products between 1 and 100 DO_LOOP SQL_FETCH _handle, _retCode EXIT_LOOP _retCode # _ERR_NO_ERROR ; data processing goes here END_LOOP SQL_FREE _handle SQL_DISCONNECT _handle
Súvisiace odkazy
Súvisiace stránky:
Add Comment