[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2016
    Beiträge
    18
    Das ist eine ganz klassisch definierte Tabelle (via PDM). Ich hab dort in der Datendefinitionsbeschreibung nur A für alphabetische Zeichen zur Verfügung oder S für die Ziffernwerte.

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Auch in DDS kann man alphanumerische Felder mit variabler Länge definieren, durch Schlüssel-Wort VARLEN.
    Gib sicherheitshalber noch die Feld-Länge bei VARLEN(Länge) an, damit alle Informationen auch wirklich in der Tabelle gespeichert werden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Bei Zeichenfeldern brauchst du in der DDS gar nichts anzugeben, lass das "A" mal weg.
    Ansonsten schau mal hier:
    https://www.google.de/url?sa=t&rct=j...3lNbTg&cad=rja
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    May 2016
    Beiträge
    18
    Guten Abend und Danke für die schnellen Antworten.
    Ich hab mich nach der PPT Folie gerichtet, die DDS Beschreibung geändert und das "A" weg gelassen - leider hilft alles nichts!
    Es werden wieder nur die numerischen Felder zurück geliefert aber nicht die Alphabetischen bzw. Alphanumerischen.
    VARCHAR als Schlüselwort kennt meine Beschreibung noch nicht.

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von tommi_011 Beitrag anzeigen
    VARCHAR als Schlüselwort kennt meine Beschreibung noch nicht.
    Ich hatte ja auch VARLEN und nicht VARCHAR gesagt. VARCHAR ist der SQL-Datentyp.
    A in Verbindung mit VARLEN ist die DDS-Beschreibung für Felder mit variabler Länge

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    May 2016
    Beiträge
    18
    Oh, sorry richtig! Da hab ich wohl was falsch gelesen. Ich werde es mal nachher probieren.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Für SQL ist der Typ CHAR und VARCHAR nicht so unterschiedlich. Ich sehe da eher immer noch ein CCSID-Problem.
    Bist du sicher, dass die Zeichendaten tatsächlich nicht zurückkommen?
    Prüfe mal die Länge des Inhaltes sowie den Hex-Wert.
    Als Verbindung wird von Perl, glaube ich, ODBC verwendet.
    Somit kannst du z.B. via Excel o.ä. auch per ODBC vom PC Daten abrufen.
    Wenn hier die Daten korrekt gelesen werden können, ist das irgendwo ein Problem in PHP.
    Ggf. passt die Perl-Version nicht mehr zum V4R5.

    Vielleicht ist DBI besser als CGI ?
    http://www.tutorialspoint.com/perl/perl_database.htm
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    May 2016
    Beiträge
    18
    Ich hab folgende Zwischenstand, aber noch nichts verbessertes:

    "VARLEN" hat keinen Einfluss genommen.
    Ich hab aber CCSID(500) und CCSID(65535) auf zwei Testfeldern im DDS definiert. Aber auch das hat noch nicht wirklich was gebracht.

    Das Perl selbst spricht die Datenbank nicht mit ODBC an (nicht vorhanden) sondern mit DBI:B2, also dem eigentlichen Treiber für DB2/400

    Bei der Auswertung hab ich fetchrow_hashref (wie im Powerpointbeispiel) eingerichtet und mal $data->${DATENFELD} auswerten lassen.
    Aufgrund des "$" Zeichens bekomme ich einen Hexadezimalenwert angezeigt (Hashwert?).
    Der ist bei allen 3 Felder gleich, auch bei dem numerischen, der mir einen Wert (0x1df710) anzeigt.

    Somit bin ich der Meinung das die Daten an sich ausgelesen werden. Da scheint eher Perl das Problem zu haben mir die Zeichenfelder anzuzeigen?

  9. #9
    Registriert seit
    Oct 2013
    Beiträge
    175
    Super, genau das Uninteressante, das was funktioniert, sagst Du uns. :-)
    Und wenn Du in ein Textfeld Deiner Datei z.B. mal "Test" hineinschreibst, kriegst Du dann x'E385A2A3' (worauf ich tippe) oder x'54657374' oder etwas ganz Anderes?

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Alle Werte gleich deuten schon auf die Default-Funktion Hash für ein Objekt.
    Vielleicht hilft dir ja diese Seite weiter:
    http://search.cpan.org/dist/DBD-DB2/DB2.pod
    Kannst du nicht Perl auf dem PC ausführen?
    Ggf. kann man dann dort besser debuggen als im Nebel stochern.
    Denn wo die DB im Endeffekt ist ist doch egal, Hauptsache sie ist erreichbar.
    Welche Art von Schnittstelle verwendet wird lässt sich relativ einfach feststellen:
    Bau eine "Sleep"-Funktion im Script ein während die Verbindung geöffent ist.
    Auf der AS/400 kannst du dann per
    WRKOBJLCK CONNECTUSER *USRPRF
    den Verbindungsjob herausfinden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    May 2016
    Beiträge
    18
    Zu "connectuser" sagte meine Maschine das er das Objekt nicht finden konnte.
    Perl hab ich auch lokal auf einem PC laufen. Ich muss nur zusehen wie ich den DB2 Treiber installiert bekomme, dann werd ich mal schauen.
    Die Hash Werte ändern sich jedoch pro Zeile. Also pro Zeile eine neue Gruppe Hash Werte die aber für alle Zellen gleich sind.

    Ich muss mich vielleicht auch entschuldigen, viele Kenntnisse sind leider noch recht rudimentär, darum auch einige Fragen und ggf. unverständliche Antworten hier im Forum :-)

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Entschuldigung, aber mit CONNECTUSER meine ich deinen Usernamen, mit dem du dich in Perl an der DB anmeldest.
    Dass du mit jeder Zeile einen anderen Hash bekommst ist normal, da ja neue Strings angelegt werden und diese dann auch eine andere Adresse bzw. Inhalt haben.
    Ohne Debugger wirst du das Problem glaube ich nicht lösen können.

    Ich dachte der DBI-DB2-Treiber ist auch nur eine Perl-Bibliohek?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Lizenzen OS/400 V4R5M0 Prozessorgruppe P05
    By Frank Hildebrandt in forum NEWSboard Server & Hardware Markt
    Antworten: 2
    Letzter Beitrag: 02-05-03, 16:32
  2. MSAccess und V4R5M0 (CA Express)
    By Matthias.Hayn in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 07-03-02, 14:17
  3. MSAccess und V4R5M0 (CA Express)
    By Matthias.Hayn in forum NEWSboard Windows
    Antworten: 1
    Letzter Beitrag: 07-03-02, 13:13
  4. releasewechsel von v3r6m0 auf v4r5m0
    By delphix in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-02-02, 13:48
  5. Trigger 5.1, TGTRLS(V4R5M0)
    By Robi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-01-02, 09:35

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •