51Testing软件测试论坛

标题: QTP中能用SQL语言吗? [打印本页]

作者: vicky51    时间: 2007-12-25 18:06
标题: QTP中能用SQL语言吗?
当从数据库中获取信息时,在QTP中能否直接用SQL语句
作者: jinsen    时间: 2007-12-25 18:12
不明白楼主的意思。
一般来说,都是使用ADO语言:连接数据库->写SQL->传值->操作检索结果。
作者: vicky51    时间: 2007-12-25 18:18
就是说我已经连接好数据库了,想从数据库中读取我想要得到的某一信息,那么这个语句是不是就可以直接用SQL语句了呢?
作者: jinsen    时间: 2007-12-25 18:29
这个是我做的一个例子,你可以参考一下:

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
作者: jinsen    时间: 2007-12-25 18:30
'***************************************************************************
'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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2