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álhatja.
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ó |
---|---|
SELECT | Adatok kiválasztása |
CREATE SYNONYM | Szinonima készítése (hosszú elérési útadatok helyettesítése rövid névvel) |
DROP SYNONYM | Szinonima 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 |
UPDATE | 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 kiszolgáló az adatokat soronként menti el az Result-set-ben (eredménymennyiség). A sorok 0-tól növekvő sorrendben vannak számozva. A sor (az INDEX) ezen számát a FETCH és UPDATE SQL parancs használja.
Az SQL EXECUTE a SELECT SQL paranccsal együtt 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 adhatja meg a keresési feltételeket. 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, akkor a táblázat minden sora betöltődik.
Az SQL ... "SELECT...ORDER BY..." funkcióban megadhatja a rendezési feltételt. Ha az oszlop megnevezését és az ASC kulcsszót adja meg, a rendezés növekvő sorrendben, míg a DESC kulcsszóval csökkenő sorrendben jelenik meg. Ha nem alkalmazza ezt az opciót, akkor a sorok véletlenszerű sorrendben lesznek elmentve.
Az SQL ... "SELECT...FOR UPDATE" funkcióval zárolhatja a kiválasztott sorokat más alkalmazásokhoz. 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 kiszolgáló é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
- Ha azSQL EXECUTE NC funkciót választja ki, a vezérlő csak az SQL szintaxiselemet illeszti be az NC programba.
- A még nem létrehozott táblázatokhoz is definiálhat szinonimákat.
- Az oszlopok sorrendje a létrehozott fájlban megegyezik az AS SELECT parancson belüli sorrenddel.
- Az SQL-parancson belüli utasításokhoz ugyanígy használhat egyszerű vagy összetett QS-paramétereket.
- A WHERE szintaxiselem után az összehasonlító értéket változóként is definiálhatja. Ha Q, QL vagy QR paramétereket használ az összehasonlításhoz, a vezérlő egész számra kerekíti a megadott értéket. Ha QA-paramétert használ, a vezérlő a megadott értéket használja.
- Ha QS-paraméter tartalmát ellenőrzi a kiegészítő állapotkijelzőn (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 |