我有一个名为LaptopTrolleyWU的数据库,它具有以下结构:
ComputerName varchar(50)
TimeStamp datetime
记录 varchar(MAX)
我正在尝试从VBScript脚本向Log字段插入文本,但无法解决语法问题。
这是我到目前为止所做的:
For I = 0 to updatesToInstall.Count - 1
WScript.Echo I + 1 & "> " & _
updatesToInstall.Item(i).Title & _
": " & installationResult.GetUpdateResult(i).ResultCode
objFile.WriteLine(I + 1 & "> " & updatesToInstall.Item(i).Title & ": " & installationResult.GetUpdateResult(i).ResultCode)
Connection.Execute "INSERT INTO LaptopTrolleyWU (Log) VALUES ('" & I + 1 & "'> '" & updatesToInstall.Item(i).Title & "': '" & installationResult.GetUpdateResult(i).ResultCode & "')"
Next
End If
我收到一条错误,内容为
'用于ODBC驱动程序的Microsoft OLE DB提供程序:[Microsoft] [ODBC SQL 服务器驱动程序] [SQL Server] ['附近的语法错误)'。
我做错了什么?
如果有帮助,这就是我最初连接到数据库的方式,我可能做错了......
Set Connection = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.Recordset")
Dim ConnectionString
ConnectionString = "Driver={SQL Server};Server=server;Trusted_Connection=no;Database=LaptopTrolly;Uid=Laptop;Pwd=password"
Connection.Open ConnectionString
答案 0 :(得分:0)
这就是我最后所做的:
strLogText = I + 1 & "> " & updatesToInstall.Item(i).Title & ": " & installationResult.GetUpdateResult(i).ResultCode
strSQLCmd = "INSERT INTO dbo.LaptopTrolleyWU (ComputerName,TimeStamp,Log) VALUES ('" + strComputerName + "', '" + dtTimeStamp + "' , '" + strLogText + "')"
Connection.Execute strSQLCmd
答案 1 :(得分:0)
您的任务是将字符串表达式的值写入日志文件和数据库字段(我假设.Echo仅用于调试)。然后你应该投资一个变量来保存表达式的值并使用它两次:
v = I + 1 & "> " & updatesToInstall.Item(i).Title & ": " & installationResult.GetUpdateResult(i).ResultCode
写入文件很简单,因为您只需要普通数据:
objFile.WriteLine v
(没有虚假的参数列表()!)。您需要一个INSERT语句将v放入数据库; v的值必须是单引号:
>> v = "pipapo"
>> s = Replace("INSERT INTO LaptopTrolleyWU (Log) VALUES ('@v')", "@v", v)
>> WScript.Echo s
>>
INSERT INTO LaptopTrolleyWU (Log) VALUES ('pipapo')
>>
如果你那么做
WScript.Echo s
Connection.Execute s
您可以确定您执行的语句是您目视检查的代码。
您的表达方式有所不同:
I + 1 & "> " & updatesToInstall.Item(i).Title & ": " & installationResult.GetUpdateResult(i).ResultCode
I + 1 & "'> '" & updatesToInstall.Item(i).Title & "': '" & installationResult.GetUpdateResult(i).ResultCode
INSERT语句中的额外单引号使SQL解析器假定您要比较字符串文字。