-
Problem beim Datenbankzugriff mit Visual Basic
Hallo zusammen,
ich habe folgendes Problem: ich möchte mit Visual Basic auf AS400-Datenbankdateien zugreifen.
Eine Verbindung zur Datenbank habe ich bereits erstellt, diese funktioniert auch problemlos. Allerdings bekomme ich im Server-Explorer nicht alle Datenbankdateien angezeigt. Auf die restlichen Dateien kann ich zwar zugreifen, bekomme jedoch wirres Zeug zurückgeliefert.
Woran kann das liegen?
Vielen Dank im Voraus!
-
Welches AS/400-Release ist da im Einsatz ?
In der ODBC-Konfig kannst du die Bibliotheken angeben, deren Tabellen zu sehen sein sollen. Die Standardbibliothek muss dabei leer sein, Register Server.
Unter bestimmten Umständen schadet die Komprimierung, teste es mal ohne Komrimierung (ODBC-Konfig), Register Leistung.
Wichtig ist auch der Schalter "Suchmuster aktivieren" der aus sein sollte, Register Katalog.
Zur Performance ggf. im Register Leistung Vorablesezugriff aktivieren, in diesem Fall wird bereits ein Datenblock gelesen wenn der Query fertig ist und nicht erst beim 1. Zugriff auf die Daten.
-
Es ist Release 4R5M0 im Einsatz.
Ich habe die oben genannten Punkte durchprobiert, jedoch ohne Erfolg. Bei Deaktivierung von "Suchmuster aktivieren" bekomme ich in der Entwicklungsumgebung sogar einen Verbindungsfehler.
Kann es sein, dass es vielleicht an den Tabellen liegt? Diese stammen aus der 36er Umgebung. Die Felder haben als Datentyp "GEZONT" bzw. "ZCHN". ( Was bedeuten diese Werte ??? )
Was mich wundert, ist, dass einige Tabellen aus der gleichen Bibliothek sichtbar sind ( sowohl in der Visual Basic Entwicklungsumgebung als auch im Operations Navigator ) und manche nicht.
-
Gezont sind numerische Felder, die leider ab und an als Zeichenfelder erkannt werden.
ZCHN sind eben Character-Felder.
Das Problem wird wohl die fehlende CCSID auf den Tabellen sein (CCSID 65535).
Um doch eine Codewandlung nach Ansi zu erzwingen musst du im Register "Umsetzung" das Häkchen für "65535 umsetzen" anmachen.
Das du nicht alle Tabellen siehst liegt an der fehlenden Berechtigung. Du kannst nur die Tabellen sehen, wofür du mit deinem Userprofil auf der AS/400 berechtigt bist.
Mittels DSPOBJAUT auf der AS/400 kannst du prüfen, ob du berechtigt bzw. ob *PUBLIC berechtigt ist.
Ein weiteres Problem könnte sein (/36-Umgebung), dass die Tabellen nicht für SQL geeignet sind (DSPFFD: nur 1 Feld) und ggf. mit IDDU beschrieben sind. In diesem Fall musst du eine LF auf der AS/400 erstellen die mittels berechneten Feldern eine Sicht der Daten erstellt. Bei gepackten Daten hast du allerdings keine Chance.
Hierfür müsstest du die Tabellen in SQL/DDS-beschriebene neue Tabellen kopieren.
-
Also erst mal vielen Dank!!!!
Wie sich mittlerweile herausgestellt hat, liegt es zu 99,9% wirklich daran, dass die Tabellen nicht für SQL geeignet sind. Die anderen Dateien, die sich anzeigen lassen, sind neueren Datums.
Ausserdem sind sie tatsächlich mit IDDU beschrieben.
Daraus ergibt sich für mich allerdings schon die nächste Frage:
wie funktioniert das Kopieren in neue Tabellen?
Muss ich mit Hilfe des Operation Navigators eine neue Tabelle anlegen und dann die Daten rüberkopieren, oder gibt es einen entsprechenden Befehl?
-
Über OpsNav ist das nicht möglich !
Du kannst zwar die neuen Tabellen mit SQL erstellen, aber das Kopieren geht nur per CPYF auf der AS/400.
Besser ist es die neuen Tabellen per DDS passend zur IDDU-Struktur zu erstellen.
Der CPYF kann den mit der FMTOPT(*NOCHK) die Daten übernehmen.
Wichtig ist, dass die neue Tabelle in der Struktur tatsächlich identisch zur alten Struktur wird.
Anschließend noch ein paar Indexe (CREATE INDEX) für die schnelleren Zugriffe erstellen und dann loslegen.
-
... noch eine Frage zu SQL: wie heisst das Lizenzprogramm, in dem ILE C/400 enthalten ist?
-
ILE C/C++/400 ist ein eigenständiges Lizenzprogramm !
Erst ab V5R2 ist für SQL-Prozeduren/Funktionen ein interner C-Compiler enthalten, der aber nicht separat für eigene Programme verwendet werden kann.
-
... und schon wieder gibt es Probleme :-((
Das Kopieren mit dem CPYF Befehl klappt bei den meisten Tabellen recht gut.
Ein paar Datenbankdateien sind jedoch dabei, bei denen kommt immer eine Fehlermeldung: Pufferlänge ist grösser als Satz für Teildatei
Liegt es vielleicht daran, dass gepackte Felder dabei sind?
Kann ich die Tabellen irgendwie trotzdem kopieren?
-
In diesem Fall stimmt die Definition der Zieltabelle mit der Quelltabelle nicht überein.
Vergleiche mal mit DSPFFD die Anfangspositionen und Ausprägungen der einzelnen Felder der Zieltabelle mit der IDDU-Definition der Quelltabelle.
Bestimmt gibt es da Abweichungen.
Es kann auch dann Probleme geben, wenn z.B. ein Zeichenfeld in der Anwendung intern verschieden verwendet wird, mal Text mal gepackte Daten o.ä..
In diesem Fall kannst du keine Konvertierung durchführen, da in SQL/DDS ein Feld eines bestimmten Typs nur Daten dieses Typs aufnehmen kann.
-
Wie kann ich sicherstellen, dass gepackte Felder ebenfalls einwandfrei kopiert werden??
-
Indem das Zielfeld auch als gepackt definiert ist !
Stelle auf jeden Fall sicher, dass die Datenstrukturen identisch sind !!!
Ungültige Daten kannst du auch ausschließen (sie werden dann beim CPYF ignoriert) mit CPYF .... ERRLVL(*NOMAX).
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Der_Unwissende in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 08-09-06, 10:10
-
By Der_Unwissende in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-11-05, 09:43
-
By HPKahn in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 01-02-05, 09:23
-
By thoughtless in forum NEWSboard Windows
Antworten: 0
Letzter Beitrag: 10-06-04, 10:23
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