602SQL-Úplná dokumentace Index  

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.