Autor Thema: Problem mit ODBCResultset  (Gelesen 1041 mal)

Offline PeterD2

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Ich liebe dieses Forum!
Problem mit ODBCResultset
« am: 11.03.08 - 16:18:55 »
Ich habe ein Stück Code in einer selbsterstellen NotesScript Library das ungefähr folgendermaßen aussieht:

ODBC Vorbereitungsgedöns:

Code
dsn = GetFieldValueTxt( ExportProfileDoc,"LeadExportSystemDSN")
		Set qry.Connection = con
		Set result.Query = qry
		con.ConnectTo(dsn)
		If Not con.IsConnected Then
			Messagebox "Could not connect to " & dsn,, "Error"
			Exit Sub
		End If
		qry.SQL = "Select * from testrecords"
		result.Execute
...

Jetzt kommt das eigentliche Problem:

Code
while ....

If Not KundenData.IsAlreadyExported(dsn) Then
							result.AddRow
							NrAddressesExported=NrAddressesExported+1
							Call KundenData.FillODBCResultSet(result)
							result.UpdateRow
						End If

next ....

"KundenData" ist eine Klasse, die alle Werte enthält, sie in den Datensatz der ODBC Datenquelle geschrieben werden sollen, deren Function "FillODBCResulSet" führt eine Reihe von result.SetValue("Name", Me.getName()) Anweisungen aus, um das Resultset zu befüllen.

Leider funktioniert der Code nur beim ersten Durchlaufen der Schleife. AB dem zweiten Durchlauf gibt's ständig die Fehlermeldung:

"LS:DO- The previous added row has not been updated."

Wenn ich jetzt mit dem Debugger durch diesen Code gehe, sehe ich dass bei Aufruf von result.AddRow die Eigenschaft "CurrentRow" von "result" von "1" auf "-3" wechselt. Beim Aufruf von result.UpdateRow bleibt die aber bei -3, so dass beim nächsten Durchlauf der Schleife der Fehler auftaucht.

Nun habe ich natürlich einen Error Handler im Einsatz, der so aussieht:

Code
errorhdl:
		Print "Fehler in libHVBAdressExport: cInteressentDataset ->DoExport(): " + Error$ + ", Zeile: " + Str(Erl)
		Print "Fehler in libHVBAdressExport: cInteressentDataset ->DoExport(): " + Cstr(result.GetErrorMessage()) + ", Zeile: " + Str(Erl)
		If result.GetError = DBstsAHVR Then
			result.UpdateRow
		End If

Das soll eigentlich bei Auftauchen des obigen Fehlers (woher der auch immer kommen soll) das resultset wirklich noch einmal updaten. Aber natürlich ändert das nicht und auch der nächste Durchlauf der Schleife führt wieder zu obiger Fehlermeldung.

Ich habe ziemlich geneu den gleichen Code an weiteren Stellen meiner Library im Einsatz, wobei er lediglich mit anderen "KundenData" Klassen benutzt wird. Dort funktioniert das einwandfrei, aber hier will mir Notes das Resultset offensichtlich um's Verrecken nicht updaten. Was kann ich tun?

Ach ja: die Funktion FIllODBCResultset läuft ohne Exception durch und die Zeile "result.UpdateRow" wird jedesmal tatsächlich durchlaufen.

Danke im Voraus

Peter
      Resume Next      

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz