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.

Reply via email to