-
Update AS400 Datenbank per OLEDB/ADO
Hallo,
ich versuche Daten aus einer Access-Datenbank per OLEDB/ADO in eine leere
AS400-Datenbank zurückzuschreiben.
Der umgekehrte Weg, die Daten von einer AS400-Datenbank per OLEDB/ADO in eine
leere Access-Datenbank zu schreiben funktioniert übrigens klaglos.
Ich verwende dafür folgenden Code
Set cn400 = CreateObject("ADODB.Connection")
cn400.Provider = "IBMDA400"
cn400.Properties("data source") = "MyAs400"
cn400.Open
Set rs400 = CreateObject("ADODB.Recordset")
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = cn400
cmd.Properties("Updatability") = 1 + 2 + 4
cmd.CommandText = "/QSYS.LIB/MyLib.LIB/MyFile.FILE(*FIRST, *NONE)"
cmd.Parameters.Append cmd.CreateParameter("P1", adChar, adParamInput, 1)
'Laut CA Toolkit soll nun die AS400 DB geöffnet werden
Set rs400 = cmd.Execute(Rcds, Parms, adCmdTable)
Nun erhalte ich folgenden auch im Systemprotokoll aufgelisteten Fehler
23.05.2003 12:44:40.54 Client Access Communication
Typ=Fehler
[CWBCO1003]
Winsock-Fehler, Funktion connect() hat 10061 zurückgegeben
Dieser Fehler wird mir auch im VBA angezeigt. Im CA-Systemprotokoll folgen danach noch
folgende Zeilen
23.05.2003 12:44:41.50 Client Access Communication
Typ=Informationen
Verbindung angefordert für Server-Anwendung: Ferner Befehl (as-rmtcmd)
23.05.2003 12:44:41.54 Client Access Communication
Typ=Informationen
[CWBCO1044]
Ferne Adresse xxx.xxx.xxx.xxx wird verwendet
23.05.2003 12:44:41.59 Client Access Communication
Typ=Informationen
[CWBCO1040]
Verwendeter Modus bei der Suche nach fernem Port: Immer ferne Server-Zuordnungsfunktion verwenden
23.05.2003 12:44:41.67 Client Access Communication
Typ=Informationen
[CWBCO1022]
Ferner Port 8475 wird verwendet
23.05.2003 12:44:42.22
Typ=Informationen
CPF9898 - REDIRECTOR NOT AVAILABLE ON THIS RELEASE.
Kann irgendjemand damit etwas anfangen und mir auf die Sprünge helfe?. Dass es kein genereller
Verbindungsfehler sein kann, wie die Winsock-Meldung m.E. nahelegt, geht für mich daraus hervor,
dass ich ohne Probleme Daten von der AS400 übertragen kann. Weisst der CPF9898 Fehler darauf hin
dass mir für die Durchführung dieser Funktion irgendetwas fehlt?
Schon mal im voraus
Vielen Dank
Heinz-Peter
-
Um Daten in die AS/400 zu schreiben verwendest du am besten einen SQL-Befehl:
insert into mylib.myfile
(F1, F2, F3, ...)
values (?, ?, ?, ...)
und dann per
cmdobj.execute , array(Val1, Val2, Val3, ...) , adExecuteNoRecords
die Daten übertragen.
IBMDA400 unterstützt das Hinzufügen bzw. Ändern nicht bei einer Tabelle.
Also auch einen Update per SQL durchführen:
update mylib.mytable
set F1=?, F2=?, F3=?, ...
where K1=?, K2=?, ...
und dann per
dim mRecords as long
cmdobj.execute mRecords, array(Val1, Val2, Val3, ..., Key1, Key2, ...) , adExecuteNoRecords
-
Einfacher gehts auch über Access, wenn du die Tabelle verknüpfst (Tabelle->Verknüpfen->ODBC).
Dann brauchst du dich nicht mit ADO rumzuschlagen sondern kannst (fast) alles von Access nutzen (Abfragen, Anfügeabfragen, Beziehungsabfragen ....)
[Dieser Beitrag wurde von Fuerchau am 23. Mai 2003 editiert.]
-
Hallo Peter,
bist Du jetzt unter die VB-Entwickler gegangen?
Die Fehlermeldungen sehen mir dachach aus,
daß die erforderlichen TCP Server nicht gestartet sind (*REXEC). Probier's mal
mit STRTCPSVR SERVER(*REXEC).
Viele Grüße, Dein Ex-Kollege (BLV)
Christian
-
Vielen Dank für eure schnellen Antworten
Insbesondere der Tipp mit dem nicht gestarteten TCP-Server war sehr hilfreich,
wenn es auch nicht der *REXEC, sondern der *DDM-Server war, der gefehlt hat.
(vielen Dank Christian)
Jetzt komme ich immerhin so weit, dass ich versuchen kann der Datenbank einen neuen
Satz hinzufügen.
Bei diesem Versuch bekomme ich nun aber die Meldung
CPF5035 Datenabbildungsfehler in Teildatei XXXXXXXXX
In der technischen Referenz finde ich dazu
CPF5035: Datenumsetzungsfehler in Teildatei &1.
Leider gibt es keinerlei Hinweis was es damit auf sich hat
Alle Felder in der AS400-Tabelle sind als Alpha-Felder definiert. Was soll mir
der genannte Fehler also sagen?
PS. Hallo Christian, wenn Du Lust hast, melde dich doch mal. Die Telefon-Nr ist
immer noch die alte
-
Hallo Heinz-Peter,
es wäre hier noch interessant welches
Release auf der AS/400 und ob das
Datenbankgruppenptf installiert ist ?
Gruss TARASIK
-
Das Problem hat sich inzwischen erledigt. Es lag an mit ISNull initialisierten Feldern in der ACCESS-Datenbank. Nachdem diese Felder in der Schnittstelle mit einem *Blank gefüllt wurden, klappte es endlich.
Vielen Dank für eure Bemühungen
Heinz-Peter
Similar Threads
-
By kroehn in forum NEWSboard Windows
Antworten: 5
Letzter Beitrag: 08-11-06, 19:36
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-09-06, 08:22
-
By antonkuh in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 24-04-06, 10:37
-
By hs in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 25-10-05, 08:33
-
By jkuetema in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 09-03-05, 11:58
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks