Find_object_by_id

Internφ programovacφ jazykC/C++Pascal

function Find_object_by_id(var uuid : binary, category : short; var position : short) : Boolean;
BOOL [cd_]Find_object_by_id([cdp_t cdp], const WBUUID uuid, tcateg category, tobjnum *position);
function [cd_]Find_object_by_id([cdp : cdp_t]; var uuid : WBUUID, category : tcateg; var position : tobjnum) : Boolean;

Parametry

uuid identifikace objektu;
category kategorie objektu;
position v²stupnφ parametr: Φφslo zßznamu v systΘmovΘ tabulce
[cdp kontextovß prom∞nnß klienta]

Popis

Funkce hledß databßzov² objekt kategorie category na zßklad∞ jeho binßrnφ identifikace uuid. Dß se pou₧φt pro kategorie CATEG_USER, CATEG_GROUP, CATEG_SERVER (replikaΦnφ server) a CATEG_KEY (klφΦ).

Pokud objekt nalezne, vrßtφ v parametru position jeho Φφslo (tj. externφ Φφslo zßznamu v p°φsluÜnΘ systΘmovΘ tabulce.

Hodnota funkce

Funkce vracφ p°i ·sp∞chu FALSE a Φφslo objektu v position. P°i chyb∞ vracφ TRUE. Typickß chyba je OBJECT_NOT_FOUND - Objekt nenalezen. DoporuΦujeme v₧dy ov∞°ovat v²sledek tΘto funkce, a tak se vyhnout pozd∞jÜφ prßci s nesmysln²m Φφslem objektu.

P°φklad

Nalezenφ jmΘna u₧ivatele podle p°eΦtenΘ hodnoty sledovacφho atributu Autorizace:

table
  Tab1,UserTab;
type 
  rec = record          //struktura zßznamu
    c : integer;        //  integer
    id : binary[12];    //  autorizace
    retez : string[12]; //  °et∞zec dΘlky 12 
  end;
var
  uuid : binary[12];
  pozice : short;
  buff : rec;
  c1 : cursor;
  pocet,i : integer;

begin
  if Open_sql_cursor(c1,"select * from Tab1") then Signalize
  else begin
    Rec_cnt(Tab1,pocet);
    for i := 0 to pocet -1 do begin
      buff := Tab1[i];   // p°eΦtenφ jednoho zßznamu do recordu
      uuid := buff.id;   // p°eΦtenφ binßrnφ hodnoty do prom∞nnΘ
      if Find_object_by_id(uuid,CATEG_USER,pozice) then Signalize 
      else  Info_box("U₧ivatel",Usertab[pozice].logname);
    end;
    Close_cursor(c1);
  end;
end.

Viz