Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Why does this work?

Reply
Thread Tools

Why does this work?

 
 
the other john
Guest
Posts: n/a
 
      08-07-2006
ok, for a change I'm looking for why something "does" work.

I wanted to insert a record into an Access DB and then retrieve the
value that was just inserted. I came across this...

http://support.microsoft.com/default.aspx/kb/221931

I tried this out and it seemed to work but what I noticed is that when
it printed out the value "before" the requery it already contained the
value I was looking for. So, for some reason, this works. why and
how?

Thanks!
'
'
rsStoryData.AddNew

'rsStoryData("fld_story_catagory_ID") = Upload.Form("catagoryID")
rsStoryData("fld_story_title") = Upload.Form("title")
rsStoryData("fld_story_dateCreated") = now

rsStoryData.Update

'retrieve story ID just created and place in variable. why this works
I don't know...
storyID = rsStoryData("PK_story_ID") 'this value is the "new" just
inserted ID value
'
'

 
Reply With Quote
 
 
 
 
Bob Barrows [MVP]
Guest
Posts: n/a
 
      08-07-2006
the other john wrote:
> ok, for a change I'm looking for why something "does" work.
>
> I wanted to insert a record into an Access DB and then retrieve the
> value that was just inserted. I came across this...
>
> http://support.microsoft.com/default.aspx/kb/221931
>
> I tried this out and it seemed to work but what I noticed is that when
> it printed out the value "before" the requery it already contained the
> value I was looking for. So, for some reason, this works. why and
> how?
>
> Thanks!
> '
> '
> rsStoryData.AddNew
>
> 'rsStoryData("fld_story_catagory_ID") = Upload.Form("catagoryID")
> rsStoryData("fld_story_title") = Upload.Form("title")
> rsStoryData("fld_story_dateCreated") = now
>
> rsStoryData.Update
>
> 'retrieve story ID just created and place in variable. why this works
> I don't know...
> storyID = rsStoryData("PK_story_ID") 'this value is the "new" just
> inserted ID value
> '
> '

Hard to say, given that you haven't shown us your connection string or
the options used to open your recordset.

I will say that the example in the KB article
1. uses the obsolete ODBC driver
2. erroneously states that a server-side cursor cannot be used with Jet
3. because of the mistaken assumption in 2, uses a client-side cursor
which must be requeried in order to retrieve the value.

You seem to be using a server-side cursor, whose autoincr field is
automatically populated after the update method is executed.

http://www.aspfaq.com/show.asp?id=2174


--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.


 
Reply With Quote
 
 
 
 
the other john
Guest
Posts: n/a
 
      08-08-2006
Sorry. Here's the full version...

Set objWriteConn = Server.CreateObject("ADODB.Connection")
objWriteConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=E:\InetPub\Clients\xxxxx\cgi-bin\writing.mdb"
Set rsStoryData = Server.CreateObject("ADODB.Recordset")
storySQL = "SELECT * FROM tbl_stories;"
rsStoryData.Open storySQL, objWriteConn, adOpenStatic,
adLockOptimistic, adCmdText

rsStoryData.AddNew

'rsStoryData("fld_story_catagory_ID") = Upload.Form("catagoryID")
rsStoryData("fld_story_title") = Upload.Form("title")
rsStoryData("fld_story_dateCreated") = now
rsStoryData("fld_story_body") = Upload.Form("storyBody")
rsStoryData("fld_story_quote1") = Upload.Form("quote1")
rsStoryData("fld_story_quote2") = Upload.Form("quote2")
rsStoryData("fld_story_quote3") = Upload.Form("quote3")
rsStoryData.Update

'retrieve story ID just created and place in variable
storyID = rsStoryData("PK_story_ID")

rsStoryData.Close
Set rsStoryData = nothing


Bob Barrows [MVP] wrote:
> the other john wrote:
> > ok, for a change I'm looking for why something "does" work.
> >
> > I wanted to insert a record into an Access DB and then retrieve the
> > value that was just inserted. I came across this...
> >
> > http://support.microsoft.com/default.aspx/kb/221931
> >
> > I tried this out and it seemed to work but what I noticed is that when
> > it printed out the value "before" the requery it already contained the
> > value I was looking for. So, for some reason, this works. why and
> > how?
> >
> > Thanks!
> > '
> > '
> > rsStoryData.AddNew
> >
> > 'rsStoryData("fld_story_catagory_ID") = Upload.Form("catagoryID")
> > rsStoryData("fld_story_title") = Upload.Form("title")
> > rsStoryData("fld_story_dateCreated") = now
> >
> > rsStoryData.Update
> >
> > 'retrieve story ID just created and place in variable. why this works
> > I don't know...
> > storyID = rsStoryData("PK_story_ID") 'this value is the "new" just
> > inserted ID value
> > '
> > '

