PDA

View Full Version : ODBC Treiber meldet nur noch "Die Länge des Feldes ist zu groß"



Seiten : [1] 2

Starocotes
21-10-19, 11:57
Wir arbeiten nun schon seit Jahren mit Access und ODBC und hatten schon diverse Probleme, die wir aber immer in den Griff bekommen haben. Aktuell bin ich aber verzweifelt.

Wenn ich bereits über ODBC eingebundene AS/400 Tabellen öffne geht das ohne Problem. Wenn ich aber versuche eine neue Einzubinden bekomme ich immer den Fehler "Die Länge des Feldes ist zu groß".

Es scheint an gepackten Feldern zu liegen, eine Datei nur mit Character bringt den Fehler nicht.

Jemand schon ein ähnliches Problem?

Starocotes
21-10-19, 13:44
Es wird absurder.
Alle bestehenden Verknüpfungen funktionieren.
Versuche ich eine Datei neu zu verknüpfen kommt entweder oben der Fehler oder aber (wenn die Datei nur CHAR Felder enthält) erstmal keiner, wenn ich die dann aber öffnen will ein SQL0113 - Name "" nicht zulässig.

Packete habe ich ein und ausgeschaltet, Namensräume umgestellt und die üblichen Verdächtigen in der QGPL gelöscht, alles ohne Erfolg.

Fuerchau
21-10-19, 15:08
Bei neuen Tabellen werden vom Treiber Schema-Abfragen erstellt.
Hier ist es besonders wichtig, dass der ODBC-Treiber
a) zum OS/400 100%ig passt
b) das letzte Servicepack installiert ist

Ist das nicht der Fall funktionieren zwar alte Verbindungen aber neue können nicht erstellt werden.

Starocotes
21-10-19, 15:33
Ich habe 7.2 auf der Maschine
Laut IBM ist das aktuellste was ich für den Client bekommen kann:
IBM i Access Client Solutions 1.1, da habe ich mir den App Pack geladen.
Die cwbodbc.dll ist 13.0.22.0 vom 22.06.19


Und wo soll ich jetzt raus finden ob das passt?

Fuerchau
21-10-19, 16:19
Dann setze mal die Trace-Funktion in ODBC auf STRDBG.
Dann kannst du per WRKOBJLCK DeinProfil *USRPRF den passenden QZDASOINIT-Job finden und mal ins Joblog schauen.

Starocotes
22-10-19, 07:33
Danke. Dummerweise sehe ich dort nichts was weiter hilft:


Datei OHNE gepackte Felder:

