2010-06-14 100 views
0

我现在正在使用vbscript来做一些测试。 Actuelly,我想从Oracle数据库检索大量数据的,所以我写了这样的代码:如何从oracle数据库使用vbscript检索大数据

sql = "Select * from CORE_DB where MC = '" & mstr & "' " 
Set myrs = db_execute_query(curConnection, sql) 

那我算在米儿丝行,有248行。那么我做一个对于循环来检索每一行的一些字段。

For k = 0 To db_get_rows_count(myrs) 

但是,我发现,行ķ的内容时K> 133总是等于K = 133。所以这是一个错误。

db_execute_query功能就像是

Function db_execute_query (byRef curSession , SQL) 
set rs = curSession.Execute(SQL) 
set db_execute_query = rs 
End Function 

db_get_rows_count功能就像是

Function db_get_rows_count(byRef curRS) 
    dim rows 
    rows = 0 
    db_get_rows_count = rows 
    curRS.MoveFirst 
    Do Until curRS.EOF 
    rows = rows+1 
    curRS.MoveNext 
    Loop 
    db_get_rows_count = rows 
End Function 

正如我认为,有可能是mrys限制大小?任何人都可以点亮我吗?提前致谢

+0

这将有助于了解db_execute_query和db_get_rows_count函数的功能。这很可能就是问题所在。 – 2010-06-14 14:18:36

+0

@Cheran,好吧,我编辑这个问题,给出关于这两个函数的一些细节。谢谢 – allenzzzxd 2010-06-14 16:45:55

+0

任何人都可以给点意见吗? – allenzzzxd 2010-06-17 08:15:00

回答

1

了解数据库中的实际情况将会非常有用。你可以使用其他工具(SQLPlus,PL/SQL Developer,Toad等)连接到你的数据库并执行你的查询吗?如果这样做,那么结果是否与通过VBScript执行查询时得到的结果相匹配?

另外,你是否从数据库中得到错误?这可能有助于确定发生了什么。

+0

感谢您的回答,我已经在数据库中验证了预期的结果,但是我还没有在另一个工具中执行sql查询。无论如何,我没有任何错误。 – allenzzzxd 2010-06-14 11:06:05

+0

你好,我已经测试过使用SQL Developer,结果是正确的,所以我认为这可能是我的VBScript语句的问题 – allenzzzxd 2010-06-14 12:40:37

+1

看着你的代码,我想知道你为什么遍历结果集来找出如何查询返回了很多行,然后您将返回处理行。我建议你不要打扰数行,只是在你得到它们时处理它们。如果您在处理数据之前确实需要对它们进行计数,则需要确保在调用db_get_rows_count之后以及在开始再次查看结果集中的行之前,有一个curRS.MoveFirst可以完成。 – 2010-06-14 21:26:00

相关问题