> Hard to say, given that you haven't shown us your connection string or
> the options used to open your recordset.
>
> I will say that the example in the KB article
> 1. uses the obsolete ODBC driver
> 2. erroneously states that a server-side cursor cannot be used with Jet
> 3. because of the mistaken assumption in 2, uses a client-side cursor
> which must be requeried in order to retrieve the value.
>
> You seem to be using a server-side cursor, whose autoincr field is
> automatically populated after the update method is executed.
>
> http://www.aspfaq.com/show.asp?id=2174
>
>
> --
> Microsoft MVP -- ASP/ASP.NET
> Please reply to the newsgroup. The email account listed in my From
> header is my spam trap, so I don't check it very often. You will get a
> quicker response by posting to the newsgroup.


 
Reply With Quote
 
Bob Barrows [MVP]
Guest
Posts: n/a
 
      08-08-2006
the other john wrote:
> Sorry. Here's the full version...
>
> Set objWriteConn = Server.CreateObject("ADODB.Connection")
> objWriteConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
> Source=E:\InetPub\Clients\xxxxx\cgi-bin\writing.mdb"
> Set rsStoryData = Server.CreateObject("ADODB.Recordset")
> storySQL = "SELECT * FROM tbl_stories;"
> rsStoryData.Open storySQL, objWriteConn, adOpenStatic,
> adLockOptimistic, adCmdText


You see? You are using a server-side cursor which is the default. The writer
of that KB article was wrong when he said server-side cursors could not be
used with Jet ... or he was referring to an earlier version of Jet. You are
using Jet 4.0.

<snip>
> rsStoryData.Update
>
> 'retrieve story ID just created and place in variable
> storyID = rsStoryData("PK_story_ID")
>


With server-side cursors, this field is automatically updated.

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"


 
Reply With Quote
 
the other john
Guest
Posts: n/a
 
      08-08-2006
LOL, this is so cool! All this time I've been doing work arounds for
nothing! Have to research server-side cursors.

Thanks Bob!


Bob Barrows [MVP] wrote:
> the other john wrote:
> > Sorry. Here's the full version...
> >
> > Set objWriteConn = Server.CreateObject("ADODB.Connection")
> > objWriteConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
> > Source=E:\InetPub\Clients\xxxxx\cgi-bin\writing.mdb"
> > Set rsStoryData = Server.CreateObject("ADODB.Recordset")
> > storySQL = "SELECT * FROM tbl_stories;"
> > rsStoryData.Open storySQL, objWriteConn, adOpenStatic,
> > adLockOptimistic, adCmdText

>
> You see? You are using a server-side cursor which is the default. The writer
> of that KB article was wrong when he said server-side cursors could not be
> used with Jet ... or he was referring to an earlier version of Jet. You are
> using Jet 4.0.
>
> <snip>
> > rsStoryData.Update
> >
> > 'retrieve story ID just created and place in variable
> > storyID = rsStoryData("PK_story_ID")
> >

>
> With server-side cursors, this field is automatically updated.
>
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap so I
> don't check it very often. If you must reply off-line, then remove the
> "NO SPAM"


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FAQ 5.38 Why does Perl let me delete read-only files? Why does "-i" clobber protected files? Isn't this a bug in Perl? PerlFAQ Server Perl Misc 0 03-09-2011 11:00 PM
FAQ 5.38 Why does Perl let me delete read-only files? Why does "-i" clobber protected files? Isn't this a bug in Perl? PerlFAQ Server Perl Misc 0 02-11-2011 05:00 AM
why why why why why Mr. SweatyFinger ASP .Net 4 12-21-2006 01:15 PM
findcontrol("PlaceHolderPrice") why why why why why why why why why why why Mr. SweatyFinger ASP .Net 2 12-02-2006 03:46 PM
why why why does function not work Horace Nunley ASP .Net 1 09-27-2006 09:52 PM



Advertisments