|
![]() | TSQL602ServerProps | ![]() | Přehled CDK komponent | ESysException | ![]() |
Zjednodušená deklarace třídy:
type ESQL602Exception = class(Exception) public property Error : integer; property Message : string; property ErrorMessage : string; property SupplName : string; property SQLStatement : string; property ErrorPos : Integer; property Component : TObject; property ComponentName : string; property ComponentClass : string; property OwnerName : string; property OwnerClass : string; property Connection : TSQL602Connection; property DBXConnection : TDBX602Connection; property ContextLevel : integer; property ContextType : tcontype; property ContextName : string; property TableNO : ttablenum; property TableName : string; property RecNO : trecnum; property ColumnNO : tattrib; property ColumnName : string; property MultiIndex : uns16; property IndexNO : integer; property IndexName : string; property ProcNO : tobjnum; property ProcName : string; property TriggerNO : tobjnum; property TriggerName : string; property LockType : integer; property LockText : string; property LUserNO : tobjnum; property LUserName : string; property ConText : string property DuplKeyValue : string; property InvalidRecord : string; property InvalidStatement : string; protected procedure DoAfterCreate; virtual; end;
procedure SetSQL602ExceptionClass(Value : TSQL602ExceptionClass); type TSQL602ExceptionClass = class of ESQL602Exception;Všechny vlastnosti jsou jen pro čtení.
Pro běžný provoz aplikací stačí používat vlastnosti Error, Message a ErrorMessage, ostatní se uplatní zvláště při vývoji.
Vlastnost obsahuje kód chyby. Seznam jednotlivých kódů a jejich význam je popsán v nápovědě k 602SQL. Vedle standardních chyb 602SQL může tato vlastnost vracet i chyby specifické pro použití CDK komponent.
Implicitní víceřádkové chybové hlášení včetně identifikace komponenty, na které k chybě došlo.
Samostatné chybové hlášení odpovídající kódu Error bez identifikace komponenty, na které k chybě došlo
Doplňková informace k některým typům chyb, obvykle jméno objektu, který vyvolal chybu - podrobnosti. Je už obsažena v textu Message nebo ErrorMessage.
SQL příkaz, který vyvolal výjimku. Pokud výjimka vznikla na komponentě třídy TSQL602DataSet, je hodnotou celý příkaz z vlastnosti CommandText, pokud výjimka vznikla na komponentě třídy TSQL602Statement, je hodnotou celý příkaz z vlastnosti Statement, pokud výjimka vznikla na komponentě třídy TSQL602StoredProc, je hodnotou část toho SQL příkazu z uložené procedury, který výjimku vyvolal.
Pokud byla výjimka vyvolána syntaktickou chybou v SQL příkazu, obsahuje pozici chyby v příkazu.
Komponenta, která vyvolala výjimku.
ComponentName : string;
ComponentClass : string;Jméno a třída komponenty, na které k chybě došlo
OwnerName : string;
OwnerClass : string;Jméno a třída vlastníka komponenty, na které k chybě došlo
Connection : TSQL602Connection
DBXConnection : TDBX602ConnectionAktuální spojení na SQL server, umožňuje proceduře ošetřující výjimku komunikovat s SQL serverem.
Podrobnější kontext chyby lze získat pomocí těchto vlastnosti - podrobnosti.
Virtuální procedura se volá na konci konstruktoru třídy TSQL602Exception a umožňuje potomkovi inicializovat ve vytvářené instanci přidané vlastnosti.
. . type EMYDBException = class(ESQL602Exception) public MYInfo : string; protected procedure DoAfterCreate; override; end; . . procedure EMYDBException.DoAfterCreate; begin MYInfo := 'Chybami se člověk učí'; end; . . procedure Form1.Loaded; begin inherited; SetSQL602ExceptionClass(EMYDBException); end; . . procedure Form1.OnAction; begin try SQL602Statement.Execute; except on E:EMYDBException do ShowMessage(E.MYInfo); end; end;
Seznam subsekcí:
![]() | TSQL602ServerProps | ![]() | Přehled CDK komponent | ESysException | ![]() |