Utfør SQL-setninger med SQL EXECUTE

Bruk

Du bruker SQL EXECUTE i forbindelse med ulike SQL-setninger.

Forutsetninger

  • Nøkkeltall 555343
  • Tabell tilgjengelig
  • Egnet tabellnavn
  • Navnene på tabeller og tabellkolonner, må begynne med en bokstav og må ikke inneholde noen regnetegn, f.eks. +. Disse tegnene kan føre til problemer på grunn av SQL-kommandoer ved innlesing eller utlesing av data.

Funksjonsbeskrivelse

SQL EXECUTE_01
Svarte piler og tilhørende syntaks viser interne operasjoner i SQL EXECUTE. Grå piler og tilhørende syntaks hører ikke umiddelbart til kommandoen SQL EXECUTE.

Styringen gir følgende SQL-setninger i kommandoen SQL EXECUTE:

Setning

Funksjon

SELECT

Velg data

CREATE SYNONYM

Opprett synonym (erstatte lange baneangivelser med korte navn)

DROP SYNONYM

Slett synonym

CREATE TABLE

Generer tabell

COPY TABLE

Kopier tabell

RENAME TABLE

Gi nytt navn til tabell

DROP TABLE

Slett tabell

INSERT

Sett inn tabellinjer

UPDATE

Oppdater tabellinjer

DELETE

Slett tabellinjer

ALTER TABLE

  • Legg til tabellkolonner med ADD
  • Slett tabellkolonner med DROP

RENAME COLUMN

Gi nytt navn til tabellkolonner

SQL EXECUTE med SQL-setningen SELECT

SQL-serveren lagrer dataene linjevis i resultatsettet (resultatmengden). Linjene nummereres fortløpende fra 0 og oppover. Disse linjenumrene (til INDEX) brukes ved SQL-kommandoene FETCH og UPDATE.

Når SQL EXECUTE brukes i forbindelse med SQL-setningen SELECT, blir det valgt tabellverdier som blir overført til resultatsettet. I motsetning til SQL-kommandoen SQL SELECT muliggjør kombinasjonen av SQL EXECUTE og setningen SELECT at flere kolonner og linjer kan velges samtidig.

I funksjonen SQL ... "SELECT...WHERE..." angir du søkekriteriene. Dermed kan du begrense antall linjer som skal overføres etter behov. Hvis du ikke bruker dette alternativet, lastes alle linjer i tabellen.

I funksjonen SQL ... "SELECT...ORDER BY..." angir du sorteringskriteriet. Angivelsen består av kolonnebetegnelsen og nøkkelordet (ASC) for stigende eller (DESC) synkende sortering. Hvis du ikke bruker dette alternativet, lagres linjene i tilfeldig rekkefølge.

Med funksjonen SQL ... "SELECT...FOR UPDATE" sperrer du de valgte linjene for andre applikasjoner. Andre applikasjoner kan fortsatt lese disse linjene, men ikke endre dem. Når du skal foreta endringer i tabellpostene, må du bruke dette alternativet.

Tomt resultatsett: Hvis det ikke finnes noen linjer som oppfyller søkekriteriet, returnerer SQL-serveren en gyldig HANDLE, men uten tabellposter.

Betingelser for WHERE-angivelsen

Betingelse

programmering

lik

= ==

ulik

!= <>

mindre enn

<

mindre enn eller lik

<=

større enn

>

større enn eller lik

>=

Tom

IS NULL

ikke tom

IS NOT NULL

Tilknytte flere betingelser:

Logisk OG

AND

Logisk ELLER

OR

Tips:

  • Du kan også definere synonymer for tabeller som ikke er opprettet ennå.
  • Rekkefølgen på kolonnene i den genererte filen tilsvarer rekkefølgen i AS SELECT-setningen.
  • Du kan bruke enkle eller sammensatte QS-parametere for setningene i SQL-kommandoen.
  • Føye sammen alfanumeriske verdier

  • Hvis du kontrollerer innholdet til en QS-parameter i en egen statusvisning (fane QPARA), ser du bare de første 30 tegnene og dermed ikke hele innholdet.
  • Fanen QPARA

Eksempel

Eksempel: Velge alle tabellinjer

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"

Eksempel: Velge tabellinjer med funksjonen WHERE

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

Eksempel: Velge tabellinjer med funksjonen WHERE og Q-parameter

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

Eksempel: Definere tabellnavn ved absolutt baneangivelse

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

; Opprette synonym

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

; Opprette 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