51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2638|回复: 3
打印 上一主题 下一主题

[原创] 用update时老是提示对象关闭时,不允许操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-5-19 13:58:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Function OpenConnection()
        Set Cnn = CreateObject("ADODB.Connection")
'        Cnn.ConnectionString = "rovider=MSDASQL.1ersist Security Info=true;User Id=saassword=command;Data Source = LocalServer"
'        Cnn.Open
        StrCon ="rovider=MSDASQL;Driver={SQL Server};Server=10.3.50.32;Database=ViewBase;Uid=sawd=command"
        Cnn.Open StrCon
        If Cnn.state=0 Then
                conn.close
                Set conn = Nothing
                Reporter.ReportEvent micFail,"数据库连接失败!","连接语句为:"&StrCon
                logPrint("数据库连接失败!连接语句为:"&StrCon)
        Else
                Reporter.ReportEvent micPass,"数据库连接成功!","连接语句为:"&StrCon
                logPrint("数据库连接成功!连接语句为:"&StrCon)
        End If
        Set OpenConnection = Cnn
End Function

Sub ExecuteSql(strSql)
Dim strValue,iCount
Cnn = OpenConnection()
Set rs = CreateObject("ADODB.RecordSet")
strSql = LCase(LTrim(strSql))
If Left(strSql,6)="select" Then
        rs.Open strSql,Cnn,1,1
        If rs.EOF Then
                Reporter.ReportEvent micFail,"查询语句查询结果为空!","查询语句为:"&strSql
                logPrint("查询语句查询结果为空!查询语句为:"&strSql)
        Else
                iCount = rs.Fields.Count
                rs.MoveFirst        '将记录集游标指到记录集的最开始
                Do
                Dim strR
                        For i = 0 To iCount - 1
                                strValue = rs.Fields(i).Value
                                strR=strR&strValue
                        Next
                                Reporter.ReportEvent micPass,"查询成功","查询结果为:"&strR
                                logPrint("查询结果为:"&strR)
                                strR=""
                rs.MoveNext
                Loop until rs.EOF = true
        End If
Else
        rs.Open strSql,Cnn,1,3
        If rs.EOF Then
                Reporter.ReportEvent micFail,"执行语句失败!","执行语句为:"&strSql
                logPrint("执行语句失败!"&strSql)
        Else
                Reporter.ReportEvent micPass,"执行语句成功!","执行语句为:"&strSql
                logPrint("执行语句成功!"&strSql)
        End If
End If
   rs.close
   Set rs = nothing
End Sub

Public Function logPrint(ByVal logMessage)
        Dim fso, logFile
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set logFile = fso.OpenTextFile("D:\我的文档\QTP学习\BCTTest\runtime.log", 8, True) 'Open a file and write to the end of the file and open as Unicode
        logFile.WriteLine(date() & " " & hour(now) & ":" & minute(now) & ":" & second(now) & ": " & logMessage)
        logFile.Close
End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-5-19 15:37:00 | 只看该作者
不要用rs.Open strSql,Cnn,1,3

Cnn.Execute strSql
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-5-19 15:45:19 | 只看该作者
如果有返回值就不能只Execute吧?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-5-19 22:02:01 | 只看该作者
原帖由 yahuu 于 2010-5-19 15:45 发表
如果有返回值就不能只Execute吧?

可以找份ADO的文档具体看看
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-22 16:30 , Processed in 0.066099 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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