-
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
-
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
-
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
-
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
-
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.
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By synus in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 06-10-06, 15:38
-
By wuwu in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-07-06, 15:31
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks