SQL utasítások végrehajtása SQL EXECUTE
Alkalmazás
Az SQL EXECUTE-t különböző SQL utasításokkal összefüggésben használja.
Előfeltételek
- Kulcsszám 555343
- Táblázat létezik
- Megfelelő táblázatnév
A táblázatneveknek és a táblázatok oszlopneveinek betűvel kell kezdődniük, és nem tartalmazhatnak számolási jeleket, pl. +. Ezen jelek az SQL parancsok kapcsán az adatok beolvasása és importálása során problémákhoz vezethetnek.
Funkcióleírás
A vezérlő a következő SQL utasításokat kínálja az SQL EXECUTE paranccsal:
Parancs | Funkciók |
---|---|
SELECT | Adatok kiválasztása |
CREATE SYNONYM | Szinoníma készítése (hosszú útvonaladatok helyettesítése rövid névvel) |
DROP SYNONYM | Szinoníma törlése |
CREATE TABLE | Táblázat létrehozása |
COPY TABLE | Táblázat másolása |
RENAME TABLE | Táblázat átnevezése |
DROP TABLE | Táblázat törlése |
INSERT | Táblázatsor beszúrása |
FRISSITÉS | Táblázatsor aktualizálása |
DELETE | Táblázatsor törlése |
ALTER TABLE |
|
RENAME COLUMN | Táblázatoszlopok átnevezése |
SQL EXECUTE a SELECT SQL paranccsal
Az SQL szerver az adatokat soronként menti el az Result-set-ben (eredménymennyiség). A sorok 0-től növekvő sorrendben kerülnek számozásra. A sor ezen számát (az INDEX-et) a FETCH és UPDATE SQL parancsok használják.
SQL EXECUTE a SELECT SQL paranccsal összeköttetésben kiválasztja a táblázatértékeket, majd átküldi azokat a Result-set-be, és közben mindig megnyit egy tranzakciót. Az SQL SELECT SQL paranccsal ellentétben az SQL EXECUTE és a SELECT parancs kombinációja több oszlop és sor egyidejű kiválasztását teszi lehetővé.
Az SQL ... "SELECT...WHERE..." funkcióban keresési feltételeket ad meg. Ezzel a megadással az átküldendő sorok számát tudja szükség esetén behatárolni. Ha nem alkalmazza ezt az opciót, úgy a táblázat minden sora betöltésre kerül.
Az SQL ... "SELECT...ORDER BY..." funkcióban a rendezési feltételeket adja meg. Ha az oszlop megnevezését és az ASC jelölést adja meg, a rendezés növekvő sorrendben jelenik meg, míg a DESC jelöléssel csökkenő sorrend fog látszódni. Ha nem alkalmazza ezt az opciót, úgy a sorok véletlenszerű sorrendben kerülnek elmentésre.
Az SQL ... funkcióval "SELECT...FOR UPDATE" funkcióval védi le a kiválasztott sorokat más alkalmazások általi hozzáférés elől. A többi alkalmazás ekkor olvasni tudja a sorokat, de módosítani nem. Ha módosításokat hajt végre a táblázatbeírásokban, feltétlenül használja ezt az opciót.
Üres Result-set: Ha egyetlen sor sem felel meg a keresési feltételeknek, az SQL szerver érvényes HANDLE-t küld vissza, de nem jelennek meg táblázatbeírások.
Feltétel | Programozás |
---|---|
egyenlő | = == |
nem egyenlő | != <> |
kisebb | < |
kisebb vagy egyenlő | <= |
nagyobb | > |
nagyobb vagy egyenlő | >= |
üres | nulla |
nem üres | nem nulla |
Több feltétel összekapcsolása: | |
Logikai ÉS | AND |
Logikai VAGY | OR |
Megjegyzések
- A még nem létrehozott táblázatokhoz is definiálhat szinonimákat.
- Az oszlopok sorrendje a létrehozott fájlban megegyezik a AS SELECT parancson belüli sorrenddel.
- Az SQL-parancson belüli parancsoknak ugyanígy használhat egyszerű vagy összetett QS-paramétereket.
- Ha QS-paraméter tartalmát vizsgálja a kiegészítő állapotkijelzőben (QPARA fül), akkor csak az első 30 sort látja, és ezáltal nem a teljes tartalmat.
Példa
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" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’" |
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'" | ; Szinonima létrehozása |
2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'" | ; Táblázat létrehozása |
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 |