Provádění SQL-příkazů pomocí SQL EXECUTE

Použití

SQL EXECUTE používejte ve spojení s různými SQL-příkazy.

Předpoklady

  • Číslo klíče 555343
  • Tabulka je k dispozici
  • Vhodný název tabulky
  • Názvy tabulek a sloupců musí začínat písmenem a nesmí obsahovat žádné výpočetní znaky, například +. Tyto znaky mohou způsobit při načítání nebo čtení dat problémy kvůli SQL-příkazům.

Popis funkce

SQL EXECUTE_01
Černé šipky a příslušná syntaxe ukazují interní průběhy SQL EXECUTE. Šedé šipky a příslušná syntaxe nepatří bezprostředně k příkazu SQL SELECT.

Řídicí systém poskytuje následující SQL-příkazy v příkazu SQL EXECUTE:

Pokyn

Funkce

SELECT

Vybrat data

CREATE SYNONYM

Vytvořit synonymum (nahradit dlouhou cestu krátkým názvem)

DROP SYNONYM

Smazat synonymum

CREATE TABLE

Vytvořit tabulku

COPY TABLE

Kopírovat tabulku

RENAME TABLE

Přejmenovat tabulku

DROP TABLE

Smazat tabulku

INSERT

Vložit řádky tabulky

UPDATE

Aktualizace řádků tabulky

DELETE

Smazat řádky tabulky

ALTER TABLE

  • Pomocí ADD vložit sloupce tabulky
  • Pomocí DROP smazat sloupce tabulky

RENAME COLUMN

Přejmenovat sloupečky tabulky

SQL EXECUTE s SQL-příkazem SELECT

SQL-server ukládá data po řádcích do Result-set (množiny výsledků). Řádky se číslují postupně od 0. Toto číslo řádku (Index) se používá v SQL-příkazech FETCH a UPDATE.

SQL EXECUTE ve spojení s SQL-příkazem SELECT vybere hodnoty v tabulce, přenese je do Result-set (Výsledkové sady) a otevře přitom vždy transakci. Na rozdíl od SQL-příkazu SQL SELECT umožňuje kombinace SQL EXECUTE a pokynu SELECT současný výběr více sloupců a řádků.

Ve funkci SQL ... "SELECT...WHERE..." zadáte hledací kritéria. Tím můžete dle potřeby omezit počet přenášených řádek. Když tuto opci nepoužijete, nahrají se všechny řádky tabulky.

Ve funkci SQL ... "SELECT ... ORDER BY ..." zadejte třídicí kritéria. Zadání obsahuje označení sloupečku a heslo (ASC) pro vzestupné nebo (DESC) sestupné třídění. Nepoužijete-li tuto opci, tak se budou řádky ukládat v náhodném pořadí.

Ve funkci SQL ... "SELECT...FOR UPDATE" zablokujete vybrané řádky pro ostatní aplikace. Ostatní aplikace mohou tyto řádky číst, ale nemohou je měnit. Máte-li provést změny zápisů v tabulce, použijte bezpodmínečně tuto volbu.

Prázdný Result-set: Nejsou-li k dispozici žádné řádky, které by odpovídaly výběrovým kritériím, tak SQL-server vrátí platný HANDLE bez tabulkových záznamů.

Podmínky zadání WHERE

Podmínka

Programování

je rovno

= ==

není rovno

!= <>

menší

<

menší nebo rovno

<=

větší

>

větší než nebo rovno

>=

prázdné

IS NULL

není prázdné

IS NOT NULL

Spojování několika podmínek:

Logické A

AND

Logické NEBO

OR

Upozornění

  • Můžete definovat synonyma také pro ještě nevytvořené tabulky.
  • Pořadí sloupců ve vytvořené tabulce odpovídá pořadí v pokynu AS SELECT,
  • Pro pokyny v rámci SQL-příkazů můžete používat jednoduché nebo složené QS-parametry.
  • Řetězení alfanumerické hodnoty

  • Pokud kontrolujete obsah QS-parametrů v přídavné indikaci stavu (záložka QPARA), uvidíte pouze prvních 30 znaků a tudíž neúplný obsah.
  • Záložka QPARA

Příklad

Příklad: Zvolit řádky tabulky

11 SQL BIND Q881 "Tab_Example.Position_Nr"

12 SQL BIND Q882 "Tab_Example.Measure_X"

13 SQL BIND Q883 "Tab_Example.Measure_Y"

14 SQL BIND Q884 "Tab_Example.Measure_Z"

. . .

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example"

Příklad: Výběr řádků tabulky s funkcí WHERE (KDE)

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20"

Příklad: Výběr řádků tabulky s funkcí WHERE (KDE) a Q-parametry

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’"

Příklad: Definování názvu tabulky pomocí absolutní cesty

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM ’V:­\table­\Tab_Example’ WHERE Position_Nr<20"

0 BEGIN PGM SQL_CREATE_TAB MM

1 SQL Q10 "CREATE SYNONYM NEW FOR 'TNC:\table\NewTab.TAB'"

; Vytvořit synonymum

2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'"

; Vytvořit tabulku

3 END PGM SQL_CREATE_TAB MM

0 BEGIN PGM SQL_CREATE_TABLE_QS MM

1 DECLARE STRING QS1 = "CREATE TABLE "

2 DECLARE STRING QS2 = "'TNC:\nc_prog\demo\Doku\NewTab.t' "

3 DECLARE STRING QS3 = "AS SELECT "

4 DECLARE STRING QS4 = "DL,R,DR,L "

5 DECLARE STRING QS5 = "FROM "

6 DECLARE STRING QS6 = "'TNC:\table\tool.t'"

7 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

8 SQL Q1800 QS7

9 END PGM SQL_CREATE_TABLE_QS MM