51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2212|回复: 4
打印 上一主题 下一主题

[求助] QTP中能用SQL语言吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-25 18:06:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
当从数据库中获取信息时,在QTP中能否直接用SQL语句
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

5#
发表于 2007-12-25 18:30:32 | 只看该作者
'***************************************************************************
'function.vbs
'***************************************************************************

Dim Conn
Dim oCmd
Dim Res

'データベース接続開始
Public Function DBConnect()
   Dim strCnnString
   
   Set Conn = CreateObject("ADODB.Connection")
   Set Res = CreateObject("ADODB.Recordset")
   Set oCmd = CreateObject("ADODB.Command")

   strCnnString = Val("connString")
   Conn.ConnectionString = strCnnString
   
   Conn.open

   If Conn.state = 0  Then
       Reporter.ReportEvent micFail, "DB接続状況", "接続できません。"
   Else
       Reporter.ReportEvent micPass, "DB接続状況", "接続できます。"
   End If

   oCmd.ActiveConnection = Conn
   oCmd.CommandType = 1
End Function

'SQLを実行して、結果を取得する
Public Function ExecuteSql(strSql)
    oCmd.CommandText = strSql
        Set Res = oCmd.Execute()
End Function

'データベース接続断開
Public Function DBClose()
   If Conn.state = 1 Then
           Conn.close
   End If
   Set Conn = Nothing
   Set Res = Nothing
   Set oCmd = Nothing
End Function

Public Function LoadEnvironment()
        Dim configFile 'config file name
        Dim fso

        Set fso = CreateObject("Scripting.FileSystemObject")

        configFile = dir & "\global.xml"

        If (fso.FileExists(configFile)) Then
        Reporter.ReportEvent micPass, "「global.xml」存在状況", "存在する。"
                Environment.LoadFromFile(configFile)
    Else
        Reporter.ReportEvent micFail, "「global.xml」存在状況", "存在しない。"
                Call ExitCurrentTest
    End If
End Function

Public Function ExitCurrentTest()
        ExitTest
End Function

Public Function Val(valName)
        Val = Environment.Value(valName)
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-12-25 18:29:41 | 只看该作者
这个是我做的一个例子,你可以参考一下:

Dim dir
Dim tempPath
dir = Environment("TestDir")
tempPath = dir & "\function.vbs"

ExecuteFile tempPath

Call LoadEnvironment()

Call DBConnect()

Call selectRecord()

'Call insertRecord()

'Call updateRecord()

'Call deleteRecord()

Call DBClose()

Function selectRecord()
    Dim tempValue
        Dim strSQLString
       
        strSQLString = "select * from t_bmn_staff_m"

        Call ExecuteSql(strSQLString)
       
        Do while not Res.eof
                  For i = 0 to 30
                          tempValue = "Line" & i & ":" & Res(i)
                          print(tempValue)
                  Next
                  Res.MoveNext
        Loop
End Function

Function insertRecord()
    Dim tempValue
        Dim strSQLString
       
        strSQLString = "insert into t_bmn_staff_m(STAFF_ID,INTERNAL_ID,SERVICE_STATUS,STAFF_NM_KANJI) values (?,?,?,?)"
       
        Set tempValue = oCmd.CreateParameter("STAFF_ID", 129, 1, 10, "jinsen0001")
        oCmd.Parameters.Append tempValue

        Set tempValue = oCmd.CreateParameter("INTERNAL_ID", 131, 1, 10, "1000000000")
        oCmd.Parameters.Append tempValue

        Set tempValue = oCmd.CreateParameter("SERVICE_STATUS", 131, 1, 1, "1")
        oCmd.Parameters.Append tempValue

        Set tempValue = oCmd.CreateParameter("STAFF_NM_KANJI", 129, 1, 60, "テスト1です。")
        oCmd.Parameters.Append tempValue

        Call ExecuteSql(strSQLString)
End Function

Function updateRecord()
        Dim tempValue
        Dim strSQLString
       
        strSQLString = "update t_bmn_staff_m t set t.staff_nm_kanji = ? where t.staff_id = ?"

        Set tempValue = oCmd.CreateParameter("STAFF_NM_KANJI", 129, 1, 60, "テスト2です。")
        oCmd.Parameters.Append tempValue

        Set tempValue = oCmd.CreateParameter("STAFF_ID", 129, 1, 10, "jinsen0001")
        oCmd.Parameters.Append tempValue

        Call ExecuteSql(strSQLString)
End Function

Function deleteRecord()
   Dim tempValue
   Dim strSQLString
   
   strSQLString = "delete t_bmn_staff_m t where t.staff_id = ?"

   Set tempValue = oCmd.CreateParameter("STAFF_ID", 129, 1, 10, "jinsen0001")
   oCmd.Parameters.Append tempValue

   Call ExecuteSql(strSQLString)
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-12-25 18:18:00 | 只看该作者
就是说我已经连接好数据库了,想从数据库中读取我想要得到的某一信息,那么这个语句是不是就可以直接用SQL语句了呢?
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2007-12-25 18:12:56 | 只看该作者
不明白楼主的意思。
一般来说,都是使用ADO语言:连接数据库->写SQL->传值->操作检索结果。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 00:51 , Processed in 0.067185 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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