sql

Funkce

Přístroj umožňuje obecnou práci s databázovými daty prostřednictvím SQL příkazů. Výsledek dotazu dokáže zobrazit v přehledné tabulce. Data z databází lze také pomocí nativních procedur nastavovat na datové elementy.


Syntax

  sql_label sql_name;
    rem = string;
    bubble = string;
    timer = timer_name;
    owner = owner_name;
    position = integer, integer, integer, integer;
    win_disable = [ identifier, ... ];
    win_title = string;
    access = integer;
    send_same_data;
    driver_exception = driver_name;
    dsn = string;
    user_name = string;
    password = string;    
    font = font_identifier, integer, style_identifier;
    look = [ identifier, ... ];
    cell_effect = identifier;
    options = [ identifier, ... ];
    settings_file = string;
    command
      string = string;    
    end_command;
    recordset
      string = string;    
    end_recordset;
    colors
      text = color;
      background = color;
      top_shadow = color;
      bottom_shadow = color;
      line = color;
    end_colors;
  end_sql;

Specifické parametry přístroje


Poznámka

Některé parametry mají implicitní nastavení

  position = 0, 0, 150, 100;
  access = <none>
  tab_select = <none>

Příklad

Příklad nastavení parametrů přístroje sql:

  sql SQL;
    owner = background;
    position = 20, 20, 250, 200;
    command
      'InsertArticle' = 'INSERT INTO Articles VALUES(''\?'', ''\?'', ''\?'')';
    end_command;
    recordset
      'DL2004' = 'SELECT * FROM Articles WHERE Code = 2004';
      'Group' = 'SELECT * FROM Groups WHERE GroupId = \?';
    end_recordset;
  end_sql;

Nativní procedury přístroje

BrowseDatabase( &ok : boolean )

Otevře dialogové okno pro výběr připojení ke zdroji dat. V parametru ok vrací hodnotu true, pokud se ke zvolenému zdroji dat podařilo připojit.

OpenDatabase( DSN, UserName, Password : string; &ok : boolean )

Připojí se ke zdroji dat popsaném v souboru DSN za použití přihlašovacího jména UserName a hesla Password. V parametru ok vrací hodnotu true, pokud se ke zvolenému zdroji dat podařilo připojit.

CloseDatabase()

Odpojí se od aktuálního zdroje dat.

Execute( SQLCommand : string; &ok : boolean )

Vykoná SQL příkaz SQLCommand a v parametru ok vrací výsledek operace. Tato procedura je určena pro výkonné SQL příkazy.

ExecCommand( CommandId : string; &ok : boolean )

Vykoná předdefinovaný SQL příkaz CommandId (viz sekce command) a v parametru ok vrací výsledek operace. Tato procedura je určena pro výkonné SQL příkazy.

OpenRecordset( RecordsetId, SQLCommand : string; &ok : boolean )

Vytvoří virtuální sadu záznamů identifikovanou jménem RecordsetId, která je výsledkem SQL příkazu SQLCommand. V parametru ok vrací výsledek operace.

OpenRecordset( RecordsetId : string; &ok : boolean )

Vytvoří virtuální sadu záznamů identifikovanou jménem RecordsetId, která je výsledkem předdefinovaného SQL příkazu uvedeného u jména RecordsetId v definici přístroje v sekci recordset. V parametru ok vrací výsledek operace.

Requery( RecordsetId : string; &ok : boolean )

Aktualizuje virtuální sadu záznamů identifikovanou jménem RecordsetId opakovaným provedením dotazu. V parametru ok vrací výsledek operace.

CloseRecordset( RecordsetId : string )

Zruší sadu záznamu RecordsetId vytvořenou procedurou OpenRecordset.

CloseRecordset( RecordsetId : string; SaveSettings : boolean )

Zruší sadu záznamu RecordsetId vytvořenou procedurou OpenRecordset.
Pokud je parametr SaveSettings nastaven na hodnotu true, bude uloženo aktuální nastavení vzhledu tabulky. Toto nastavení bude použito při příštím zobrazení sady záznamů RecordsetId. Pokud je parametr SaveSettings nastaven na hodnotu false, bude již uložené nastavení vzhledu tabulky zrušeno. Při příštím zobrazení bude tedy sada záznamů RecordsetId zobrazena ve standardní podobě.

MoveToFirstRecord( RecordsetId : string; &ok : boolean )

Nastaví kurzor na první záznam v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

MoveToPrevRecord( RecordsetId : string; &ok : boolean )

Nastaví kurzor na předchozí záznam v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

MoveToNextRecord( RecordsetId : string; &ok : boolean )

Nastaví kurzor na následující pozici (záznam) v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

MoveToLastRecord( RecordsetId : string; &ok : boolean )

Nastaví kurzor na poslední záznam v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

MoveToRecordNumber( RecordsetId : string; Record : real; &ok : boolean )

