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 に答える