2011-12-12 4 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의 INSERT 쿼리가 정상적으로 작동합니다.

미리 도움을 주셔서 감사합니다!

답변

0

공급자/드라이버, CursorType 및 달의 위상에 따라 .RecordCount는 결과 집합을 반복하기 전에 레코드 수를 줄 수 없습니다. 연구 시작 here; 추가 매개 변수를 모두 확인하십시오 .ADO 문서의 메서드를 엽니 다. "SELECT COUNT"유형의 쿼리로 전환하여 고려한 행 수를 확인하십시오.

+0

유용하지만 성가시다 .RecordCount가 예상대로 작동하지 않습니다. – Riddari

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

이렇게하면 ur 테이블에서 레코드 수가 직접 인쇄됩니다. 이것이 도움이되기를 바랍니다.

관련 문제