我使用 SQL Server 2008。目前我正在处理一个需要(除其他外)打印文件的存储过程。
问题:我在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