|
![]() | Jazyk SQL v 602SQL | Popis syntaxe jazyka SQL | ![]() |
N∞kterΘ detaily implementace jazyka SQL a prßce SQL serveru lze nastavit pomocφ tzv. p°φznak∙ kompatibility. T²kß se to oblastφ, kterΘ nejsou v norm∞ jazyka SQL specifikovßny nebo kterΘ se ve starÜφch verzφch 602SQL chovaly odliÜn∞, ne₧ p°edepisujφ novΘ normy jazyka SQL. Aby byla zachovßna nezm∞n∞nß funkce starÜφch aplikacφ a p°itom aby bylo mo₧no vytvß°et novΘ aplikace v souladu s normami SQL, umo₧≥uje server 602SQL nastavit, do jakΘ mφry se mß zachovat kompatibilita funkce se starÜφmi verze proti striktnφmu dodr₧enφ norem.
Kup°φkladu pokud je p°i vytvß°enφ odpov∞di na dotaz po₧adovßna typovß konverze, kterou nelze provΘst, starÜφ verze 602SQL vracely hodnotu NULL, zatφmco dle normy mß celß operace skonΦit ne·sp∞chem.
Nastavenφ p°φznak∙ kompatibility lze libovoln∞ m∞nit i za b∞hu aplikace a pro r∙znΘ klienty mohou ve stejnΘm okam₧iku platit r∙znß nastavenφ. Zm∞nu nastavenφ provßdφ klient volßnφm API funkce Set_sql_option. Aktußlnφ nastavenφ vracφ funkce Get_sql_option. V prost°edφ SQL serveru lze aktußlnφ nastavenφ Φφst a m∞nit pomocφ systΘmovΘ prom∞nnΘ @@SQLOPTIONS.
Po p°ipojenφ se novΘho klienta na server jsou vÜechny jeho volby nastaveny dle vlastnosti serveru DefaultSQLOption. Pokud hodnota tΘto vlastnosti nenφ zm∞n∞na, je zapnuta ve vÜech volbßch kompatibilita se starÜφmi verzemi 602SQL. Interaktivnφ nastavovßnφ tΘto vlastnosti umo₧≥uje strßnka Parametry / Provoznφ parametry / Kompatibilita SQL na ╪φdicφ konzoli.
P°ehled p°φznak∙ kompatibility:
jmΘno volby | hodn. | Φeho se t²kß | stav je-li nastaveno (WB syntax) | stav nenφ-li nastaveno (SQL syntax) |
SQLOPT_NULLEQNULL | 1 | porovnßnφ dvou hodnot NULL (*) | v²sledek je TRUE | v²sledek je UNKNOWN |
SQLOPT_NULLCOMP | 2 | operace mezi NULL a jinou hodnotou (*) | NULL je menÜφ v relacφch a je inertnφm prvkem v ostatnφch operacφch | v²sledek relacφ je UNKNOWN, ostatnφch operacφ NULL |
SQLOPT_RD_PRIVIL_VIOL | 4 | pou₧itφ hodnoty, k nφ₧ nenφ prßvo Φtenφ, p°i konstrukci kurzoru | mφsto utajenΘ hodnoty se pou₧ije NULL | dojde k chyb∞ |
SQLOPT_MASK_NUM_RANGE | 8 | p°eteΦenφ ΦφselnΘho rozsahu p°i konverzi | v²sledkem je NULL | dojde k chyb∞ |
SQLOPT_MASK_INV_CHAR | 16 | °et∞zec znak∙ nelze konvertovat na po₧adovan² typ | v²sledkem je NULL | dojde k chyb∞ |
SQLOPT_MASK_RIGHT_TRUNC | 32 | p°i typovΘ konverzi na typ °et∞zec dochßzφ ke ztrßt∞ znak∙ na pravΘm konci | znaky jsou ztraceny | dojde k chyb∞ |
SQLOPT_EXPLIC_FREE | 64 | zruÜenφ a uvoln∞nφ zßznamu | zruÜenΘ zßznamy se uvol≥ujφ funkcφ Free_deleted | zruÜenΘ zßznamy se uvol≥ujφ ihned po zruÜenφ |
SQLOPT_OLD_ALTER_TABLE | 128 | syntaxe ALTER TABLE | pou₧ije se p∙vodnφ varianta ALTER TABLE (stejnΘ jako nßvrhßr) | pou₧φvß se varianta ALTER TABLE podle normy SQL |
SQLOPT_DUPLIC_COLNAMES | 256 | kdy₧ se dva sloupce v odpov∞di na dotaz jmenujφ stejn∞ | ponechajφ se stejnß jmΘna, lze je rozliÜit pomocφ prefixu | sloupce se automaticky p°ejmenujφ |
SQLOPT_USER_AS_SCHEMA | 512 | prefixovßnφ jmen tabulek jmΘnem u₧ivatele | prefix se v₧dy pova₧uje za jmΘno schΘmatu | pokud se prefix shoduje se jmΘnem p°ihlßÜenΘho u₧ivatele, ignoruje se |
SQLOPT_DISABLE_SCALED | 1024 | v²skyt Φφseln²ch necel²ch p°esn²ch typ∙ v odpov∞di na dotaz (NUMERIC) | pokud nelze pova₧ovat za typ Money, je automaticky konvertovßn na typ Real | typ se zachovß |
SQLOPT_ERROR_STOPS_TRANS | 2048 | reakce transakce na chybu | transakce se ukonΦφ | transakce pokraΦuje a₧ do commitu nebo rollbacku |
SQLOPT_NO_REFINT_TRIGGERS | 4096 | spouÜt∞nφ trigger∙ p°i provßd∞nφ akcφ aktivnφ referenΦnφ integrity | triggery se nespouÜt∞jφ | triggery se spouÜt∞jφ |
SQLOPT_USE_SYS_COLS | 8192 | v²b∞r i systΘmov²ch sloupcu (_W5_ ...) v klauzuli SELECT * | vyberou se vÜechny sloupce vΦetn∞ systΘmov²ch | systΘmovΘ sloupce se nevyberou |
SQLOPT_CONSTRS_DEFERRED | 16384 | kdy se mß vyhodnocovat poruÜenφ t∞ch omezenφ tabulky (s v²jimkou UNIQUE), kterΘ nejsou nastaveny explicitn∞ | chyba se projevφ p°i commitu (DEFERRED) | chyba se projevφ okam₧it∞ (IMMEDIATE) |
SQLOPT_COL_LIST_EQUAL | 32768 | kdy se provede UPDATE trigger se seznamem sloupcu | je-li zm∞n∞na stejnß mno₧ina sloupcu | pokud mno₧ina zm∞n∞n²ch sloupcu mß neprßzdn² pr∙nik se seznamem |
SQLOPT_QUOTED_IDENT | 65536 | jak se interpretujφ uvozovky v SQL | uvozovky vymezujφ °et∞zec znak∙, stejn∞ jako apostrof | uvozovky vymezujφ identifikßtor, stejn∞ jako obrßcen² apostrof |
(*) pro °et∞zce s hodnotou NULL (= prßzdnΘ °et∞zce) platφ bez ohledu na nastavenφ ·daje ze sloupce Syntax WB (porovnßnφ dvou NULL string∙ je TRUE apod.).
Obecn∞ platφ, ₧e je-li volba nastavena, zachovßvß se kompatibilita se starÜφmi verzemi 602SQL, nenφ-li nastavena, server se chovß dle norem SQL.
![]() | Jazyk SQL v 602SQL | Popis syntaxe jazyka SQL | ![]() |