私はSQLServer2008を使用しています。現在、ファイルを印刷する必要があるストアドプロシージャに取り組んでいます。
問題:spで作成したテキストファイルを横向きで印刷する必要があります。コマンドラインから(デフォルトの)プリンターキューにファイルを追加するユニバースプリンタードライバーであるプログラムDOSPrinter.exeを使用します。
これを行うにはxp_cmdshellを使用します。xp_cmdshellには、私が推測する十分な権限があります。私はそれを使用していくつかのファイルコピーアクションを実行し、使用するディレクトリにセキュリティを設定した後、それは完全に機能します。
私はDOSPrinterに、印刷デバイスと一緒に同じ権利を与えました。
ただし、コマンドウィンドウでコマンドを手動で入力すると(C:\ temp \ DOSPrinter "C:\ temp \ test.txt")、ファイルは印刷キューに表示されます。同じコマンドをbatファイルに入れ、cmdウィンドウから手動でbatファイルを呼び出すと、ファイルは印刷キューに送信されます。
コマンドをストアドプロシージャに配置しようとすると、次のようになります。
SET @bcpCommand = 'C:\temp\DOSPrinter.exe C:\temp\test.txt'
EXEC master..xp_cmdshell @bcpCommand
ファイルはプリントキューに送信されません。spからbatファイルを呼び出そうとすると、印刷キューにファイルがありません。私はちょっと必死です。
多分誰かが私にどのように進めるかについてのいくつかのアイデアを与えるのを手伝ってくれるでしょうか?
ありがとう、
jan_solo