vb6 ado-zugriff auf db2
- Dieses Thema hat 0 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 18 Jahre, 1 Monat von
Anonym.
-
AuthorPosts
-
23. August 2005 um 9:52 Uhr #2584
AnonymGastHallo.
Ich möchte in einem VB6 Programm auf eine UDB DB2 zugreifen und in
bestimmten Fällen ein Update eines Feldes durchführen.
Um diese Fälle zu ermitteln muss ich zwei Abfragen auf eine Tabelle
durchführen. Jeweils ein Feld der beiden Abfragen (Recordsets)
vergleiche ich um zu ermitteln in welchem Datensatz ich das Update
durchführen muss.
Bis hierhin läuft der Code auch fehlerfrei durch.
Bei dem zuweisen des Werts aus der Variable "intNeu" an das Feld "Neu"
des Recordsets "rsAllHauptnr" kommt folgende Fehlermeldung:
"Das Verfahren wird von diesem Provider nicht unterstützt."Wenn ich die CursorLocation des rsAllHauptnr auf adUseClient setze,
dann erscheint folgende Fehlermeldung beim Update:
"Nicht genügend Basistabelleninformationen zum Aktualisieren."
Dies erkläre ich dadurch, dass bei adUseClient die Daten auf dem DB2
Server nicht aktualisiert werden können.Die zu aktualisierende Tabelle hat einen Key.
Wie kann ich das Update durchführen?
Um meine Frage zu erklären, hier der Codeausschnitt:
Set g_Connection = New adodb.Connection
strName = "IBMDADB2.1"
g_strUser = "MyUser"
g_strPWD = "MyPWD"
g_strDSN_Name = "Einkauf"strConnection = "PROVIDER=" & strName & ";" & " " & "DSN=" &
g_strDSN_Name & ";" & "uid=" & g_strUser & ";" & "pwd=" & g_strPWD &
";" & "database=" & g_strDSN_Nameg_Connection.Open strConnection
‚Dadurch ist also die Connection hergestellt.
strSelectAllHartnr = "SELECT TEST.ARTNR, TEST.HARTNR, TEST.NEU" & _
" FROM EK_USER.TEST AS TEST"Set rsAllHartnr = New adodb.Recordset
With rsAllHartnr
‚.CursorLocation = adUseClient
.CursorLocation = adUseServer
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.Open strSelectAllHartnr, g_Connection
End With‚Ermitteln aller 1. Angebotsnummern aller Hauptnummern
strSelectHartnr_Group = "SELECT TEST.SAISKZ, MIN(TEST.ARTNR) AS ARTNR,
TEST.HARTNR, TEST.NEU" & _
" FROM EK_USER.TEST AS TEST" & _
" GROUP BY TEST.SAISKZ, TEST.HARTNR, TEST.NEU"Set rsHartnr_Group = New adodb.Recordset
With rsHartnr_Group
.Open strSelectHartnr_Group, g_Connection, adOpenDynamic,
adLockOptimistic
End WithrsAllHartnr.MoveFirst
rsHartnr_Group.MoveFirstintNeu = 1
Do Until rsHartnr_Group.EOF = True
If rsHartnr_Group![ARTNR] = rsAllHartnr![ARTNR] Then
rsAllHartnr.Fields![NEU] = intNeu
rsAllHartnr.Update
End If
LoopVielen Dank.
Sascha Popovic
-
AuthorPosts
You must be logged in to reply to this topic.