51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2693|回复: 6
打印 上一主题 下一主题

[原创] 数据库连接得到的结果集的处理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-7-31 12:32:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim Rs,Sq
Set Conn = CreateObject("Adodb.Connection")
Set Rs = CreateObject("Adodb.RecordSet")
Conn.ConnectionString="rovider=MSDAORA.1;User ID=irpt411assword=irpt411;Data Source=MYORCLersist Security Info=False"
Conn.Open
If Conn.State = 0 Then
        Reporter.ReportEvent micFail, "测试连接","数据库连接失败!"
        Conn.Close
        Set Conn = Nothing
Else
        Reporter.ReportEvent micPass, "测试连接","数据库连接成功!"
        Set Rs = CreateObject("Adodb.RecordSet")
        strSql = "Select  index_,userid  from irpt411.IRPT_USERS"
        Rs.Open strSql,Conn
        Rs.MoveFirst
        Do
                Rs.MoveNext
                Reporter.ReportEvent micPass,"数据为:", cstr(Rs(0)) & cstr(Rs(1))
                Reporter.ReportEvent micPass,"数据为:", Rs.Fields(0)+Rs.Fields(1)

        Loop Until Rs.EOF= True
        Rs.Close
        Set Rs = Nothing
        Conn.Close
        Set Conn = Nothing
End If

为什么红色标记的两种方法都得不到结果?运行提示General run error.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-7-31 13:54:34 | 只看该作者
原因知道了
是数据库里只有1条记录,所以改成下面这样就可以了

Dim Rs,Sq
Set Conn = CreateObject("Adodb.Connection")
Set Rs = CreateObject("Adodb.RecordSet")
Conn.ConnectionString="rovider=MSDAORA.1;User ID=irpt411assword=irpt411;Data Source=MYORCLersist Security Info=False"
Conn.Open
If Conn.State = 0 Then
        Reporter.ReportEvent micFail, "测试连接","数据库连接失败!"
        Conn.Close
        Set Conn = Nothing
Else
        Reporter.ReportEvent micPass, "测试连接","数据库连接成功!"
        Set Rs = CreateObject("Adodb.RecordSet")
        strSql = "Select  index_,userid  from irpt411.IRPT_USERS"
        Rs.Open strSql,Conn
        Rs.MoveFirst
        Do
                Reporter.ReportEvent micPass,"数据为:", cstr(Rs(0)) & cstr(Rs(1))
                Reporter.ReportEvent micPass,"数据为:", cstr(Rs.Fields(0))+cstr(Rs.Fields(1))
                Rs.MoveNext
        Loop Until Rs.EOF= True
        Rs.Close
        Set Rs = Nothing
        Conn.Close
        Set Conn = Nothing
End If
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-4-22 12:50
  • 签到天数: 393 天

    连续签到: 1 天

    [LV.9]测试副司令

    3#
    发表于 2010-7-31 22:43:13 | 只看该作者
    很多ASP或VB连接数据库的教程,都喜欢用Rs.MoveFirst
    其实这个是不必要的,记录集打开时,指针是指在第一条记录的
    另外我喜欢用
    do while not rs.eof
    ...
    rs.movenext
    loop

    还有一个地方,很多资料也喜欢直接这样写
    Rs.Open strSql,Conn
    这样并不是一个很好的编程习惯,

    我建议记录集打开时,同时指定它的游标类型
    比如:
    rs.Open strSql,Conn,1,1

    rs.Open strSql,Conn,2,3

    等。。大家有兴趣可以了解一下记录集游标类型,呵呵。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-8-2 20:02:11 | 只看该作者
    很有意思,我也会试试的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-8-3 15:43:08 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2010-8-3 17:43:29 | 只看该作者
    原帖由 sterson 于 2010-7-31 22:43 发表
    很多ASP或VB连接数据库的教程,都喜欢用Rs.MoveFirst
    其实这个是不必要的,记录集打开时,指针是指在第一条记录的
    另外我喜欢用
    do while not rs.eof
    ...
    rs.movenext
    loop

    还有一个地方,很多资料也喜欢直 ...


    使用游标有什么好处咧……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2010-8-3 17:45:23 | 只看该作者
    原帖由 TIB 于 2010-8-3 15:43 发表
    ADO教程:
    http://www.w3school.com.cn/ado/index.asp


    谢谢,很全面
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 11:41 , Processed in 0.090777 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表