Frage zu tableupdate()

10/12/2009 - 11:28 von tom knauf | Report spam
Moin ,moin

ich bearbeite hier einen geerbten àlteren Code und habe da ein
Verstàndnisproblem :

Zunàchst wird eine Remoteview zum SQL-Server mit Use geöffnet.
Dann folgen einige Append blanks, repl ... with ... und zum Schluss NACH
alle Appends : Tableupdate(.t.)

also
use RV_xxx

nKey=neuerkey()
sele rv_xxx
appe blank
repl pk_xxx with nKey
repl nPos with 1

nKey=neuerkey()
sele rv_xxx
appe blank
repl pk_xxx with nKey
repl nPos with 2

nKey=neuerkey()
sele rv_xxx
appe blank
repl pk_xxx with nKey
repl nPos with 3

FLUSH
IF CURSORGETPROP("Buffering")>1
=TABLEUPDATE(.t.)
ENDIF

Nun passiert es laut User manchmal, da nur der letzte von mehreren Sàtzen
(npos=3) in der Datenbank erscheint.

Frage
Was bewirkt der Tableupdate(.t.), wie sollte er "korrekt" lauten ?
(Änderungen anderer User an den Sàtzen sind nicht möglich, sind alles
appends)
wàre =Tableupdate(1,.t.,"rv_xxx") besser ?

Eigentlich sollten doch die Appends ein Tableupdate() auf dem SQL-Server
implizit ausführen,
da ja der Recordpointer ja wechselt (wie beim Skip) ?


Vielen Dank für Eure Hilfe

Verwirrte Grüße aus Hamburg
Tom
 

Lesen sie die antworten

#1 Hans-Peter Grözinger
10/12/2009 - 11:53 | Warnen spam
Hallo Tom !

IF CURSORGETPROP("Buffering")>1
=TABLEUPDATE(.t.)
ENDIF

Nun passiert es laut User manchmal, da nur der letzte von mehreren
Sàtzen (npos=3) in der Datenbank erscheint.

Frage
Was bewirkt der Tableupdate(.t.), wie sollte er "korrekt" lauten ?



Je nach Puffermodus wird nur der letzte Datensatz zurückgeschreiben.
Ich würde das mal mit Tableupdate( 1, .T. ) probieren.
Damit werden _alle_ geànderten Datensàtze gespeichert.

(Änderungen anderer User an den Sàtzen sind nicht möglich, sind alles
appends) wàre =Tableupdate(1,.t.,"rv_xxx") besser ?



Ja, siehe oben.

Eigentlich sollten doch die Appends ein Tableupdate() auf dem
SQL-Server implizit ausführen, da ja der Recordpointer ja wechselt
(wie beim Skip) ?



Nein, das passiert nur wenn man direkt auf Tabellen arbeitet aber
nicht bei Views und Remote-Views.

Hans-Peter Grözinger
TOFU ist gedankenlose Resourcenverschwendung.
http://einklich.net/usenet/zitier.htm
http://support.microsoft.com/defaul...GNetikette

Ähnliche fragen