Sql commit, Sql rollback, 9 t a bellenzugr if fe mit sql -an w e isung e n – HEIDENHAIN TNC 640 (34059x-01) Benutzerhandbuch
Seite 298

298
Programmieren: Q-Parameter
8.9 T
a
bellenzugr
if
fe mit SQL
-An
w
e
isung
e
n
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.
U
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)
U
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
programmiert 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
anderen 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.
U
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)
U
Datenbank: SQL-Zugriffs-ID
: Q-Parameter, mit dem
Handle zur Identification des Result-sets (siehe auch
SQL SELECT
).
U
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