Nastaví kurzor na záznam Record v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

ReadData( RecordsetId, ColumnName : string; &Data : any; &ok : boolean )

V parametru Data vrací obsah položky ze sloupce specifikováného jménem ColumnName aktuálního záznamu v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

ReadData( RecordsetId : string; ColumnIndex : real; &Data : any; &ok : boolean )

V parametru Data vrací obsah položky ze sloupce číslo ColumnIndex aktuálního záznamu v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

WriteData( RecordsetId, ColumnName : string; Data : any; &ok : boolean )

Zapíše obsah parametru Data do položky sloupce specifikováného jménem ColumnName v aktuálním záznamu v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

WriteData( RecordsetId : string; ColumnIndex : real; Data : any; &ok : boolean )

Zapíše obsah parametru Data do položky sloupce číslo ColumnIndex v aktuálním záznamu v sadě záznamů RecordsetId. V parametru ok vrací výsledek operace.

SetParameter( CommandId : string; ParamNumber : real; Value : any  )

Nastaví parametr číslo ParamNumber v předdefinovaném SQL příkazu CommandId (viz sekce command a recordset) na hodnotu Value. Parametry jsou číslovány od 1.

CreateMDB( Path : string; &ok : boolean )

Založí soubor databáze (Microsoft Access Database) specifikovaný parametrem Path. V parametru ok vrací výsledek operace.

ShowTable( Name : string )

Zobrazí obsah existující tabulky Name v databázi.

ShowQuery( Name : string )

Zobrazí výsledek existujícího dotazu Name v databázi jako sadu záznamů.

ShowRecordset( Name : string )

Zobrazí existující sadu záznamů Name.

SelectRow( Row : number )

Zobrazí řádek Row v právě zobrazené tabulce jako vybraný.
Poznámka: Procedura nemění pozici ukazatele aktuálního záznamu v tabulce databáze!

SelectCell( Row, Column : number )

Zobrazí buňku určenou číslem řádku Row a číslem sloupce Column v právě zobrazené tabulce jako vybranou.
Poznámka: Procedura nemění pozici ukazatele aktuálního záznamu v tabulce databáze!

SelectCell( Row : number; Column : string )

Zobrazí buňku určenou číslem řádku Row a jménem sloupce Column v právě zobrazené tabulce jako vybranou.
Poznámka: Procedura nemění pozici ukazatele aktuálního záznamu v tabulce databáze!

SelectColumn( Column : number )

Zobrazí sloupec určený číslem sloupce Column v právě zobrazené tabulce jako vybraný.

SelectColumn( Column : string )

Zobrazí sloupec určený jménem sloupce Column v právě zobrazené tabulce jako vybraný.

GetDatabaseProperty( Property : string; &Value : any; &ok : boolean )

V parametru Value vrací vlastnost Property právě otevřené databáze. V parametru ok vrací výsledek operace.

Seznam vlastností:

database_name (string) - název databáze
quote_char (string) - znaky, ve kterých musí být uzavřeny identifikátory obsahující speciální znaky (mezery apod.) nebo se shodující s klíčovými slovy jazyka SQL

GetColumnProperty( Column : number; Property : string; &Value : any; &ok : boolean )

V parametru Value vrací vlastnost Property sloupce číslo Column. V parametru ok vrací výsledek operace.

Seznam vlastností:

name (string) - název sloupce
visibility (boolean) - viditelnost sloupce

GetSheetProperty( Property : string; &Value : any; &ok : boolean )

V parametru Value vrací vlastnost Property právě zobrazené tabulky. V parametru ok vrací výsledek operace.

Seznam vlastností (v závorce je uveden typ hodnoty)

selected_row (number) - číslo vybraného řádku
selected_column (number, string) - číslo nebo jméno vybraného sloupce
selected_table (string) - jméno zobrazené tabulky
selected_table_type (number) - typ zobrazené tabulky (0-žádná, 1-tabulka databáze, 2-dotaz databáze, 3-sada záznamů)
rows_count (number) - počet řádků zobrazené tabulky

SetColumnProperty( Column : number; Property : string; Value : any )

Nastaví v právě zobrazené tabulce v sloupci číslo Column vlastnost Property na hodnotu Value.

Seznam vlastností (v závorce je uveden typ hodnoty)

font (string) - písmo
justify (string) - zarovnávání textu
left - zarovnávání vlevo
center - vycentrovat
right - zarovnávání vpravo
visibility (boolean) - viditelnost
width (number, string) - šířka sloupce
default - standardní šířka
optimal - optimální šířka
maximal - maximální šířka
nebo číslo udávající šířku v bodech

SetColumnProperty( Column, Property : string; Value : any )

Nastaví v právě zobrazené tabulce v sloupci specifikovaným jménem Column vlastnost Property na hodnotu Value.

Seznam vlastností (v závorce je uveden typ hodnoty)

