- Vytvoril D2000 Dev Team na okt 12, 2017
Akcia DB_UPDATE a DBS_UPDATE
Funkcia
Modifikácia existujúceho riadku (riadkov) v databáze.
Deklarácia
DB_UPDATE handleIdent_Int, rowIdent, retCodeIdent_Int [WHERE strExpression_Str [BINDIN varIdent1, varIdent2, ... ]] [ORAHINT hintIdent_Str] DB_UPDATE handleIdent_Int, rowIdent, retCodeIdent_Int [WHERE strExpression_Str [BINDIN structRowIdent]] [ORAHINT hintIdent_Str] DBS_UPDATE dbObjIdent, rowIdent, retCodeIdent_Int [WHERE strExpression_Str [BINDIN varIdent1, varIdent2, ... ]] [TRANS transHandle_Int] [ORAHINT hintIdent_Str] DBS_UPDATE dbObjIdent, rowIdent, retCodeIdent_Int [WHERE strExpression_Str [BINDIN structRowIdent]] [TRANS transHandle_Int] [ORAHINT hintIdent_Str]
alebo
DB_UPDATE handleIdent_Int, structIdent, retCodeIdent_Int [ORAHINT hintIdent_Str] DBS_UPDATE dbObjIdent, structIdent, retCodeIdent_Int [TRANS transHandle_Int] [ORAHINT hintIdent_Str]
Parametre
handleIdent_Int | in | Identifikátor typu Int - (handle) spojenia s databázou (DB_CONNECT). |
dbObjIdent | in | Odkaz na objekt typu Tabuľka. |
rowIdent | in | Identifikátor jedného riadku štruktúry (vkladaný riadok). |
structIdent | in | Identifikátor celej štruktúry (vkladané riadky). |
retCodeIdent_Int | out | Návratová hodnota typu Int - úspešnosť akcie. |
strExpression_Str | in | Výraz typu String, ktorý identifikuje modifikované riadky. Ak je výraz parametrizovaný, tak kľúčové slovo BINDIN a hodnoty parametrov (structRowIdent alebo varIdent1, varIdent2, ...) sú povinné. |
varIdent1, varIdent2, ... |
in | zoznam objektov, konštánt alebo lokálnych premenných, ktoré špecifikujú hodnoty parametrov parametrizovaného SQL výrazu strExpression_Str. |
structRowIdent | in | Odkaz na riadok lokálnej premennej typu Record alebo na riadok štruktúrovanej premennej. Hodnoty riadkov špecifikujú hodnoty parametrov parametrizovaného SQL výrazu strExpression_Str. |
transHandle_Int | in | Identifikátor Pripojenia na databázu. |
hintIdent_Str | in | Výraz typu String, ktorý definuje Oracle SQL hint. Ten je použitý ako inštrukcia pre optimalizátor výkonu SQL príkazu.
Zapisuje hodnotu bez obaľujúcich znakov /*+ <orahint>
*/. Príklad použitia je uvedený tu. |
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
Databáza musí byť otvorená s prístupom _DB_MODIFY. Podobne ako pri akcii
DB_READ ( DBS_READ), môžu byť modifikované riadky určené dvoma
spôsobmi:
Výhodou akcie DBS_UPDATE pri práci s tabuľkou je možnosť vynechať jej otvorenie a zatvorenie (jednoduchší zápis).
Pre D2000 verziu 5: Nevýhoda akcie DBS_UPDATE je v rýchlosti. Každé volanie akcie DBS_UPDATE má za následok, v rámci jej obsluhy v procese D2000 DBManager, nutnosť databázu otvoriť a následne zatvoriť, čo môže byť časovo náročná činnosť a predstavuje z databázového hľadiska pomerne neštandardný postup. Nutnosť otvárania a zatvárania databázy je možné potlačiť v rámci transakčného spracovania tak, že za príkaz uvedieme parameter TRANS.
Pre D2000 verziu 6 a vyššie: Optimalizácia procesu D2000 DBManager (recyklovanie spojení, predpripravené spojenia) spôsobila, že akcia DBS_UPDATE sa vykoná rovnako rýchlo ako akcia DB_UPDATE a navyše sa ušetrí čas potrebný na spracovanie explicitného príkazu na otvorenie databázy DB_CONNECT.
- Nastavením kľúčovej položky v riadku štruktúry (
rowIdent
), resp. v celej štruktúre (structIdent
). Nastavenie musí byť realizované pred akciou DB_UPDATE. Položka musí byť označená ako kľúč pri definícii objektu typu Databáza. Potom sa v databáze hľadá riadok, ktorý má zhodnú hodnotu pre kľúčovú položku a tento je modifikovaný. Vkladaný riadok alebo štruktúra musia mať korektný typ štruktúry. Všetky položky každého vkladaného riadku musia mať platné hodnoty. - Hodnotou výrazu
strExpression_Str
, ktorý predstavuje klauzulu WHERE pre SQL príkaz UPDATE, ktorý vykonáva zmenu databázy. V tomto prípade je hodnota kľúčovej položky v štruktúre nepoužitá.
Výhodou akcie DBS_UPDATE pri práci s tabuľkou je možnosť vynechať jej otvorenie a zatvorenie (jednoduchší zápis).
Pre D2000 verziu 5: Nevýhoda akcie DBS_UPDATE je v rýchlosti. Každé volanie akcie DBS_UPDATE má za následok, v rámci jej obsluhy v procese D2000 DBManager, nutnosť databázu otvoriť a následne zatvoriť, čo môže byť časovo náročná činnosť a predstavuje z databázového hľadiska pomerne neštandardný postup. Nutnosť otvárania a zatvárania databázy je možné potlačiť v rámci transakčného spracovania tak, že za príkaz uvedieme parameter TRANS.
Pre D2000 verziu 6 a vyššie: Optimalizácia procesu D2000 DBManager (recyklovanie spojení, predpripravené spojenia) spôsobila, že akcia DBS_UPDATE sa vykoná rovnako rýchlo ako akcia DB_UPDATE a navyše sa ušetrí čas potrebný na spracovanie explicitného príkazu na otvorenie databázy DB_CONNECT.
Potreba otvorenia a zatvorenia databázy sa môže eliminovať v rámci
transakčného spracovania tak, že za príkazom nasleduje parameter TRANS.
Súvisiace odkazy
Súvisiace stránky:
0 komentárov