[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    35

    Defalut Werte werden bei write nicht gesetzt

    Hallo zusammen,

    folgendes kleines Problem:
    Ich habe eine PF angelegt, welche u.a. drei Felder mir Defalut-Werten hat:

    Feld TDAT
    Typ=DATE
    Default-Wert= Aktuelles Datum
    Kann Null=Nein

    Feld TTIME
    Typ = TIME
    Default-Wert= Aktuelle Zeit
    Kann Null=Nein


    Feld TTIMESTAMP
    Typ = TIMESTAMP
    Default-Wert= Aktuelle Zeitmarke
    Kann Null=Nein

    Wenn ich mit SQL einen Datensatz einfüge, werden die Felder wie erwartet gefüllt. Wenn ich aus RPG einen Satz schreibe, stehen sie auf Inititalwerte. Also "01.01.01", "00:00" und "0001-01-01-00.00.00.000000"

    Gehe ich recht in der Annahme, dass dies daran liegt, dass RPG zunächst einmal alle Felder initialsiert, damit die Felder nicht mehr NULL sind und somit die Default-Werte nicht greifen?

    Kann ich das irgendwie ändern?

    Ich habe das Problem erst einmal umgangen, indem ich die Werte zuweise. Das kann aber doch eigentlich nicht die Lösung sein...

    Wer kann helfen?

    Gruß
    Booley

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Vom Grundwert abweichende Defaults funktionieren nur mit SQL, da Defaults ausschließlich verwendet werden, wenn Felder beim INSERT nicht angegeben werden.

    Da aber der RPG-Compiler zur Laufzeit alle Felder kennt, werden diese halt intern mit Defaults belegt und ausgegeben.
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    35
    Ja, so in der Art habe mir das schon gedacht...
    Schade eigentlich.

    Danke für die Schnelle Antwort.

    Gruß
    Booley

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    %nullind ist dein Freund

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Vom Grundwert abweichende Defaults funktionieren nur mit SQL, da Defaults ausschließlich verwendet werden, wenn Felder beim INSERT nicht angegeben werden.

    Da aber der RPG-Compiler zur Laufzeit alle Felder kennt, werden diese halt intern mit Defaults belegt und ausgegeben.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    35
    Zitat Zitat von BenderD Beitrag anzeigen
    %nullind ist dein Freund
    Hallo Dieter,

    das wäre natürlich eine Möglichkeit. Aber wenn ich die Felder eh anfassen muss, dann kann ich sie auch gleich füllen.

    Ich hatte mehr auf sowas wie eine generelle Option gehofft, dass die Default-Werte berücksichtigt werden. Hat vielleicht jemand eine (nicht aufwendige) Idee, wie man alles Feldern eines Satzformats NULL zuweisen kann?

    Egal, ist ja kein Beinbruch. Finde es halt nur einfach nicht schön.

    Apropos schön: Einen schönen Feierabend schon mal!

    Gruß
    Booley

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    man kann natürlich auch eine View (oder DDS logische) verwenden, die diese Felder nicht enthält, dann funzt das voll elektrisch (beim insert).
    BTW: füllen kann man das im RPG nicht gleichwertig, der hat keine Timestamps mit 6 Stellen nach dem Komma.

    mfg

    Dieter Bender

    Zitat Zitat von Booley Beitrag anzeigen
    Hallo Dieter,

    das wäre natürlich eine Möglichkeit. Aber wenn ich die Felder eh anfassen muss, dann kann ich sie auch gleich füllen.

    Ich hatte mehr auf sowas wie eine generelle Option gehofft, dass die Default-Werte berücksichtigt werden. Hat vielleicht jemand eine (nicht aufwendige) Idee, wie man alles Feldern eines Satzformats NULL zuweisen kann?

    Egal, ist ja kein Beinbruch. Finde es halt nur einfach nicht schön.

    Apropos schön: Einen schönen Feierabend schon mal!

    Gruß
    Booley
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nur: %nullind (SQL mit Anzeiger) setzt den Wert NULL und nicht den Default !

    Wenn im Feld NULL nicht erlaubt ist, gibts einen DB-Fehler "NULL in Spalte nicht erlaubt" beim schreiben.

    Also entweder per SQL-Insert das Feld nicht erwähnen (dann gibts den Default) bzw. wie Dieter schon sagt, über eine LF schreiben, die diese Felder nicht enthält.
    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
    Aug 2001
    Beiträge
    35
    Wow, so einen großen Aufwand wollte ich hier mit so einer "kleinen Pflanze" gar nicht verursachen...

    Vielen Dank für die vielen Antworten. Die Idee mit der LF finde ich schon gut. Gerade, wenn man mehr als diese drei Feldchen hat, welche per Default bestückt werden sollen, oder man halt den gaaaaanz ganauen Timestamp benötigt.

    Ich denke, wir können den Thread hier schließen.

    Ein schönes Wochenende schon mal.

    Booley

Similar Threads

  1. Nur einzelnes Feld vor write ändern
    By RaMai in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 28-11-06, 07:59
  2. Spooleintrag wird auf HOLD gesetzt
    By Joe in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 31-10-06, 15:17
  3. Subfilepositionierung bei der Ausgabe des Steuersatz mit WRITE
    By timeless in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-05-06, 06:37
  4. select 10 größte Werte je Ordnungsbegriff
    By holly in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 16-05-06, 12:45
  5. Zeiger nicht gesetzt
    By Joe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-04-06, 15:17

Berechtigungen

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