Anmelden

View Full Version : SQL Aktualisiertes Recordset



harkne
22-10-24, 13:22
Hallo zusammen,

Ich mache einen Declare Scroll Cursor.
Danach in einer Schleife meinen FETCH NEXT oder auch FETCH PRIOR

Was für eine Definition muss ich angeben, dass das Recordset immer aktulisiert wird, ich also auch Sätze erhalte, die zum Zeitpunkt des open cursors noch nicht vorhanden waren aber zwischenzeitlich von einem anderen Programm geschrieben wurden?

Der sensitive dynamic scroll cursor macht das nicht, obwohl ich es erwartet hätte

exec sql prepare s_part from :w@Sql;
exec sql declare c_part sensitive dynamic scroll cursor for s_part;
exec sql open c_part;
Danke

Viele Grüße Harald

Fuerchau
22-10-24, 23:29
Enthält der Cursor einen OrderBy und kann er über einen Index gehen?
Neue Daten werden i.d.R. in den nächsten freien Satz oder ans Ende der Tabelle geschrieben.
Über den Schlüssel kommen sie in die Sortierung.
Wenn du dann nicht über einen Index gehst (order by) kommen die neuen Daten nicht an dir vorbei, es sei denn du liest bis ans Ende, nach einem Prior zum Anfang.

harkne
23-10-24, 07:39
Ich habe with T1 ... und der T5 macht einen UNION mit T2, T3 und T4. Danach mach ich einen select auf T5 mit order by

BenderD
23-10-24, 08:15
Ich habe with T1 ... und der T5 macht einen UNION mit T2, T3 und T4. Danach mach ich einen select auf T5 mit order by

... der union macht den cursor implizit read only, was sensitive ausschließt.

D*B

harkne
23-10-24, 11:58
Ja danke, ich hätte die Nachricht im Joblog lesen sollen. Dort sagt er es auch.