Re: adUseClient and the command object
From: William Morris (news.remove.this.and.the.dots_at_seamlyne.com)
Date: 03/30/04
- Next message: Scott Treseder: "Re: Which is the best for connecting SQL Server?"
- Previous message: William Morris: "adUseClient and the command object"
- In reply to: William Morris: "adUseClient and the command object"
- Next in thread: William \(Bill\) Vaughn: "Re: adUseClient and the command object"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 30 Mar 2004 10:41:53 -0600
A few more details: SQL Server 2000, OLEDB, Windows 2000. For the purposes
of this post, assume the query always returns records.
And to repeat the question, a little less ambiguously: Is there a way to get
where I want to go, which is to say, return a recordset I can page through
from query that could potentially run long, and do so allowing for a long
timeout?
"William Morris" <news.remove.this.and.the.dots@seamlyne.com> wrote in
message news:c4c7r3$2gn2j0$1@ID-205671.news.uni-berlin.de...
> I'm using a method for paging through results I got from
4GuysFromRolla.com,
> so:
>
> set rs = Server.CreateObject("ADODB.Recordset")
> 'Set the cursor location property
> rs.CursorLocation = adUseClient
> 'Set the cache size = to the # of records/page
> rs.CacheSize = NumPerPage
> rs.open sSQL, conn
> if rs.eof and rs.bof then
> response.write " <P><div align=""center""><span style='padding:
10px;
> border: 2px solid #ff0000;'>There are no vehicles in our inventory that
> match the criteria you entered.</span></div>"
> else
> rs.moveFirst
> m_totalRows = rs.recordcount
> rs.pageSize = NumPerPage
> m_TotalPages = rs.PageCount
> rs.AbsolutePage = m_currentPage
> outputArray = rs.GetRows
>
> It works very well as long as the query doesn't take so long that it times
> out, which it sometimes does. I tried using the command object along with
> the code above so I could specify a CommandTimeout, as in:
>
> set cmd = server.createobject("adodb.command")
> cmd.activeconnection = conn
> cmd.CommandText = sSQL
> cmd.commandTimeout = 120
>
> set rsResults = Server.CreateObject("ADODB.Recordset")
> 'Set the cursor location property
> rsResults.CursorLocation = adUseClient
> 'Set the cache size = to the # of records/page
> rsResults.CacheSize = NumPerPage
> set rsResults = cmd.execute
> rsResults.moveFirst
> m_totalRows = rsResults.recordCount
> rsResults.pageSize = NumPerPage
> m_totalPages = rsResults.pageCount
> m_currentPage = GetCurrentPageNumber
> rsResults.AbsolutePage = m_currentPage
> dim outputArray, tmpRowCounter
> tmpRowCounter = 1
> outputArray = rsResults.getRows
>
> ...but I get the following error: " Arguments are of the wrong type, are
out
> of acceptable range, or are in conflict with one another. " on this line:
>
> rsResults.AbsolutePage = m_currentPage
>
> Is there a way to get where I want to go, which is to say, run a long
query
> without timing out?
>
> --
> William Morris
> Semster, Seamlyne reProductions
> Visit our website, http://www.seamlyne.com, for the most comfortable
> historically inspired clothing you can buy!
>
>
- Next message: Scott Treseder: "Re: Which is the best for connecting SQL Server?"
- Previous message: William Morris: "adUseClient and the command object"
- In reply to: William Morris: "adUseClient and the command object"
- Next in thread: William \(Bill\) Vaughn: "Re: adUseClient and the command object"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|