Chyby a jejich oÜet°ovßnφ v SQL

Norma SQL p°edepisuje, ₧e chybovΘ stavy a varovßnφ majφ b²t oznaΦovßny pomocφ tzv. sqlstates, co₧ jsou °et∞zce p∞ti znak∙ slo₧enΘ z Φφslic a velk²ch pφsmen latinskΘ abecedy. Norma pro °adu chyb p°edepisuje, kter² sqlstate mß p°i jejich v²skytu nastat. Mimo to ponechßvß prostor pro sqlstates definovanΘ implementacφ.

Ve WinBase602 jsou chyby oznaΦovßny Φφslem. N∞kterΘ z t∞chto chyb odpovφdajφ n∞kterΘmu sqlstate, jinΘ jsou specifickΘ po WinBase602. Vzhledem k tomu, ₧e pro v∞tÜinu syntaktick²ch chyb a vÜechny chyby z nedostatku prßv existuje jedin² sqlstate, poskytujφ Φφsla chyb WinBase602 detailn∞jÜφ rozliÜenφ.

Na sqlstates se v p°φkazech SQL odvolßvajφ deklarace v²jimek a handler∙. Chcete-li zachytit a zpracovat urΦitou chybu, musφte znßt jejφ sqlstate. Nφ₧e uvedenß tabulka specifikuje sqlstates odpovφdajφcφ jeden k jednΘ chybßm WinBase602. Ostatnφ (implementacφ definovanΘ) chyby se vyjad°ujφ pomocφ sqlstate ve tvaru öWabcdö, kde abcd je Φty°mφstnΘ Φφslo chyby, dopln∞nΘ v p°φpad∞ pot°eby zleva nulami. Nap°φklad chyb∞ 171(deadlock) odpovφdß sqlstate W0171.

Nßzev sqlstate Φφslo chyby ve WinBase602 sqlstate
Kurzor nelze nastavit na neexistujφcφ zßznam 131 02000
PoruÜeno omezenφ tabulky (NOT NULL nebo UNIQUE nebo CHECK nebo referenΦnφ integrita) 160,172,174,

175

40002
Neplatn² stav kurzoru 196 24000
NeplatnΘ oznaΦenφ savepointu 197 3B001
P°ekroΦen limit na poΦet savepoint∙ 198 3B002
Transakce je ji₧ zahßjena 199 25001
NedovolenΘ ukonΦenφ transakce v atomickΘm p°φkazu 200 2D000
Tato transakce nesmφ modifikovat data 201 25006
╚φselnß hodnota mimo povolen² rozsah 202 22003
Nep°φpustn² znak znemo₧≥uje konverzi typu 203 22018
╪et∞zec znak∙ je p°φliÜ dlouh² 204 22001
D∞lenφ nulou 205 22012
Odpov∞∩ obsahuje jin² poΦet zßznam∙ ne₧ jeden 206 21000
Chyba v urΦenφ znaku ESCAPE 207 22019
P°φkaz CASE neobsahuje vhodnou v∞tev 208 20000
U₧ivatelem definovanß v²jimka nenφ oÜet°ena 209 45000
P°φkaz RESIGNAL pou₧it mimo oÜet°enφ v²jimky 210 0K000
Externφ rutina nebo knihovna nebyla nalezena 211 38001
Ve funkci nebyl proveden p°φkaz RETURN 212 2F001
Chyba v akci spuÜt∞nΘ triggerem 214 09000
Kurzor tohoto jmΘna neexistuje 217 34000

Viz takΘ popis zpracovßnφ v²jimek.