Job 170404/QUSER/QZDASOINIT im Subsystem QSERVER in QSYS am 22.10.19 um
08:21:16 gestartet. Job im System am 22.10.19 um 08:21:16. angekommen.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Benutzer SIMMEL an Client 172.16.10.109 ist mit dem Server verbunden.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Die folgenden Sonderregister wurden festgelegt: CLIENT_APPLNAME: MSACCESS
PREPARE für Anweisung QZA387A40BAB033001 beendet.
Teildatei QSCNTRC aus Datei QAPEXDFN in QUSRSYS entfernt.
Teildatei QSCNTRC zu Datei QAPEXDFN in QUSRSYS hinzugefügt.
Abfrageoptionsdatei kann nicht abgerufen werden.
Teildatei QSCNTRC in Datei QAPEXDFN in QUSRSYS geändert.
Definition QSCNTRC added.
Objekt geändert für QDPC170404 in QUSRSYS Art *USRSPC.
Abfrageoptionsdatei kann nicht abgerufen werden.
Eigentumsrecht für Objekt QDPC170404 in QUSRSYS Art *MGTCOL geändert.
Abfrageoptionsdatei kann nicht abgerufen werden.
Session QDPC170404 started.
Objekt geändert für QDPC170404 in QUSRSYS Art *USRSPC.
Session QDPC170404 resumed.
STRTRC Sitzungs-ID QDPC170404 erfolgreich gestartet.
Anweisung CALL beendet.
MSYSCONF der Art *FILE in QGPL nicht gefunden.
PREPARE für Anweisung FIFAAATALL0012OL beendet.
Abfrageoptionsdatei kann nicht abgerufen werden.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Abfrageoptionsdatei kann nicht abgerufen werden.
Der Zugriffsplan der Abfrage wurde erneut erstellt.
Temporäre Ergebnisdatei für Abfrage erstellt.
Alle Zugriffspfade wurden für Datei SYSTABLES berücksichtigt.
Datei SYSTABLES in Verknüpfungsposition 1 verarbeitet.
Datei SYSTABLES in Verknüpfungsposition 2 verarbeitet.
Empfohlener Zugriffspfad für Datei SYSTABLES.
Der Zugriffsplan der Abfrage wurde erneut erstellt.
****: Debug-Nachrichten für Abfrage werden beendet.
ODP erstellt.
Blockung für Abfrage.
Cursor FILE eröffnet.
Offener Datenpfad (ODP) gelöscht.
Cursor FILE wurde geschlossen.
PREPARE für Anweisung FDLCDALCOL0012OL beendet.
Abfrageoptionsdatei kann nicht abgerufen werden.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Abfrageoptionsdatei kann nicht abgerufen werden.
Der Zugriffsplan der Abfrage wurde erneut erstellt.
Temporäre Ergebnisdatei für Abfrage erstellt.
Alle Zugriffspfade wurden für Datei SYSCOLUMNS berücksichtigt.
Datei SYSCOLUMNS in Verknüpfungsposition 1 verarbeitet.
Datei SYSCOLUMNS in Verknüpfungsposition 2 verarbeitet.
Empfohlener Zugriffspfad für Datei SYSCOLUMNS.
Empfohlener Zugriffspfad für Datei SYSCOLUMNS.
Der Zugriffsplan der Abfrage wurde erneut erstellt.
****: Debug-Nachrichten für Abfrage werden beendet.
ODP erstellt.
Blockung für Abfrage.
Cursor FLD eröffnet.
Offener Datenpfad (ODP) gelöscht.
Cursor FLD wurde geschlossen.



Danach ist die Tabelle erfolgreich eingebunden.

Beim Öffnen kommt dann nur noch das hier:

Name "" nicht zulässig.


Bei einer Datei mit gepackten Feldern kommt halt schon beim Einbinden die Fehlermeldung "Die Länge eines Feldes ist zu groß" und der bindet die gar nicht ein. Das Joglog sieht da aber nicht anders aus.

Starocotes
22-10-19, 09:04
Um sicher zu gehen das es nicht an einer alten oder seltsamen Installation liegt habe ich jetzt eine komplett sauberer Win10 Installation gemacht.
Nur Access 2013 und den neusten IBM i Access V1R1. Selbes Ergebnis.

TARASIK
22-10-19, 09:20
Hallo Starocotes,
nur eine simple Fehlerlösung zu dem SQL Fehler:
Probable cause:

It is likely that the system name is not in the Relational Database Directory. Run the Add Relational Database Directory Entry command:

ADDRDBDIRE RDB(SYSNAME) RMTLOCNAME(*LOCAL)
Copy

In the above example, SYSNAME is the name of your system's Default Local Location name (as specified in the DSPNETA command).

Another common cause for this error is a period (.) in a table or library name. Although the period is valid in IBM i file naming conventions the name must be enclosed in double quotes to be used in a SQL statement. A short term circumvention may be to build a logical file over the desired physical file, using the SQL naming syntax. Another possible solution is to create an SQL Alias over the desired file and then access the file indirectly through the alias.

Starocotes
22-10-19, 09:25
Ja, das hatte ich schon gefunden.
Habe sogar die DB mal gelöscht und mit neuem Namen angelegt damit der DSPNETA übereinstimmt. Auch das DNS auf den selben Namen angepasst.

All das hat aber keine Änderung gebracht. Das Verhalten ist immer das selbe.

Starocotes
24-10-19, 13:34
Call bei IBM: Meine Datenbankverwaltung ist kaputt!
Die schauen wie wir das wieder hin bekommen.