- Vytvoril D2000 Dev Team na okt 12, 2017
Akcia DB_DELETE a DBS_DELETE
Funkcia
Zrušenie jedného alebo viacerých riadkov z tabuľky.
Deklarácia
DB_DELETE handleIdent_Int, rowIdent,retCodeIdent_Int [ORAHINT hintIdent_Str] DBS_DELETE dbObjIdent, rowIdent, retCodeIdent_Int [TRANS transHandle_Int] [ORAHINT hintIdent_Str]
alebo
DB_DELETE handleIdent_Int, retCodeIdent_Int WHERE strExpression_Str [BINDIN varIdent1, varIdent2, ... ] [ORAHINT hintIdent_Str] DB_DELETE handleIdent_Int, retCodeIdent_Int WHERE strExpression_Str [BINDIN structRowIdent] [ORAHINT hintIdent_Str] DBS_DELETE dbObjIdent, retCodeIdent_Int WHERE strExpression_Str [BINDIN varIdent1, varIdent2, ... ] [TRANS transHandle_Int] [ORAHINT hintIdent_Str] DBS_DELETE dbObjIdent, retCodeIdent_Int WHERE strExpression_Str [BINDIN structRowIdent] [TRANS transHandle_Int] [ORAHINT hintIdent_Str]
Parametre
handleIdent_Int | in | Identifikátor typu Int (handle) spojenia s tabuľkou (DB_CONNECT). |
dbObjIdent | in | Odkaz na objekt typu Tabuľka. |
retCodeIdent_Int | out | Identifikátor návratového kódu. |
rowIdent | in | Identifikátor jedného riadku štruktúry. |
strExpression_Str | in | Výraz typu String, ktorý identifikuje rušené riadky. Pokiaľ je výraz parametrizovaný, musí byť uvedené aj kľúčové slovo BINDIN nasledované hodnotami parametrov (structRowIdent alebo varIdent1, varIdent2, ...). |
varIdent1, varIdent2, ... |
in | Zoznam objektov, konštánt alebo lokálnych premenných, ktoré sa použijú na mieste parametrov parametrizovaného výrazu strExpression_Str. |
structRowIdent | in | Odkaz na riadok lokálnej premennej typu Record alebo na riadok štruktúrovanej premennej. Hodnoty z tohto riadku sa použijú na mieste 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
Tabuľka musí byť otvorená s prístupom _DB_MODIFY.
V prvom prípade je rušený riadok určený hodnotou kľúčového políčka v hodnote typu Štruktúra (rowIdent). Podľa neho sa v tabuľke nájde príslušný riadok a zruší sa.
V druhom prípade je podmienkou pre rušenie výraz typu String (strExpression_Str), ktorého výsledná hodnota je použitá ako klauzula WHERE pre SQL príkaz DELETE. V tomto prípade je hodnota kľúčovej položky v štruktúre nepoužitá a nemusí byť nastavená. Ak je v tabuľke viacej riadkov ktoré vyhovujú podmienke (strExpression_Str), budú zrušené všetky.
Výhodou akcie DBS_DELETE 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_DELETE je v rýchlosti. Každé volanie akcie DBS_DELETE 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_DELETE sa vykoná rovnako rýchlo ako akcia DB_DELETE a navyše sa ušetrí čas potrebný na spracovanie explicitného príkazu na otvorenie databázy DB_DELETE.
V prvom prípade je rušený riadok určený hodnotou kľúčového políčka v hodnote typu Štruktúra (rowIdent). Podľa neho sa v tabuľke nájde príslušný riadok a zruší sa.
V druhom prípade je podmienkou pre rušenie výraz typu String (strExpression_Str), ktorého výsledná hodnota je použitá ako klauzula WHERE pre SQL príkaz DELETE. V tomto prípade je hodnota kľúčovej položky v štruktúre nepoužitá a nemusí byť nastavená. Ak je v tabuľke viacej riadkov ktoré vyhovujú podmienke (strExpression_Str), budú zrušené všetky.
Výhodou akcie DBS_DELETE 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_DELETE je v rýchlosti. Každé volanie akcie DBS_DELETE 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_DELETE sa vykoná rovnako rýchlo ako akcia DB_DELETE a navyše sa ušetrí čas potrebný na spracovanie explicitného príkazu na otvorenie databázy DB_DELETE.
Upozornenie
Variant príkazu
umožňuje zrušiť celý obsah tabuľky.
Ak je podmienka (strExpression_Str) splnená pre všetky riadky tabuľky (napríklad "1=1"), bude zmazaný jej celý obsah.
DB_DELETE WHERE
Ak je podmienka (strExpression_Str) splnená pre všetky riadky tabuľky (napríklad "1=1"), bude zmazaný jej celý obsah.
Súvisiace odkazy
Súvisiace stránky:
Pridať komentár