FETCH nutzen um Wert(e) einer Zeile in einer Variablen zu speichern.
Im Access-Projekt wird mit einer gespeicherten Prozedur mit FETCH einer Variablen ein Wert zugewiesen, aber die Variable bleibt leer (<null>).
Sie Sicht VIEW5 befindet sich auf einem MS-SQL 2000 Server und enthält zu Testzwecken nur eine Spalte <VersStat> mit 3 Zeilen:
VersStat
11
33
51
In einem MS-Access Projekt (*.adp) wird eine gespeicherte Prozedur aufgerufen. Das Auslesen von Zeilen dieser VIEW5 gelingt nicht:
Es sollen nacheinander alle Zeilen (oder ohne Schleife zunächst zum Test nur eine Zeile) gelesen und das Leseergebnis in einer Variablen gespeichert werden.
DECLARE @versstat char(2)
DECLARE TestCursor CURSOR FOR SELECT VersStat FROM VIEW5
DECLARE @zahlktr decimal(7,2)
OPEN TestCursor
FETCH FROM TestCursor INTO @versstat
/* Zur Prüfung des Leseergebnisses wird @versstat in eine bestehende Tabelle T_VersStat in die Spalte VS eingetragen */
EXEC('UPDATE T_VersStat SET VS = ' + @versstat + '')
/* Später soll @versstat in einer WHERE-Klausel verwendet werden */
SET @zahlktr = (SELECT SUM(GPVersStat) FROM T_VersStat WHERE VersStat = @versstat)
EXEC('UPDATE T_VersStat SET ZahlKtr = ' + @zahlktr + '')
*/
CLOSE TestCursor
In der Tabelle T_VersStat sind die Werte der Spalte VersStat <null>. Es liegt auch kein anderweitiger Fehler vor, der z.B. die Prozedur vorzeitig unkontrolliert abbricht; denn wenn die UPDATE-Anweisung statt @versstat zum Test z.B. die Zahl 11 verwendet, wird diese 11 ordnungsgemäß eingetragen.
Kann mir jemand helfen ?
PCFJKG
Sie Sicht VIEW5 befindet sich auf einem MS-SQL 2000 Server und enthält zu Testzwecken nur eine Spalte <VersStat> mit 3 Zeilen:
VersStat
11
33
51
In einem MS-Access Projekt (*.adp) wird eine gespeicherte Prozedur aufgerufen. Das Auslesen von Zeilen dieser VIEW5 gelingt nicht:
Es sollen nacheinander alle Zeilen (oder ohne Schleife zunächst zum Test nur eine Zeile) gelesen und das Leseergebnis in einer Variablen gespeichert werden.
DECLARE @versstat char(2)
DECLARE TestCursor CURSOR FOR SELECT VersStat FROM VIEW5
DECLARE @zahlktr decimal(7,2)
OPEN TestCursor
FETCH FROM TestCursor INTO @versstat
/* Zur Prüfung des Leseergebnisses wird @versstat in eine bestehende Tabelle T_VersStat in die Spalte VS eingetragen */
EXEC('UPDATE T_VersStat SET VS = ' + @versstat + '')
/* Später soll @versstat in einer WHERE-Klausel verwendet werden */
SET @zahlktr = (SELECT SUM(GPVersStat) FROM T_VersStat WHERE VersStat = @versstat)
EXEC('UPDATE T_VersStat SET ZahlKtr = ' + @zahlktr + '')
*/
CLOSE TestCursor
In der Tabelle T_VersStat sind die Werte der Spalte VersStat <null>. Es liegt auch kein anderweitiger Fehler vor, der z.B. die Prozedur vorzeitig unkontrolliert abbricht; denn wenn die UPDATE-Anweisung statt @versstat zum Test z.B. die Zahl 11 verwendet, wird diese 11 ordnungsgemäß eingetragen.
Kann mir jemand helfen ?
PCFJKG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93711
Url: https://administrator.de/contentid/93711
Ausgedruckt am: 27.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Moin PCFJKG,
könnte daran liegen, dass die Urheberrechte auf die Syntax
Ändert sich das Verhalten, wenn ihr euch auf die gemeinsame Syntax
Grüße
Biber
könnte daran liegen, dass die Urheberrechte auf die Syntax
FETCH FROM TestCursor INTO @versstat
... bei Dir liegen und M$ sich deshalb nicht traut, diese Erfindung in Access zu implementieren.Ändert sich das Verhalten, wenn ihr euch auf die gemeinsame Syntax
FETCH TestCursor INTO @versstat
.. einigt?Grüße
Biber