Victor,

for my understanding and correct me if I am wrong,  step 4 is inaccurate, as
in a multi-user environment 2 concurrent selects COULD produce undesired
insert of a PONumber (and a TransID in "RRBYW8 / Enter new Sales Order" as
well).

So here goes the usefulness of NEXT function or UPDATE command, that can
take this role because they are made to hold these "multi user" cases.

Polychronis

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of
> Victor Timmons
> Sent: Tuesday, June 08, 2004 5:44 PM
> To: RBASE-L Mailing List
> Subject: [RBASE-L] - Re: Consecutive numbering
>
>
> Maybe this is what your looking for. Its based on Razzaks sample
> 8 for 7.1
> and our system here.
>
> 1. Create a temp table and base you form on it
>
> 2. In you code that starts the form based on the temp table do something
> like this and base it on the Real table
>       SELECT (MAX(PONumber)+1) INTO vPONumber INDIC ivPONumber
> FROM  POHeader
>
> 3. Then somewhere in your code before you start your form do an INSERT in
> the temp table and start the form
>   INSERT INTO tPOHeader +
>     (PONumber,PODate,POTime,POVendorID) +
>    Values +
>     (.vPONumber,.#DATE,.#TIME,.vVendorID)
>
> 4. When you leave the form check to make sure the number is still
> good. If
> the number is still good Append the temp table to the real table if not
> get the next number run an update and then append and exit the form
>   SELECT (MAX(PONumber)+1) INTO vPONumber2 INDIC ivPONumber2 FROM POHeader
>   IF vPoNumber2 = vPoNumber then
>     APPEND tPoHeader TO PoHeader
>   ELSE
>     UPDATE tPoHeader SET PoNumber = .vPoNumber2
>     APPEND tPoHeader TO PoHeader
>   ENDIF
>
>
>
>
> On 8 Jun 2004 at 11:06, ELOEN wrote:
>
> > Larry,
> >
> >   My small experience is that NEXT function is good choice in a multi
> user
> > environment, but I have not used it with real deletions.
> >   My only experience were consecutive, bank cheque numbers with an added
> > check digit. In my case  I had to use a table with all the values of
> cheques
> > in order to relate them with the payments. So what I 've done
> was to lay
> on
> > UPDATE .. WHERE ... AND LIMIT = 1 to a table with all the given,
> continue,
> > *ordered* range of values.
> >   A number was occupied if it had the right columns filled.
> >   Also to avoid the -unavoidable miss of the UPDATE execution I had it
> > repeated, if an error was after the execution.
> >   A deletion cleans the right fields and gives it back to *first* use.
> > (After some time I changed this: In case of user error it was better to
> > clean the fields but to "give the number for use"  at the end of the
> day,
> > together with a daily report)
> >
> >   In your case, if your goal is only a consecutive number with no other
> > implication, I would use NEXT function, have deleted numbers to a table
> > handled by INSERT, SELECT and DELETE and also a daily routine to check
> the
> > integrity of consecution.
> >
> > Just some thoughts
> >
> > Polychronis Kontos
> > Athens, Greece
> >
> >
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of
> > > Lawrence Lustig
> > > Sent: Monday, June 07, 2004 10:33 PM
> > > To: RBASE-L Mailing List
> > > Subject: [RBASE-L] - Re: Consecutive numbering
> > >
> > >
> > > > Would you have to limit access to the table to a
> > > > single user at a time, at
> > > > least in a multi-user environment?  This would be to
> > > > assure that no 2 users
> > > > hitting the table simultaneously get the same
> > > > number, if that's possible, as
> > > > well as other potential problems related to many
> > > > users accessing the table.
> > >
> > > There's no guarantee that this would be true, and I
> > > have to allow for simultaneous entries on different
> > > machines more or less at the same time.
> > >
> > > I believe the NEXT() function should handle conflicts,
> > > taking out the necessary short term lock on the
> > > AUTONUM column in my dummy table.
> > > --
> > > Larry
> > >
> > >
> > >
> > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > Friends.  Fun.  Try the all-new Yahoo! Messenger.
> > > http://messenger.yahoo.com/
> > >
> >
> >
>
>
>
> Victor Timmons
> Tiz's Door Sales, Inc
> 425-258-2391
>

--- RBASE-L
================================================
TO POST A MESSAGE TO ALL MEMBERS:
Send a plain text email to [EMAIL PROTECTED]

(Don't use any of these words as your Subject:
INTRO, SUBSCRIBE, UNSUBSCRIBE, SEARCH,
REMOVE, SUSPEND, RESUME, DIGEST, RESEND, HELP)
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [EMAIL PROTECTED]
In the message SUBJECT, put just one word: INTRO
================================================
TO UNSUBSCRIBE: 
Send a plain text email to [EMAIL PROTECTED]
In the message SUBJECT, put just one word: UNSUBSCRIBE
================================================
TO SEARCH ARCHIVES:
Send a plain text email to [EMAIL PROTECTED]
In the message SUBJECT, put just one word: SEARCH-n
(where n is the number of days). In the message body, 
place any 
text to search for.
================================================

Reply via email to