[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2001
    Beiträge
    45

    Post Update DTAARA in RPG/LE

    Hallo,

    ich wollte jetzt mal nach 10000000 Versuchen einen Tip von Euch haben, bevor ich noch mehr Löcher in meinen Schreibtisch beisse ;-).

    Also ich möchte gerne den Datenbereich "DAT1"
    in meinem Programm lesen und später auch mehrmals updaten.

    Aber ich bekomme andauernd einen *lock oder so und muss dann mit *unlock etc. arbeiten ... und beim Aufruf folgendes:
    "DAT1 kann nicht fortgeschrieben werden, da er nicht zum fortschreiben zugeordnet ist ..."

    so siehts bei mir im Programm aus:

    C *DTAARA DEFINE DAT1 $DAT1
    C UNLOCK $DAT1
    C *LOCK IN $DAT1

    beim updaten:
    C *LOCK OUT $DAT1
    C UNLOCK $DAT1

    wie gesagt...manchmal gehts dann wieder nicht ... :-((
    Helft mir mal bitte,

    Riiiiiiiiiesen Dank,
    HoScHiE

    [Dieser Beitrag wurde von HoScHiE am 10. Juni 2002 editiert.]
    Bye
    HoScHiE

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    850

    Talking

    Hallo HoScHiE


    Du kannst im RPG die DTAARA Lesen:
    Dazu kein *Lock angeben.(Es können nur Daten gelesen werden.)
    Wenn Du *Lock angibst musst Du mit *OUT die Daten wieder zurückschreiben. ( Sonst ist die DTAARA gesperrt.)

    na dann viel Spass
    Michael


  3. #3
    Registriert seit
    Jul 2001
    Beiträge
    45

    Post

    HAllo,

    aber wie update ich mehrmals und warum brauch ich manchmal nen UNLOCK ?!?!?!

    Aufgabe:
    1. Lesen DTAARA
    2. Verarbeitung
    3. Update DTAARA in schleife = 10 mal.
    4. SET LR

    Danke
    Bye
    HoScHiE

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    68

    Post

    Hey,

    im normalen RPG sieht das so aus. Das kann man dann auch mehrfach in einer Schleife einbauen

    *NAMVAR DEFN PERSPR 1
    *LOCK IN *NAMVAR
    MOVEL'X' PERSPR
    OUT *NAMVAR

    UNLCK*NAMVAR

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Das Problem ist, dass der OUT-Befehl die DTAARA entsperrt, ein Update ist also grundsätzlich nur in einer IN .. OUT -Sequenz machbar.
    Wenn man mit *NAMVAR arbeitet, ist also jedesmal ein IN-Befehl und dann ein OUT-Befehl erforderlich. Zusätzlich sollten Bezugszahlen gesetzt werden, da beim OUT-Befehl eine exclusive Sperre auf die DTAARA gesetzt wird, d.h., dass zu diesem Zeitpunkt KEIN anderes Programm Zugriff auf die DTAARA haben darf ! Falls doch, wird die Bezugszahl angesetzt und der Update erfolgt NICHT.

    Die andere Variante ist die DTAARA in den I-Bestimmungen (UDS) zu definieren. Dann wird die DTAARA beim programmstart gesperrt und beim Programmende (*INLR = *ON) automatisch upgedatet. Das problem hierbei ist, dass zur Laufzeit des programmes KEIN anderes Programm einen Update durchführen kann. EIN DSPDTAARA ist aber jederzeit möglich.
    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. SQL Update aus zwei Dateien mit 3 Schlüsselfeldern
    By mk in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-12, 08:53
  2. ODBC update
    By synus in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-10-06, 15:38
  3. Update Syntax SQL
    By wuwu in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-07-06, 15:31
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. Update via ODBC
    By mdhl in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 18-05-06, 13:27

Berechtigungen

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