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 fekete nyilak és az ahhoz tartozó szintaktika mutatja az SQL EXECUTE belső lefutását. A szürke nyilak és az ahhoz tartozó szintaktika nem tartozik közvetlenül az SQL EXECUTE parancshoz.

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

  • Az ADD segítségével táblázatoszlopok beszúrása
  • A DROP segítségével táblázatoszlopok törlése

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.

A WHERE-megadásának feltételei

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.
  • Alfanumerikus értékek összekapcsolása

  • 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.
  • QPARA fül

Példa

Példa: táblázatsorok kiválasztása

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élda: táblázatsorok kiválasztása a WHERE funkcióval

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

Példa: táblázatsorok kiválasztása a WHERE funkcióval és Q paraméterrel

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

Példa: táblázatnév definiálása abszolút elérési út megadásával

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