602SQL-Úplná dokumentace Index  

TSQL602ObjBrowser

Delphi / Kylix

Zjednodušená deklarace třídy:

type TSQL602ObjBrowser = class(TComponent)
published
  property Connection  : TComponent;	
  property Application : string;	
  property Diacritics : Boolean;	// pouze do verze 8.1
public
  function GetObjectNames(Categ : TCategEnum; Folder : string = '') : TStringList;
  function GetObjects(Categ : TCategEnum; Folder : string = ''): TSQL602Objects;
  function IsSubFolder(Child : string; Parent : string) : Boolean;
  function GetDefin(Obj : TSQL602Object) : string;
end;


Popis

Komponenta poskytuje seznam databázových objektů. Bez přihlášení k databázi poskytuje pouze seznam zaregistrovaných serverů. Pokud není nastavena vlastnost Application, vrací pouze seznam uživatelů, skupin, systémových tabulek a aplikací, jinak vrací seznam požadovaných objektů uložených v databázové aplikaci (schématu).
V případě, že jazykové prostředí klientského počítače (tj. toho, kde běží program psaný pomocí CDK), je odlišné od systémového jazyka serveru (např. SQL server je na Linuxu s charsetem ISO-8859-2 a klientský program běží na českých Windows, tedy charset WIN1250), provádí se při výstupu jmen objektů konverze ze sytémového jazyka a kódování serveru do kódování klientského prostředí.

Unit

ObjBrwsr

Vlastnosti komponenty

Connection : TComponent

Spojení na server pomocí TSQL602Connection nebo i TDBX602Connection.

Application : string

Jméno aplikace, jejíž objekty se zjišťují

Diacritics : Boolean

Má význam pouze pro prostředí Linuxu do verze 8.1 včetně - příznak, mají-li se jména objektů s diakritikou zobrazovat čitelně. Lepší cestou však je diakritiku ve jménech identifikátorů nepoužívat.



Metody komponenty

function GetObjectNames(Categ : TCategEnum; Folder : string = '') : TStringList;

Metoda GetObjectNames vrací seznam jmen objektů zadané kategorie (CATEG_TABLE, CATEG_VIEW, ... - deklarované v unitě SQL602_x plus CATEG_SYSCURSOR pro seznam systémových dotazů a CATEG_SQLSERVER pro seznam registrovaných serverů), uložených v zadané složce. Pokud není složka zadána, vrací seznam všech objektů dané kategorie v aplikaci. Prostřednictvím zděděné vlastnosti TStringList.Objects[index] lze přetypováním získat objekt třídy TSQL602Object s popisem specifikovaného objektu.

type TSQL602Object = class(TObject)
public
  property Categ     : TCategEnum;  // Kategorie objektu
  property ObjName   : string[32];  // Jméno objektu
  property ObjNum    : tobjnum;     // Číslo objektu
  property Flags     : Word;        // Příznaky objektu
  property Folder    : string[32];  // Složka
  property ModifTime : TDateTime;   // Datum a čas poslední změny
end;
function GetObjects(Categ : TCategEnum; Folder : string = ''): TSQL602Objects;

Metoda GetObjects vrací seznam objektů třídy TSQL602Object, které popisují databázové objekty zadané kategorie Categ uložené v zadané složce Folder.

function IsSubFolder(Child : string; Parent : string) : Boolean;

Metoda IsSubFolder slouží k budování stromu složek a vrací informaci, zda je složka Child potomkem složky Parent.

function GetDefin(Obj : TSQL602Object) : string;

Metoda GetDefin vrací textovou definici objektu Obj.



Příklad

do stromu objektů zabudovat seznam tabulek:

var 
  ObjBrowser : TSQL602ObjBrowser;
...
   List := ObjBrowser.GetObjectNames(CATEG_TABLE);
   N.getFirstChild.DeleteChildren;  // vymazat tabulky
   for i := 0 to List.Count - 1 do begin
     if TSQL602Object(List.Objects[i]).Flags < 129 then  // ODBC tabulky nebrat
        TreeView1.Items.AddChild(N.getFirstChild,List.Strings[i]);
    end;