Seite 1 von 1

iseries Datenbank

Verfasst: Di, 19.02.2008 13:04
von Robi
Hi, ich möchte eine iseries(ehemals AS/400) Datenbank ( DB2/400 ) im Serienbrief verwenden.
eigentlich bräuchte ich ein komplettes Howto, da ich mit der OO Hilfe nix anfangen kann
Hat das schon mal einer gemacht ?
Danke

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 13:32
von Eia
Robi hat geschrieben:Hat das schon mal einer gemacht ?
Danke
Ja
Allerdings unter Linux, wobei das Prinzip ja das gleiche ist:
Ich habe unseren Kundenstamm per ODBC in eine OO-Datenbank eingebunden und als Datenquelle deklariert.
Das im Groben das Prinzip.

Allerdings:
Ich nehme nicht die Original-AS400-Datei. Das habe ich auch versucht. Aber: Bei der Definition der ODBC-Datenquelle bindet man immer die ganze Bibliothek ein, in der sich die gewünschte Tabelle befindet (jedenfalls ist mir kein anderer Weg bekannt). Das macht es praktisch unmöglich, einigermassen sinnvoll zu arbeiten.
Daher kopiere ich nächtens den Kundenstamm in eine AS400-Bibliothek, die sonst nichts enthält. Dabei kann man ausserdem schon Sätze ausschliessen, die ohnehin nicht gebraucht werden (solche mit Löschcode o.ä.)
Dann definiere ich eine ODBC-Datenquelle, unter Linux mit ODBCConfig, in Windows wird das wohl irgendwo in der Systemsteuerung liegen oder Du findest es bei den ClientAccess-Programmen.

Wenn Du also die ODBC-Datenquelle hast, erstellst Du eine OO-Datenbank (Datei/Neu/Datenbank) und verbindest zu dieser ODBC-Datenquelle.
Das wärs im Prinzip.
Wenn Du Du jetzt F4 drückst, hast Du die Tabelle schon zur Verfügung und könntest die Felder einfach in ein Writer-Dokument ziehen.

Jetzt gibt es noch ein kleines Problem:
Die Felder werden bei Ihrer Ankunft in OO mit Leerzeichen aufgefüllt. Dieses Problem konnte ich mit Hilfe hier aus dem Forum lösen:
Statt die Tabelle direkt zu benutzen, definiert man eine Abfrage. In dieser Abfrage kann man die Felder dann "trimmen", Beispiel:
RTRIM( "KUNA1" ) AS "Name1"
Dabei werden aus dem Originalfeld KUNA1 die Leerstellen auf der rechten Seite des Feldes abgeschnitten und ein Alias-Name "Name1" zugeordnet.

Das wär so der Überblick. Kommst Du damit klar oder brauchst Du an bestimmten Stellen mehr Info's?

mfG

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 13:54
von Robi
Prinzip verstanden,
danke. Ich werde es versuchen, z.zt. quäle ich mich noch mit dem richtigen Treiber
wenn noch was nicht geht, würde ich hier nochmal fragen.
Nochmal Danke
Robi

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 14:46
von Robi
Hmm, so klappt es (fast)
Ich habe allerdings als LIB immer die QGPL, wie kann ich da eine andere Lib einstellen ?
Robi

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 14:51
von Eia
Das ist eine Definition bei der ODBC-Datenquelle. Bei SQL-Standardbibliothek tust Du die Bibliothek rein mit den Daten, die Du übernehmen willst. Bei "Paketbibliothek" kannst Du QGPL drin lassen.
mfG

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 15:19
von Robi
Das geht so nicht ?!
ich teste das mit qsys, in der Hoffnung, das ich darüber an alle Libs rankomme.
aber die Verbindung zeig immer QGPL an. auch raus und rein hat nicht geholfen.

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 15:35
von Eia
Wo hast Du denn Deine ODBC-Datenquellen, auf einer Linux- oder Windows-Maschine? Mit ClientAccess definiert?

Re: iseries Datenbank

Verfasst: Di, 19.02.2008 15:46
von Robi
Auf der Arbeit hab ich nur Windows XP., Privat Ubuntu 7.10, privat hab ich aber (leider) kein iseries :lol:
hat sich aber erledigt, wenn ich was anderes als QSYS nehme, geht es
Vielen dank für die Hilfe
Robi