QTP/UFT调用SP

有两种方法,其一是直接使用SQL语句的方法:
Set dbCountryConn = CreateObject("ADODB.Connection")
dbCountryConn.Open "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=prv;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=HZ27P4993473.corp.statestr.com)(PORT=1521))));Password=prvUser;"  'open connection
Set dbCountryRs = Createobject("ADODB.recordset")
connectionCountryString = "call sp_qa_test('8BA3',to_date('2013-06-28', 'yyyy-MM-dd'),to_date('2013-07-04', 'yyyy-MM-dd'),'CLOSE','999528AJ1','ivt_can_eq_eq','itl_eq','CA','itl_eq',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)"
Set dbCountryRs = dbCountryConn.Execute(connectionCountryString)
dbCountryConn.Close

第二种是使用ADODB.Command对象:
Function CallReplaySP()  
On Error Resume Next
Err.Clear
    Dim objCmd, guid, errorCode
    Set objCmd = CreateObject("ADODB.Command")

guid = testparameters.item("GUID")
    objCmd.ActiveConnection = objConnection
    objCmd.CommandType = 4    'Stored Procedures
    objCmd.CommandText = "OPGCEP2.GCTH_PKG_UTL.SP_REPLAY_TRANSACTIONS"    'sp name
    objCmd.CommandTimeout = 30

    Set objParm = objCmd.CreateParameter("GUID", 200, 1, 32, guid)
    objCmd.Parameters.Append objParm

    Set objParm2 = objCmd.CreateParameter("P_USERID", 200, 1, 30, "e521915")
    objCmd.Parameters.Append objParm2

    Set objParm3 = objCmd.CreateParameter("P_ERROR_CODE", 139, 2, 4)
    objCmd.Parameters.Append objParm3

    objCmd.Execute
   
    errorCode = objCmd.Parameters("P_ERROR_CODE").Value
    If errorCode <> 0 Then
           ''stepErrDescription = "Error Code is " & errorCode & "."
           StepResult = "Failed"
           Exit Function
    End If

    Set objCmd = Nothing

If Err.Number <> 0 Then
''stepErrDescription = Err.Description
StepResult = "Failed"
Err.Clear
Exit Function
Else
stepResult="Passed"
stepActual="Replay SP is executed successfully"
End if
End Function

Set objParm2 = objCmd.CreateParameter("P_USERID", 200, 1, 30, "e521915")的200表示类型,1表示入参,30表示长度。

你可能感兴趣的:(qtp)