Sql commit, Sql rollback, 10 .13 pr ogr a mmier -beispiele – HEIDENHAIN TNC 320 (340 551-01) Benutzerhandbuch
Seite 357

HEIDENHAIN TNC 320
357
1
0
.13 Pr
ogr
a
mmier
-Beispiele
SQL COMMIT
SQL COMMIT
transferiert alle im Result-set vorhandenen Zeilen zurück
in die Tabelle. Eine mit SELCT...FOR UPDATE gesetzte Sperre wird
zurückgesetzt.
Das bei der Anweisung SQL SELECT vergebene Handle verliert seine
Gültigkeit.
8
Parameter-Nr für Ergebnis
: Q-Parameter, in dem der
SQL-Server das Ergebnis zurückmeldet:
0: kein Fehler aufgetreten
1: Fehler aufgetreten (falsches Handle oder gleiche
Einträge in Spalten, in denen eindeutige Einträge
gefordert sind)
8
Datenbank: SQL-Zugriffs-ID
: Q-Parameter, mit dem
Handle zur Identification des Result-sets (siehe auch
SQL SELECT
).
SQL ROLLBACK
Die Ausführung des SQL ROLLBACK ist abhängig davon, ob INDEX pro-
grammiert ist:
INDEX
nicht programmiert: Der Result-set wird nicht in die Tabelle
zurückgeschrieben (eventuelle Änderungen/Ergänzungen gehen
verloren). Die Transaktion wird abgeschlossen – das bei SQL SELECT
vergebene Handle verliert seine Gültigkeit. Typische Anwendung:
Sie beenden eine Transaktion mit ausschließlich lesenden Zugriffen.
INDEX
programmiert: Die indizierte Zeile bleibt erhalten – alle ande-
ren Zeilen werden aus dem Result-set entfernt. Die Transaktion
wird nicht abgeschlossen. Eine mit SELCT...FOR UPDATE gesetzte
Sperre bleibt für die indizierte Zeile erhalten – für alle anderen Zeilen
wird sie zurückgesetzt.
8
Parameter-Nr für Ergebnis
: Q-Parameter, in dem der
SQL-Server das Ergebnis zurückmeldet:
0: kein Fehler aufgetreten
1: Fehler aufgetreten (falsches Handle)
8
Datenbank: SQL-Zugriffs-ID
: Q-Parameter, mit dem
Handle zur Identification des Result-sets (siehe auch
SQL SELECT
).
8
Datenbank: Index zu SQL-Ergebnis
: Zeile, die im
Result-set bleiben soll. Die Zeilen-Nummer wird
direkt angegeben oder Sie programmieren den Q-
Parameter, der den Index enthält.
Beispiel:
11 SQL BIND Q881 "TAB_EXAMPLE.MESS_NR"
12 SQL BIND Q882 "TAB_EXAMPLE.MESS_X"
13 SQL BIND Q883 "TAB_EXAMPLE.MESS_Y"
14 SQL BIND Q884 "TAB_EXAMPLE.MESS_Z"
. . .
20 SQL Q5 "SELECT MESS_NR,MESS_X,MESS_Y,
MESS_Z FROM TAB_EXAMPLE"
. . .
30 SQL FETCH Q1 HANDLE Q5 INDEX+Q2
. . .
40 SQL UPDATE Q1 HANDLE Q5 INDEX+Q2
. . .
50 SQL COMMIT Q1 HANDLE Q5
Beispiel:
11 SQL BIND Q881 "TAB_EXAMPLE.MESS_NR"
12 SQL BIND Q882 "TAB_EXAMPLE.MESS_X"
13 SQL BIND Q883 "TAB_EXAMPLE.MESS_Y"
14 SQL BIND Q884 "TAB_EXAMPLE.MESS_Z"
. . .
20 SQL Q5 "SELECT MESS_NR,MESS_X,MESS_Y,
MESS_Z FROM TAB_EXAMPLE"
. . .
30 SQL FETCH Q1 HANDLE Q5 INDEX+Q2
. . .
50 SQL ROLLBACK Q1 HANDLE Q5