font (string) - písmo
justify (string) - zarovnávání textu
left - zarovnávání vlevo
center - vycentrovat
right - zarovnávání vpravo
visibility (boolean) - viditelnost
width (number, string) - šířka sloupce
default - standardní šířka
optimal - optimální šířka
maximal - maximální šířka
nebo číslo udávající šířku v bodech

SetSheetProperty( Property : string; Value : any )

Nastaví vlastnost Property tabulky na hodnotu Value.

Seznam vlastností (v závorce je uveden typ hodnoty)

effect (string) - vzhled (efekt) buněk v tabulce
flat - plochý
raised - vystouplý
sunken - propadlý
font (string) - písmo (např. 'Courier, 10, italic')
h_lines (boolean) - zobrazování horizontálních linek v plochém zobrazení buněk
v_lines (boolean) - zobrazování vertikálních linek v plochém zobrazení buněk
word_wrap (boolean) - lámání řádků v buňkách
column_width (string, number) - šířka sloupců v právě zobrazené tabulce
default - standardní šířka
optimal - optimální šířka
maximal - maximální šířka
nebo číslo udávající šířku v bodech
row_depth (string, number) - výška řádků v právě zobrazené tabulce
default - standardní výška
optimal - optimální výška
nebo číslo udávající výšku v bodech

SetColor( ColorName : string; Color : number )

Nastaví barvu určenou parametrem ColorName na hodnotu Color. Hodnoty parametru ColorName odpovídají klíčovým slovům ze sekce colors.

Hodnoty parametru Color a odpovídající barvy:

SetColor( ColorName : string; R, G, B : number )

Nastaví barvu určenou parametrem ColorName ve složkách R, G, B. Hodnoty parametru ColorName odpovídají klíčovým slovům ze sekce colors.

R (červená) - rozsah hodnot 0-255
G (zelená) - rozsah hodnot 0-255
B (modrá) - rozsah hodnot 0-255

LoadSheetSettings( Path : string; &ok : boolean )

Načte nastavení vzhledu tabulek ze souboru Path. V parametru ok vrací výsledek operace.

SaveSheetSettings( Path : string; &ok : boolean )

Uloží nastavení vzhledu tabulek do souboru Path. V parametru ok vrací výsledek operace.

Hide()

Skrytí viditelného přístroje.

Show()

Zobrazení skrytého přístroje.

Print()

Vytiskne právě zobrazenou tabulku na tiskárně.

NewRect( x, y, w, d : number )

Zavoláním metody je možné přístroji změnit současně jeho pozici a velikost. Velikosti hodnot x, y, w, d jsou v bodech obrazovky.

SetDebug( On : boolean )

Pokud má parametr On hodnotu true, budou do záložky Debug v Okně zpráv vypisována chybová hlášení a trasovací výpisy.

Událostní procedury přístroje

Přístroj může volat standardní událostní procedury

OnActivate()
OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnSelect() 
OnDeselect() 
OnShow() 
OnHide() 
OnNewPosition( RectX, RectY, RectW, RectD : integer ) 
OnWindowMinimize() 
OnWindowMaximize() 
OnWindowRestore( WasMinimized, WasMaximized : boolean ) 
OnWindowClose() 

Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.

Specifické událostní procedury přístroje

OnOpenDatabase( Name : string )

Procedura je volána po úspěšném přípojení ke zdroji dat Name.

OnCloseDatabase( Name : string )

Procedura je volána po odpojení od zdroje dat Name.

OnOpenRecordset( Name : string )

Procedura je volána po úspěšně zpracovaném SQL dotazu Name.

OnCloseRecordset( Name : string )

Procedura je volána po uzavření sady záznamů Name.

OnRequery( Name : string )

Procedura je volána po úspěšně zopakovaném SQL dotazu Name.

OnTableSelect( Name : string )

Procedura je volána po vybrání (zobrazení) existující tabulky Name v databázi.

OnQuerySelect( Name : string )

Procedura je volána po vybrání (zobrazení) existujícího dotazu Name v datbázi.

OnRecordsetSelect( Name : string )

Procedura je volána po vybrání (zobrazení) sady záznamů Name.

OnRowSelect( Name : string; Row : real )

Procedura je volána po vybrání řádku Row v tabulce, dotazu nebo sadě záznamů Name.

OnCellSelect( Name : string; Row, Column : real )

Procedura je volána po vybrání položky v sloupci Column v záznamu (řádku) Row v tabulce, dotazu nebo sadě záznamů Name.

OnColumnSelect( Name, ColumnName : string; ColumnIndex : real )

Procedura je volána po vybrání sloupce ColumnName resp. ColumnIndex v tabulce, dotazu nebo sadě záznamů Name.

OnError( ErrorMessage : string )

Procedura je volána po vzniku chyby. Parametr ErrorMessage obsahuje chybové hlášení.