Utför SQL-satser med SQL EXECUTE

Användningsområde

SQL EXECUTE används i kombination med olika SQL-instruktioner.

Förutsättningar

  • Kodnummer 555343
  • Tabell finns
  • Lämpligt tabellnamn
  • Namnet på tabeller i tabellkolumner måste inledas med en bokstav och får inte innehålla några aritmetiska tecken, t.ex. +. Dessa tecken kan på grund av SQL-kommandon leda till problem vid inläsning eller utläsning av data.

Funktionsbeskrivning

SQL EXECUTE_01
Svarta pilar och tillhörande syntax visar interna förlopp i SQL SELECT. Gråa pilar och tillhörande syntax hör inte direkt till kommandot SQL EXECUTE.

Styrsystemet erbjuder följande SQL-satser i kommandot SQL EXECUTE:

Instruktioner

Funktion

SELECT

Selektera data

CREATE SYNONYM

Skapa synonym (långa sökvägar ersätts av ett kort namn)

DROP SYNONYM

Radera synonym

CREATE TABLE

Skapa tabell

COPY TABLE

Kopiera tabell

RENAME TABLE

Döp om tabell

DROP TABLE

Radera tabell

INSERT

Infoga tabellrader

UPDATE

Uppdatera tabellrader

DELETE

Radera tabellrader

ALTER TABLE

  • Med ADD infogas tabellkolumner
  • Med DROP raderas tabellkolumner

RENAME COLUMN

Döp om tabellkolumner

SQL EXECUTE med SQL-instruktion SELECT

SQL-servern lägger in data radvis i Result-set (resultatmängd). Raderna börjar med 0 och har en stigande numrering. Detta radnummer (INDEX) använder SQL-kommandona FETCH och UPDATE.

SQL EXECUTE i kombination med SQL-instruktionen SELECT selekterar tabellvärden, överför dem till Result-set och öppnar då alltid en transaktion. I motsats till SQL-kommandot SQL SELECT möjliggör kombinationen av SQL EXECUTE och instruktionen SELECT ett samtidigt val av flera kolumner och rader.

I funktionen SQL ... ”SELECT...WHERE...” anger du sökkriterierna. På detta sätt kan du begränsa antalet rader som skall överföras. Om du inte använder denna option kommer alla rader i tabellen att laddas.

I funktionen SQL ... ”SELECT...ORDER BY...” anger du sökkriteriet. Kolumnens namn samt kodordet ASC för stigande eller DESC fallande sortering. Om du inte använder denna option kommer raderna att läggas in i en slumpmässig ordningsföljd.

Med funktionen SQL ... ”SELECT...FOR UPDATE” spärrar man de selekterade raderna för andra applikationer. Andra applikationer kan även i fortsättningen läsa dessa rader, dock inte ändra dem. Du skall ovillkorligen använda denna option när du genomför ändringar av tabelluppgifter.

Tomt Result-set: Om ingen rad motsvarar sökkriteriet returnerar SQL-servern en giltig HANDLE utan tabellinmatningar.

Villkor i WHERE-instruktionen

Villkor

programmering

lika

= ==

olika

!= <>

mindre

<

mindre eller lika

<=

större

>

större eller lika

>=

tom

IS NULL

ej tom

IS NOT NULL

Sammankoppla flera villkor:

Logiskt OCH

AND

Logiskt ELLER

OR

Anmärkning

  • Det går även att definiera synonymer för tabeller som inte har skapats än.
  • Kolumnernas ordningsföljd i den skapade filen motsvarar ordningsföljden i AS SELECT-instruktionen.
  • Även instruktionerna som används i ett SQL-kommando kan innehålla enkla eller sammansatta QS-parametrar.
  • Sammanfoga alfanumeriska värden

  • När man kontrollerar en QS-parameters innehåll i den extra statuspresentationen (fliken QPARA) ser man inte hela innehållet utan endast de 30 första tecknen.
  • Flik QPARA

Exempel

Exempel: Selektera tabellrader

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"

Exempel: Selektera tabellrader med funktionen WHERE

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

Exempel: Selektera tabellrader med funktionen WHERE och Q-parametrar

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

Exempel: Definiera ett tabellnamn genom att ange en absolut sökväg

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'"

; Skapa synonym

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

; Skapa tabell

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