[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    54

    ODBC Zugriff über Access Null-Values

    Ich habe in Access eine AS400 Tabelle verknüpft. Immer wenn ich versuche ein Feld zu löschen kommt die Fehlermeldung das ich der Variablen einen Nullwert zuweise.

    Ich weiss das ich unter V5R3 Nullwerte zulassen kan aber irgendwie scheint das nicht zu klappen.

    Kann ich mit RPG3 noch auf eine Datei zugreifen die Nullwerte enthält?

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    792
    Moin,

    das solltest du mit RPG können. Wenn es sich um eine DDS beschriebene Datei handelt muss das Schlüsselwort ALWNULL angegeben werden, damit zu Nullwerte schreiben kannst.
    In Access kommt eine solche Meldung aber auch ab und an wenn man Tabelle einbindet und keinen Key zuweist.

    Gruß

    Sascha

  3. #3
    Registriert seit
    Apr 2004
    Beiträge
    54
    Die Tabelle hat einen Schlüssel ist aber nicht uniqe. Der Schlüssel wird auch in der entwurfsansicht angezeigt.

    Ich werde das mal mit einer anderen Datei testen.

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.879
    Zitat Zitat von Bernd Wiezroek
    Kann ich mit RPG3 noch auf eine Datei zugreifen die Nullwerte enthält?
    Ja, aber dazu muss beim Compilieren die OPTION ALWNULL auf *YES gesetzt werden. (Unterlassungs-Wert ist *NO)

    Gleiches gilt auch bei RPGIV-Programmen.
    (Alternativ kann in RPGIV-Programmen das Schlüssel-Wort ALWNULL in den H-Bestimmungen angegeben werden. Damit braucht man sich beim nächsten Compilieren nicht mehr daran zu erinnern, dass die Option gesetzt wurde.)

    Mit embedded SQL können NULL-Werte immer verarbeitet werden (unabhängig davon ob RPGIII oder RPGIV verwendet wird). Die NULL-Werte müssen lediglich durch einen Indikator geprüft und gesetzt werden.

    Birgitta
    Birgitta Hauser

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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.258
    Das Problem von ACCESS ist, dass für ein Feld tatsächlich NULL geschrieben werden will, wenn man den Inhalt entfernt.
    Wenn die AS/400-DB dies aber nicht hat (z.B. Standard-Anwendung), musst du das Feld aus ACCESS mit Leerzeichen bzw. 0 überschreiben !
    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

  6. #6
    Registriert seit
    Apr 2004
    Beiträge
    54
    Danke für die schnelle Hilfe.

    Ich habe inzwischen die Ratschläge umgesetzt. Wenn ich die Datei Unique definiere und ALWNULL einsetze gibt es bei der Accesverarbeitung keine Probleme mehr.

    Das Sytem wollte in den Feldern auch keine Blanks annehmen so musste immer ein Buchstabe als Dummy eingetragen werden sobald das Feld im Access geändert wurde.

    Auf der RPG seite klappt der Test noch nicht richtig da kommt immer ein 5029 Fehler sobald ich versuche die Datei zu lesen. Da muß ich nochmal die Konsistez der Daten untersuchen.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.258
    NULL-Felder kannst du nur mit RPGLE verarbeiten.
    Mit %NULLIND(Variable) kannst du dann den Zustand abfragen bzw. setzen.
    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
    Apr 2004
    Beiträge
    54
    Danke für den Tipp dann werde ich es damit versuchen.

    Zur not muß ich halt mit SQL alle Null-Values initialisieren.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.258
    Selbst dann klappts nicht mir RPG !
    Bei solchen Dateien empfielt sich dann doch wieder besser embedded SQL.
    Dann kannst du NULL auch per Indicator-Variable setzen/lesen.

    /exec-sql
    c+ select fld1, fld2
    c+ into : fld1 : flag1, :fld2 : flag2
    c+ from myfile
    c+ where key=: mykey
    c/end exec

    Die Flag-Variablen müssen als 2-Byte binär (Type B) definiert sein und enthalten -1 im Falle von NULL.
    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

  10. #10
    Registriert seit
    Apr 2004
    Beiträge
    54
    Da habe ich jetzt 2 Alternativen.

    Die Sql Lösung gefällt mir besser da ich mehr SQL nutze als Free RPG.

    Vielen Dank für die Hilfe.

Similar Threads

  1. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13
  2. MS Access Zugriff via ODBC auf iSeries Tabellen
    By Rico in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-03-05, 09:43
  3. Zugriff von Access auf iSeries per ODBC
    By Unregistriert in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-01-05, 08:57
  4. Antworten: 2
    Letzter Beitrag: 08-08-02, 11:29
  5. Zugriff MS Access auf AS/400 via ODBC
    By SL in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-07-02, 11:54

Berechtigungen

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