0

我想使用 VBScript(从 cmd 提示符,使用 cscript)将二进制文件插入启用文件流的(远程)数据库中。当我在本地数据库上进行测试时,我的代码可以工作,但是因为代码使用的是:

INSERT........ * FROM OPENROWSET(BULK '"&objFile.Path&"', SINGLE_BLOB)

该文件必须是本地文件(即在 SQL 服务器所在的机器上)。我需要从我的机器上传到远程 SQL 文件。到目前为止,这是我到达的地方: Wscript.Echo "Attempting to upload "& objFile.Name &" from folder "& objsubFolder.Name

binstream.open
binstream.LoadFromFile objFile.Path

myCommand.CommandText = "INSERT INTO DBNAME (TimeStamp, FileName, Data)" &_
"SELECT '"&objsubFolder.Name&"' AS TimeStamp," &_
"'"&objFile.Name&"' AS FileName," &_
"'"&binstream.Read&"' AS Data"
myCommand.Execute

binstream.close

但是我得到的错误是:“Microsoft VBScript 运行时错误:类型不匹配”

我认为我很傻,因为我试图通过将二进制文件粘贴到 insert sql 语句中来插入二进制文件。我该如何解决这个问题并让它上传我的文件?

在此先感谢您的帮助。

4

1 回答 1

0

IMO 最简单的方法是保持您的代码适用于上传本地文件,因为这样可以通过首先将文件复制到共享上的服务器来确保文件是本地的。然后从服务器上的脚本运行您测试的 sql,如果运行脚本的用户有足够的权限访问您在另一台 PC 上的文件或将其放在可以共享的共享上,也可以从服务器完成复制读。在服务器上执行脚本可以通过计划、监视文件夹的脚本或远程脚本或 PSFILE 来完成

于 2012-07-27T13:05:09.390 回答