SQL EXECUTE verwenden Sie in Verbindung mit verschiedenen SQL-Anweisungen.
Anwendung
Voraussetzungen
- Schlüsselzahl 555343
- Tabelle vorhanden
- Geeigneter Tabellenname
Die Namen von Tabellen und Tabellenspalten müssen mit einem Buchstaben beginnen und dürfen keine Rechenzeichen, z. B. + beinhalten. Diese Zeichen können aufgrund von SQL-Befehlen beim Einlesen oder Auslesen von Daten zu Problemen führen.
Funktionsbeschreibung

Die Steuerung bietet folgende SQL-Anweisungen im Befehl SQL EXECUTE:
Anweisung | Funktion |
---|---|
SELECT | Daten selektieren |
CREATE SYNONYM | Synonym erstellen (lange Pfandangaben durch kurzen Namen ersetzen) |
DROP SYNONYM | Synonym löschen |
CREATE TABLE | Tabelle erzeugen |
COPY TABLE | Tabelle kopieren |
RENAME TABLE | Tabelle umbenennen |
DROP TABLE | Tabelle löschen |
INSERT | Tabellenzeilen einfügen |
UPDATE | Tabellenzeilen aktualisieren |
DELETE | Tabellenzeilen löschen |
ALTER TABLE |
|
RENAME COLUMN | Tabellenspalten umbenennen |
SQL EXECUTE mit der SQL-Anweisung SELECT
Der SQL-Server legt die Daten zeilenweise im Result-set (Ergebnismenge) ab. Die Zeilen werden, mit 0 beginnend, fortlaufend nummeriert. Diese Zeilennummer (der INDEX) verwenden die SQL-Befehle FETCH und UPDATE.
SQL EXECUTE in Verbindung mit der SQL-Anweisung SELECT wählt Tabellenwerte, transferiert sie in den Result-set und eröffnet dabei immer eine Transaktion. Im Gegensatz zum SQL-Befehl SQL SELECT ermöglicht die Kombination aus SQL EXECUTE und der Anweisung SELECT eine gleichzeitige Auswahl mehrerer Spalten und Zeilen.
In der Funktion SQL ... "SELECT...WHERE..." geben Sie die Suchkriterien an. Damit grenzen Sie die Anzahl der zu transferierenden Zeilen bei Bedarf ein. Wenn Sie diese Option nicht verwenden, werden alle Zeilen der Tabelle geladen.
In der Funktion SQL ... "SELECT...ORDER BY..." geben Sie das Sortierkriterium an. Die Angabe besteht aus der Spaltenbezeichnung und dem Schlüsselwort ASC für aufsteigende oder DESC absteigende Sortierung. Wenn Sie diese Option nicht verwenden, werden die Zeilen in einer zufälligen Reihenfolge abgelegt.
Mit der Funktion SQL ... "SELECT...FOR UPDATE" sperren Sie die selektierten Zeilen für andere Anwendungen. Andere Anwendungen können diese Zeilen weiterhin lesen, aber nicht ändern. Wenn Sie Änderungen an den Tabelleneinträgen vornehmen, verwenden Sie diese Option unbedingt.
Leerer Result-set: Wenn keine Zeilen dem Suchkriterium entsprechen, liefert der SQL-Server ein gültiges HANDLE ohne Tabelleneinträge zurück.
Bedingung | Programmierung |
---|---|
gleich | = == |
ungleich | != <> |
kleiner | < |
kleiner oder gleich | <= |
größer | > |
größer oder gleich | >= |
leer | IS NULL |
nicht leer | IS NOT NULL |
Mehrere Bedingungen verknüpfen: | |
Logisches UND | AND |
Logisches ODER | OR |
Hinweise
- Sie können auch für noch nicht erzeugte Tabellen Synonyme definieren.
- Die Reihenfolge der Spalten in der erzeugten Datei entspricht der Reihenfolge innerhalb der AS SELECT-Anweisung.
- Sie können für die Anweisungen innerhalb vom SQL-Befehl ebenfalls einfache oder zusammengesetzte QS-Parameter verwenden.
- Wenn Sie den Inhalt eines QS-Parameters in der zusätzlichen Statusanzeige (Reiter QPARA) prüfen, sehen Sie ausschließlich die ersten 30 Zeichen und somit nicht den vollständigen Inhalt.
Alpha-numerische Werte verketten
Beispiel
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'" | Synonym erstellen |
2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'" | Tabelle erstellen |
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 |