|
|
| 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 |