Le us here the success story soon Gunnar Ekblad Kontema IT AB Hästholmsvägen 32 131 30 Nacka Sweden
-----Ursprungligt meddelande----- Från: [email protected] [mailto:[email protected]] För Claudine Robbins Skickat: den 12 augusti 2010 17:08 Till: RBASE-L Mailing List Ämne: [RBASE-L] - RE: FW: Question to RBASE List Gunnar, That's the way I do it too but I don't recheck the number before I insert the rows in the permanent tables. I'll add that and Javier's suggestion too. Thanks, Claudine -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Gunnar Ekblad Sent: Thursday, August 12, 2010 9:57 AM To: RBASE-L Mailing List Subject: [RBASE-L] - RE: FW: Question to RBASE List Hm The way I do it is temp tables for master and details I then append to real tables but before I check my invoicenumber again Gunnar Ekblad Kontema IT AB Hästholmsvägen 32 131 30 Nacka Sweden -----Ursprungligt meddelande----- Från: [email protected] [mailto:[email protected]] För Claudine Robbins Skickat: den 12 augusti 2010 16:30 Till: RBASE-L Mailing List Ämne: [RBASE-L] - RE: FW: Question to RBASE List I would, of course, prefer to have sequential numbers with no gaps but this is not generating check numbers so I can live with it so long as I quit having issues with detail records entered by one user being saved with the PK of another user. I'm using the following code which regularly burps when more than two users are logged in: ------------------------------------------------------------- --LOCK TABLE TO PREVENT OTHER USERS FROM GRABBING SAME NUMBER ------------------------------------------------------------- SET LOCK d_water_invoice_numbers ON --Grab next invoice number SELECT winvoice_id INTO vwinvoiceid INDICATOR iv1 + FROM d_water_invoice_numbers + WHERE used_nb = 'N' AND LIMIT = 1 --Mark that number as "used" so no one else can attempt to use it! UPDATE d_water_invoice_numbers SET used_nb = 'Y' + WHERE winvoice_id = .vwinvoiceid ------------------------------------------------------------- --UNLOCK TABLE ------------------------------------------------------------- SET LOCK d_water_invoice_numbers OFF ------------------------------------------------------------- Claudine -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Mike Byerley Sent: Thursday, August 12, 2010 8:44 AM To: RBASE-L Mailing List Subject: [RBASE-L] - RE: FW: Question to RBASE List This can get dicey in multi user, but you can control it by Table Lock, Primary Key, and if the NEXT is a number that generates a Primary Key error, then you NEXT again. If the number is declined, then you must RESET your AutoNumber back to its previous by issuing the AUTONUMBER (check syntax for renumbering) command against the value in the source table. ----- Original Message ----- From: "Gunnar Ekblad" <[email protected]> To: "RBASE-L Mailing List" <[email protected]> Sent: Thursday, August 12, 2010 8:22 AM Subject: [RBASE-L] - RE: FW: Question to RBASE List Claudine Only one small advise (1,5 cents only) Mike and Bill suggestion is as always wise, but before implementing it be sure that your numberserie that are not autonum will allow breaks in the serie. That's the reason I still stick to my old-fashioned way, In Sweden there is a law enforced by tax authorities that as in my sample Invoicenumbers must have no gaps. What happens in someone issue a next and saving it, you have a gap. Hope you are lucky to find your solution Gunnar Ekblad Kontema IT AB Hästholmsvägen 32 131 30 Nacka Sweden -----Ursprungligt meddelande----- Från: [email protected] [mailto:[email protected]] För Claudine Robbins Skickat: den 12 augusti 2010 13:50 Till: RBASE-L Mailing List Ämne: [RBASE-L] - RE: FW: Question to RBASE List Thanks Gunnar. That's how I got into trouble in the first place... Sent from my iPhone On Aug 11, 2010, at 11:51 PM, "Gunnar Ekblad" <[email protected]> wrote: > Claudine > > You can always use : > SELECT (MAX(Invoiceno) + 1) Into vinvoiceno INDIC ivinvoiceno FROM Invoice > > That will work when the column is not an autonum > > Gunnar Ekblad > Kontema IT AB > Hästholmsvägen 32 > 131 30 Nacka > Sweden > > > -----Ursprungligt meddelande----- > Från: [email protected] [mailto:[email protected]] För Claudine Robbins > Skickat: den 12 augusti 2010 04:10 > Till: RBASE-L Mailing List > Ämne: [RBASE-L] - RE: FW: Question to RBASE List > > Dan, > > Thanks for your response. > > I'll give NEXT a try. I saw this in the help file but since I don't have an > autonumbered column, I'll have to create one. > > Claudine > > > ________________________________________ > From: [email protected] [mailto:[email protected]] On Behalf Of Dan Goldberg > Sent: Wednesday, August 11, 2010 12:40 PM > To: RBASE-L Mailing List > Subject: [RBASE-L] - RE: FW: Question to RBASE List > > You want to use the next function to solve this. That way it grabs the > number and increments the autonumber. > > This is from the help file: > > (NEXT(tblname,autonumcol)) > > Returns the next value of an autonumbered column. > > Where colname is an autonumbered column in tblname NEXT returns, and > increments, the value of the next available autonumber . You cannot use this > function with INSERT, but you can use it with LOAD;NONUM. For example: > Assume that you have autonumbered the column EmployeeID in the table > Employees. The highest number currently used in the database is 134. In this > case, in the following example, the value of vNextOne will be 135 and the > value of vNextTwo will be 136. > > Notice that the value has incremented even though no other commands or > functions were issued. > > SET VAR vNextOne = (NEXT(Employees,EmployeeID)) > > > SET VAR vNextTwo = (NEXT(Employees,EmployeeID)) > Dan > > > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of Adriana > Montano > Sent: Wednesday, August 11, 2010 10:27 AM > To: RBASE-L Mailing List > Subject: [RBASE-L] - FW: Question to RBASE List > > > -----Original Message----- > From: Claudine Robbins > Sent: Wednesday, August 11, 2010 12:23 PM > To: Adriana Montano > Subject: Question to RBASE List > > Can you please forward this message to the list? Apparently, it no longer > works with this email address: > > > Good morning list, > > I have a problem with generating unique primary keys. > > The first routine, found in an RBTI sample, would pick the next value in the > PK column of the table, then would check and make sure the key was not in > use before saving the record or would pick the last + 1 value. > > I had many header/detail records end up mixed so I switched to the following > routine: > > Put all the numbers available in a single table with a Y/N flag and have > each user pick the next number from the table by locking the table, grabbing > the number, changing the flag to Y, and unlocking the table. > > All data entry is done through temporary header and detail tables so it > baffles me that I have crossovers and someone's detail records still end up > tacked unto someone else's records. Obviously, the unique header number can > be picked by two users... > > Any ideas to fix this will be greatly appreciated. > > TIA, > > Claudine Robbins > > --- RBASE-L > =======================3D======================= > D= > 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) > =======================3D======================= > D= > TO SEE MESSAGE POSTING GUIDELINES: > Send a plain text email to [email protected] In the message SUBJECT, put > just one word: INTRO =======================3D======================= > D= > TO UNSUBSCRIBE: > Send a plain text email to [email protected] In the message SUBJECT, put > just one word: UNSUBSCRIBE =======================3D======================= > D= > 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. > =======================3D======================= > D= > > --- RBASE-L > =======================3D=======================3 > D= > 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) > =======================3D=======================3 > D= > TO SEE MESSAGE POSTING GUIDELINES: > Send a plain text email to [email protected] > In the message SUBJECT, put just one word: INTRO > =======================3D=======================3 > D= > TO UNSUBSCRIBE: > Send a plain text email to [email protected] > In the message SUBJECT, put just one word: UNSUBSCRIBE > =======================3D=======================3 > D= > 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. > =======================3D=======================3 > D= > >

