设置PageSize,PageNumber并在页面之间切换

时间:2017-08-11 18:39:00

标签: sql-server vbscript ado

我有一个包含数百或数千个项目的页面。网页大小由用户手动设置,选择他/她想要查看的项目数(选项为25,50,100,200)。根据不同,项目将显示在多个页面中。

要验证每个项目,我有一个SQL。我想只检查当前屏幕上的项目,即项目26到50中的100项。

我接下来试过了:

ItemsOnPage = mybrowser.webelement(...).GetROProperty("innertext")
Set aRecordSet= objconnection.Execute(Query)
    aRecordSet.PageSize = ItemsOnPage 
    print aRecordSet.PageNumber

aRecordSet.PageNumber保持为-1,不依赖于PageSize,以及如果我没有设置PageSize。

另外,需要根据Web上的当前页面设置PageNumber:

    wCurrentPage = mybrowser.webElement(...).GetROProperty("innertext")

我尝试了下一个选项:

aRecordSet.AbsolutePage = wCurrentPage
aRecordSet.AbsolutePosition = 2+(ItemsOnPage *(wCurrentPage-1))

这些命令返回错误:对象打开时不允许操作。和

aRecordSet.CursorLocation = 1+(ItemsOnPage *(wCurrentPage-1))

返回"当前记录集不支持书签。"

如何实现?

UPD:获取数据的查询是:

SELECT * FROM tblCustomerMetricData
WHERE RunDate = '"&webGetDate&"' AND
CustomerID in 
(SELECT CustomerID from [tblCustomers] 
where RegionID in (SELECT RegionID FROM [tblRegion] 
WHERE RegionName = '"&webRegionName&"')) OR CustomerID in (SELECT CustomerID from [tblCustomers] 
where CustomerName = '"&webCustomerName&"'))

任何以" web"开头的东西被视为变量从用户设置的网页获取值。查询由UFT运行。

2 个答案:

答案 0 :(得分:0)

您可以使用几种不同的方法配置Recordset以供使用。我们在ADO客户端的网站上进行分页,效果很好。在建立数据库连接后尝试添加以下内容:

objconnection.CursorLocation = adUseClient

如果未定义adUseClient,请将其设置为3

Here are the docs for CursorLocation

答案 1 :(得分:0)

我无法配置我的Recordset - 不确定是否因为我不能或因为提供商不支持。 我继续使用这个解决方案:

pagesnumber = mybrowser(...).Webedit(...).GetROProperty("innertext") 'get pages on web
for p = 1 to pagesnumber-1
for r = 0 to webtable.rowcount
for c = 0 to webtable.columncount(1)

(comparing by cell by row here)

next 'loop columncount
Recordset.MoveNext
next 'loop rowcount
next 'loop pagesnumber

因此,我不需要为Recordset设置页面或记录编号。