|
Hi Roger
Does the file have any logicals with unique keys
That can also create the problem that you are facing
Even though THIS file may not have a record already out there, data in
this write attempt may be a duplicate of that logical
Alan Shore
Programmer/Analyst, Direct Response
E:AShore@xxxxxxxx
P:(631) 200-5019
C:(631) 880-8640
"If you're going through Hell, keep going" - Winston Churchill
-----Original Message-----
From: rpg400-l-bounces+ashore=nbty.com@xxxxxxxxxxxx
[mailto:rpg400-l-bounces+ashore=nbty.com@xxxxxxxxxxxx] On Behalf Of
Robert Rogerson
Sent: Tuesday, November 15, 2011 11:29 AM
To: RPG programming on the IBM i / System i
Subject: Attempt to write duplicate record...
Hi All,
I had a stored procedure fail with RNX1021 Attempt to write a duplicate
record to file SIGNTMP.
SIGNTMP has the following constraint:
Constraint
Description
Primary Key
Constraint
Constraint . . . . . . . . . . . . . . : CST
Q_QS36F_SIGNTMP_WK
Type . . . . . . . . . . . . . . . . : TYPE
*PRIMARY
Key . . . . . . . . . . . . . . . . . : KEY
WKCUS#
WKITM#
WKDOCT
WKDOC#
Number of fields in key . . . . . . . :
4
In the code I have...
// Write to the work file if not already there
Chain(n) (p_store: p_item: p_DocumentType: p_Document) signtmp;
If not %Found(signtmp);
wkcus# = p_store;
wkitm# = p_item;
wkdoct = p_DocumentType;
wkdoc# = p_Document;
Write signtm;
Endif;
I thought this was pretty solid code but the program still failed. A
new
record is only written if a record with the same key is not found.
So my only explanation is that another process wrote a record with the
same key in between the Chain and the Write.
Am I missing something of does some have another explanation.
BTW, I understand that I can add an error extender to the Write and
capture the error but my question still remains if there's another
explanation for the failure...
Thanks for all ideas,
Robert Rogerson
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.