2013-11-01 3 views
0

다음 VB 스크립트를 실행하고 SQL 서버에 연결하고 다음 쿼리를 실행하여 행 수를 계산하고 싶습니다. 그 값을 변수에 저장하십시오. 나중에 사용할 수 있습니다.변수에 VBS 통과 레코드 수

내가 뭘 잘못하고 있니?

Dim tempSQLCount 
tempSQLCount = 0 

Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=someServer;Initial Catalog=DB;Integrated Security=SSPI" 

Set sqlConnection = CreateObject("ADODB.Connection") 
Set sqlRecordSet = CreateObject("ADODB.Recordset") 

sqlConnection.Open DB_CONNECT_STRING 

Set sqlQuery = CreateObject("ADODB.Command") 
sqlQuery.ActiveConnection = sqlConnection 
sqlQuery.CommandText = "SELECT COUNT(*) FROM DB.dbo.Task" 
sqlQuery.Execute 

tempSQLCount = sqlRecordSet 

Wscript.Echo sqlRecordSet 

sqlRecordSet.Close 
Set sqlRecordSet = nothing 
sqlConnection.Close 
Set sqlConnection = nothing 

답변

0

값으로 레코드 세트를 초기화 한 것처럼 보이지 않습니다. 결과를 저장하지 않고 execute 메소드 만 호출하면됩니다.

시도 :

sqlRecordSet.open sqlQuery 
tempSQLCount = sqlRecordset.getRows() 

Wscript.echo tempSQLCount(0,0) 
+0

아, 맞아. 그래서 쿼리 명령을 실행 한 후에 이것을 삽입했습니다. 변수를 반향 출력 할 때 불일치 오류가 발생합니다. – user2945461

+0

스크립팅 객체에 대한 지식이 부족한데 왜 전체 레코드 집합을 표시하고 있습니까? "tempSQLCount"를 반향시키고 싶지 않으십니까? – Rich

+0

.getRows()는 배열을 반환하므로 에코 할 배열의 요소를 지정해야합니다. tempSQLCount (0,0) – Rich

0

그것되어 내가 VBScript를 사용했기 때문에 잠시하지만 어쩌면이 같은 ...

Set sqlQuery = CreateObject("ADODB.Command") 
sqlQuery.ActiveConnection = sqlConnection 
sqlQuery.CommandText = "SELECT COUNT(*) as Counter FROM DB.dbo.Task" 

Set sqlRecordSet = sqlQuery.Execute 
sqlRecordSet.MoveFirst 
tempSQLCount = sqlRecordSet("Counter") 

미안 매우 녹슨하실 수 있습니다!