× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: CHAIN or READ without lock
  • From: "John Taylor" <john.taylor@xxxxxxxxxxxxxxx>
  • Date: Thu, 10 Feb 2000 22:35:56 -0700
  • Importance: Normal



> -----Original Message-----
> From: owner-rpg400-l@midrange.com [mailto:owner-rpg400-l@midrange.com]On
> Behalf Of fkolmann@revlon.com.au
> Sent: Thursday, February 10, 2000 9:35 PM
> To: RPG400-L@midrange.com
> Subject: CHAIN or READ without lock
>
>
> Thought I would check if others have experience something like this.
>
> The CHAIN or READ without lock is a new function (well sort of) , but do
> you know it also READS LOCKED records.
>
> We had duplicate invoice numbers in our order processing application.
> It was caused by  the 'N'  (no lock ) on a CHAIN op.
> I checked the manual and if you read the fine print, yes  you can read a
> LOCKED record with
> a CHAIN or READ  even if the file is opened for UPDATE, provided you use
> a N to request a
> read without lock.
> Personally I stay away from the read without lock.


This is exactly how I would expect it to work. If this behaviour is what is
causing your duplicate invoice numbers, then I respectfully suggest that you
re-think your application design.

One common method of obtaining unique invoice numbers would be as follows:

FILEA - Tailoring file that stores the next available invoice number.
FILEB - Invoice Master

1) Chain to FILEA with a record lock.
2) Retrieve next available invoice number.
3) Chain to FILEB without a record lock to test for duplicate invoice
number.
4) If duplicate found, increment next available invoice number & repeat.
5) Once you have a unique invoice#, write invoice header record to FILEB.
6) Increment next available invoice number.
7) Commit changes.

Of course, standard error handling is required for lock timeouts, invoice#
rollover etc.


Regards,

John Taylor
Canada

+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.