2011-12-12 41 views
0

我有一個困境,其中在底層Golden32(或其他數據庫連接軟件)中正常工作的查詢不會返回QTP中的任何值。作爲我正在運行的代碼的示例:如何在QTP上的Oracle上運行SELECT查詢?

set conn=CreateObject("ADODB.Connection") 
conn.ConnectionString ="Driver={Microsoft ODBC for Oracle};Server=SERVER;uid=USER;pwd=123456;" 
Set objRecSet = CreateObject("ADODB.Recordset") 
conn.open 
SQL= "SELECT * FROM table" 
objRecSet.Open SQL, conn 

msgbox(objRecSet.RecordCount) 

返回-1。爲什麼?我在底層和QTP中使用相同的用戶帳戶,並在兩種情況下運行相同的查詢。在QTP插入查詢在同一個帳戶和表上工作正常。

感謝您的幫助!

回答

0

根據提供者/驅動程序,CursorType和月亮的相位,.RecordCount在循環訪問結果集之前無法爲您提供記錄數。開始您的研究here;檢查ADO文檔中的兩個.Open方法的附加參數;考慮切換到「SELECT COUNT」類型的查詢來查看您獲得了多少行。

+0

有幫助,但令人討厭的是.RecordCount沒有按預期工作。 – Riddari

0
sqlStatement = "select count(*) from emp" 
Rec.Open sqlStatement,conn 
Value = Rec.fields.item(0) 
    msgbox Value 

這直接打印來自ur表的記錄數。希望這可以幫助。