deutschsprachige FoxPro User Group
Forum View
Home
  
  Re: CA speichert nicht- #20492 in section [741829]
Sec: (28) VFX deutsch
Von: Hans-Werner Rodrian
An: Uwe Habermann
Am/Um: 01.02.2019 16:47:17

--from Newsreader at Freitag, 1. Februar 2019; 16:47:17--

Hallo Uwe, vielen Dank.
Ich habe mir mittlerweile eine Test-PRG gebastelt, deren Inhalt ich unten einkopiere:
locablogs.BufferModeOverride = 5 && ist erledigt
locablogs.SendUpdates = .t. && ja, das ist so eingestellt
Ereignis AfterCursorUpdate. Wie ist der Inhalt von cErrorArray?
Ich habe in cablogs.afterCursorUpdate dieses ergänzt:
SET STEP ON
DODEFAULT()
RETURN
Ergebnis: sowohl vor als auch nach dem DODEFAULT() ist cErrorArray = ..F.
Noch was:
Wg der vorherigen Fehlermeldung >>No key columns are specified for the update table "blogs". Use the KeyFieldList property of the cursor.<< habe ich am mssqö nachgeschaut und fand tatsächlich in der Table BLOGS, dass sie zwar einen Index auf ID hatte, aber kein Schlüsselzeichen davor, also wohl keinen primary index. Den habe ich ihr jetzt verpasst mit
ALTER TABLE blogs ADD PRIMARY KEY (ID).
Geändert hat das nichts. Jetzt bin ich mir aber nicht sicher, ob ich an der CursorAdapter was verändern muss?
Danke
Hans-Werner

Hier die Test-PRG:
SET STEP ON
CLEAR ALL
set multilocks on
SET CLASSLIB TO lib\appl.vcx additive
SET PROCEDURE TO program/vfxfunc ADDITIVE
loCursor = createobject("caBlogs")
with loCursor
.Alias = "cablogs"
.DataSourceType = "ODBC"
.DataSource = sqlstringconnect("DRIVER={SQL Server};SERVER=178.248.243.89,1927; UID=sa;PWD=srt_MSDE-04012005!;DATABASE=TPM09")
.updatablefieldlist = "SEITZAHL"
.cfieldstowritenullwhenempty = "SEITZAHL"
.updatenamelist = "SEITZAHL BLOGS.SEITZAHL"
.KeyFieldList = "ID" && steht sowieso schon in der Klasse
.BufferModeOverride = 5
if .CursorFill()
debugout "Success in filling " + .Alias + "!"
browse
else
m.liHowMany = aerror(aOoops)
m.lcStrError = ''
for m.li = 1 to m.liHowMany
m.lcStrError = m.lcStrError + aOoops[m.li,2] + chr(13)
next
debugout m.lcStrError
return.f.
ENDIF
endwith
UPDATE cablogs SET seitzahl = 0
TABLEUPDATE(.T.)
return



"Uwe Habermann" schrieb im Newsbeitrag news:741828...
--from Newsreader at Freitag, 1. Februar 2019; 10:06:11--

Hallo Hans-Werner!

>>CURSORSETPROP("Buffering", 5,"cablogs") <<

Stattdessen schreibst Du VOR dem Cursorfill() besser:

locablogs.BufferModeOverride = 5

Ist locablogs.SendUpdates = .t. eingestellt20

Dann guck bitte mit dem Debugger in das Ereignis AfterCursorUpdate. Wie ist
der Inhalt von cErrorArray20

Viele Grüße

Uwe Habermann





Hans-Werner Rodrian   30.01.2019 11:06
Uwe Habermann  30.01.2019 11:14
Hans-Werner Rodrian  01.02.2019 09:47
Uwe Habermann  01.02.2019 10:06
Hans-Werner Rodrian  01.02.2019 16:47
Uwe Habermann  02.02.2019 05:46
Hans-Werner Rodrian  02.02.2019 11:42
Uwe Habermann  03.02.2019 12:01
Hans-Werner Rodrian  03.02.2019 17:10
Uwe Habermann  04.02.2019 10:42
Hans-Werner Rodrian  04.02.2019 15:04
Uwe Habermann  05.02.2019 08:34
Hans-Werner Rodrian  05.02.2019 10:26
Uwe Habermann  05.02.2019 10:39
Hans-Werner Rodrian  11.02.2019 22:20
Hans-Werner Rodrian  05.02.2019 09:10
Hans-Werner Rodrian  05.02.2019 09:11
Hans-Werner Rodrian  05.02.2019 10:19
  
zurück zum Forum