Metody TSQL602Connection zapouzdřující funkce z 602SQL API
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;
Poznámky:
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.