|
TSQL602Connection | TSQL602Connection |
Oproti originálním funkcím z 602SQL API, které obvykle vracejí booleovský příznak chyby, jsou tyto metody z důvodu jiného zpracování chyb implementovány jako procedury, případně jako funkce, které vracejí požadovaný výsledek (takže obvykle mají o 1 parametr méně). Například metoda Find_object je implementována takto:
function TSQL602Connection.Find_object(Name : string; Categ : tcateg) : tobjnum; begin if cd_Find_object(Fcdp, PChar(Name), Categ, Result) then raise ESQL602Exception.Create(Self, Self, 'Find_object'); end;
Obdobně jsou implementovány i ostatní metody. Chyba volání API 602SQL vyvolá výjimku třídy ESQL602Exception, ze které lze zjistit, jméno API funkce, která vyvolala chybu, kontext chyby jako jméno tabulky, jméno sloupce apod. a jméno komponenty a jméno vlastníka komponenty, na které k chybě došlo. Seznam implementovaných funkcí je uveden v následujícím přehledu. Podrobnosti a popis parametrů jednotlivých funkcí naleznete v encyklopedie funkcí jazyka - názvy jsou shodné.
procedure Backup_database_file(file_name : string); function Client_number : Integer; procedure Close_cursor(Curs : tcursnum); procedure Commit; procedure Compact_database(margin : Integer); procedure Database_integrity(repair : Boolean; var Cons : TWBConsistency); procedure Delete(Curs : tcurstab; Pos : trecnum); procedure Enum_attributes(Curs : tcurstab; CallBack : enum_attr_ex; UserData : Pointer); procedure GetSet_fil_blocks(operation : t_oper; var blsize : uns32); procedure GetSet_fil_size(operation : t_oper; var size : uns32); procedure GetSet_privils(user_group_role : tobjnum; subject_categ : tcateg; table : ttablenum; recnum : trecnum; operation : t_oper; var privils : TPrivils); type TPrivils = array[0..64] of Byte; function Read_ind(Curs : tcurstab; Pos : trecnum; Attr : tattrib; Index : uns16; var Buffer) : Boolean; function Read_record(Curs : tcurstab; Pos : trecnum; var Buffer; BufSize : Cardinal) : Boolean; procedure Read_unlock_record(Curs : tcurstab; Pos : trecnum); procedure Roll_back; procedure Set_group_role(user_or_group : tobjnum; group_or_role : tobjnum; subject2 : tcateg; Value : Boolean); procedure Set_password(User, Password : string); procedure Set_property_value(Owner : string; PropName : string; Value : string); overload; procedure Set_property_value(Owner : string; PropName : string; Index : Integer; Value : string); overload; procedure SQL_drop(var Handle : uns32); procedure SQL_execute(Statement : string; Results : PInteger = nil); procedure SQL_host_execute(Statement : string; var Results; var HostVars : t_clivar; HostVarCount : Integer); procedure Start_transaction; procedure Write_ind(Curs : tcurstab; Pos : trecnum; Attr : tattrib; Index : uns16; var Buffer; BufSize : Cardinal); procedure Write_len(Curs : tcurstab; Pos : trecnum; Attr : tattrib; Index : uns16; Size : uns32); procedure Write_record(Curs : tcurstab; Pos : trecnum; var Buffer; BufSize : Cardinal); procedure Write_record_ex(Curs : tcurstab; Pos : trecnum; ColCount : Integer; ColDescr : p_column_val_descr); procedure Write_unlock_record(Curs : tcurstab; Pos : trecnum); procedure Write_var(Curs : tcurstab; Position : trecnum; Attr : tattrib; Index : uns16; Start, Size : uns32; var Buffer); function Am_I_db_admin : Boolean; function Am_I_config_admin : Boolean; function Am_I_security_admin : Boolean; function Append(Curs : tcurstab) : trecnum; function Create_user(logname, name1, name2, name3, identif : string; var homesrv : WBUUID; password : string) : tobjnum; function Export_appl_param(var ep : t_export_param) : Boolean; function Find_object(Name : string; Categ : tcateg; NotFoundExcpt : Boolean = false) : tobjnum; function Find_object_by_id(var uuid : WBUUID; Categ : tcateg) : tobjnum; function Get_group_role(user_or_group : tobjnum; group_or_role : tobjnum; subject2 : tcateg) : Boolean; function Get_property_value(Owner : string; PropName : string) : string; overload; function Get_property_value(Owner : string; PropName : string; Index : Integer) : string; overload; function Get_server_info(info_type : Integer) : Integer; function Import_appl_param(var ip : t_import_param) : Boolean; function Insert_record_ex(Curs : tcurstab; ColCount : Integer; ColDescr : p_column_val_descr) : trecnum; function Open_cursor(CursDef : tobjnum) : tcursnum; function Open_cursor_direct(Query : string) : tcursnum; function Open_subcursor(SuperCurs : tcursnum; SubcurDef : string) : tcursnum; function Read_len(Curs : tcurstab; Pos : trecnum; Attr : tattrib; Index : uns16 = NOINDEX) : uns32; function Read_lock_record(Curs : tcurstab; Pos : trecnum) : Boolean; function Read_var(Curs : tcurstab; Pos : trecnum; Attr : tattrib; Index : uns16; Start, Size : uns32; var Buffer) : uns32; function Rec_cnt(Curs : tcurstab) : Integer; function SQL_exec_prepared(Handle : uns32; var Results) : Integer; function SQL_host_prepare(Statement : string; var HostVars : t_clivar; HostVarCount : Integer) : uns32; function SQL_prepare(Statement : string) : Cardinal; function Super_recnum(SubCurs, SuperCurs : tcursnum; SubPos : trecnum=0) : trecnum; function sz_Error : Integer; function Translate(Curs : tcursnum; Pos : trecnum=0; TableNO : Integer=0) : trecnum; function Who_am_I : string; function Write_lock_record(Curs : tcurstab; Pos : trecnum) : Boolean;
Metody Read_ind a Read_record oproti 602SQL API vracejí TRUE, pokud čtení skončilo úspěšně, FALSE, pokud čtení skončilo chybou "Záznam mimo tabulku" (aby bylo možné číst v cyklu bez toho, že bych musel předem zjišťovat počet záznamů), jinak vyvolají výjimku.
TSQL602Connection | TSQL602Connection |