1

私は得ていますIncorrect Syntax Near ')'

それが参照する行はoCN.Execute(sSQL)、最後の方にあります。

構文的には、その中のいずれかの行を削除してもFor Each objItem in colItemsエラーはスローされません。

WMI サービスのオブジェクトを使用して SQL クエリを実行することはできませんか? それとも、どこかでエラーを起こしていますか?

リクエストに応じて、さらに多くのコードをリストできます。私は今のところシンプルにしようとしています。

Set oCN = CreateObject("ADODB.connection")
sCN =  "Provider=SQLOLEDB; Data Source=" & oRS("sql_server_instance") & ";Initial Catalog=master;Integrated Security=SSPI;"
oCN.Open sCN

'Gather disk information from WMI Service
Set oWMIService = GetObject("winmgmts:\\" & oRS("sql_server") & "\root\cimv2")
Set colItems = oWMIService.ExecQuery _
    ("Select * From Win32_Volume")

'Loop through all disks    
For Each objItem in colItems

sSQL="insert into HDS_DBA_DB.[dbo].[TEMP_disk_info_table] (drive_letter, capacity) " &_
"values('" & objItem.DriveLetter & "'," & objItem.Capacity & ")"

oCN.Execute(sSQL)

Next
4

2 に答える 2

2

プロパティに問題があるようですobjItem.Capacity。値が空になる可能性があり、次のような誤った SQL 文が生成されるため、挿入する前にこのプロパティの値を確認してください。

insert into HDS_DBA_DB.[dbo].[TEMP_disk_info_table] (drive_letter, capacity) values ('E:',)
于 2012-05-24T19:34:19.943 に答える
0

ADODB.Connection オブジェクトで .Execute を使用すると、結果を取得できると思います。

ADODB.Command オブジェクトを使用してみましたか?

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = oCN

cmd.CommandType = 1
cmd.CommandText = sSQL

cmd.Execute();
于 2012-05-24T19:26:06.210 に答える