100% reliable. On Wed, Jan 27, 2016 at 11:52 AM, Brian Knott <bkn...@jbk.com.au> wrote:
> Returning the generated key is what I'm after. > > This code was originally written about 15 years ago using CF 4.5 and SQL > Server 2000. Back then the ID could not be returned. Time to update the > inserts. > > Does anyone know how reliable the GENERATEKEY function is. > > Brian > > > > ------------------------------ > *From*: "Paul Kukiel" <kuki...@gmail.com> > *Sent*: Wednesday, 27 January 2016 10:29 AM > *To*: cfaussie@googlegroups.com > *Subject*: Re: [cfaussie] SQL identity issue > > Same as Mikes but using the inbuilt functions and avoiding @@identity > > <cfquery datasource="#DSN#" result="myResult"> > INSERT INTO MyTable (col1) > VALUES ('col1') > </cfquery> > > <!--- Tag based output ---> > <cfoutput>Inserted ID is: #myResult["GENERATEDKEY"]#</cfoutput> > > > > On Wed, Jan 27, 2016 at 11:06 AM, Mark King <m...@ampersand.net.au> wrote: >> >> Hi Brian. >> >> >> >> Well first of all if you are using SQL Server try this to get the new ID >> in the same transaction rather than doing another query; >> >> >> >> <cfquery datasource="[datasource]" username="[username]" >> password="[password]" name="qry"> >> >> SET NOCOUNT ON >> >> INSERT INTO orders >> >> ( >> >> ** Your order fields ** >> >> ) >> >> VALUES >> >> ( >> >> ** Your data ** >> >> ) >> >> SELECT @@Identity AS orderID >> >> SET NOCOUNT OFF >> >> </cfquery> >> >> <cfset attributes.orderID=qry.orderID> >> >> >> >> I am not sure what you use the unique number for other than for something >> to put onto the receipts or something? >> >> >> >> However, if you want to obscure the ID in a link you could encrypt it. I >> have done this is the past where I sent users and email but didn’t want >> them to be able to just increment the link to see someone else’s order, >> e.g. displayorder.cfm?orderID=1234 >> >> >> >> So I did this: >> >> >> >> <cfset myKey="[** your generated AES key **]"> >> >> <cfset >> AESorderID=urlencodedformat(encrypt(attributes.orderID,myKey,"AES"))> >> >> >> >> Because the orderID is unique the encrypted value should be unique as >> well. >> >> >> >> See >> http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7c2f.html >> >> >> >> I am not sure if that is what you actually wanted but I hope it helps! >> >> >> >> >> >> *From:* cfaussie@googlegroups.com [mailto:cfaussie@googlegroups.com] *On >> Behalf Of *Brian Knott >> *Sent:* Wednesday, 27 January 2016 9:31 AM >> *To:* cfaussie@googlegroups.com >> *Subject:* [cfaussie] SQL identity issue >> >> >> >> Hi everyone. >> >> >> >> I have an issue with inserting orders into a database. What I currently >> do is create a random number and insert that number into the database when >> an order is inserted. I then query the database to get the order number >> (unique ID generated by SQL Server). Using this order number I then insert >> the items into an item table. >> >> >> >> The issue is that its possible for 2 orders to end up with the same >> unique number, this is because the random function is not actually that >> random. If two people are submitting orders at the same time, they get the >> same random number. This means that all of the items ordered go to one >> customer, and the other customer gets no items. >> >> >> >> Current code for the random number is >> >> >> >> <cfset session.order.uniquenumber = RandRange(1,99999999) + now()> >> >> >> >> Is there a more reliable way of doing this? >> >> >> >> Brian >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "cfaussie" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to cfaussie+unsubscr...@googlegroups.com. >> To post to this group, send email to cfaussie@googlegroups.com. >> Visit this group at https://groups.google.com/group/cfaussie. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "cfaussie" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to cfaussie+unsubscr...@googlegroups.com. >> To post to this group, send email to cfaussie@googlegroups.com. >> Visit this group at https://groups.google.com/group/cfaussie. >> For more options, visit https://groups.google.com/d/optout. >> > > > -- > Paul Kukiel > > > -- > You received this message because you are subscribed to the Google Groups > "cfaussie" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to cfaussie+unsubscr...@googlegroups.com. > To post to this group, send email to cfaussie@googlegroups.com. > Visit this group at https://groups.google.com/group/cfaussie. > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "cfaussie" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to cfaussie+unsubscr...@googlegroups.com. > To post to this group, send email to cfaussie@googlegroups.com. > Visit this group at https://groups.google.com/group/cfaussie. > For more options, visit https://groups.google.com/d/optout. > -- Paul Kukiel -- You received this message because you are subscribed to the Google Groups "cfaussie" group. To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+unsubscr...@googlegroups.com. To post to this group, send email to cfaussie@googlegroups.com. Visit this group at https://groups.google.com/group/cfaussie. For more options, visit https://groups.google.com/d/optout.