0

我想运行以下 VB 脚本并连接到一些 SQL 服务器,并运行以下查询来计算行数。然后将该值保存到一个变量中,我以后可以使用它。

我究竟做错了什么??

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
4

2 回答 2

0

看起来您没有使用值初始化记录集 - 您只是在调用 execute 方法而不保存结果。

尝试:

sqlRecordSet.open sqlQuery
tempSQLCount = sqlRecordset.getRows()

Wscript.echo tempSQLCount(0,0)
于 2013-11-01T15:38:39.710 回答
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")

对不起,我可能很生疏!

于 2013-11-01T15:35:46.423 回答