2013-01-07 33 views
-2

在谷歌做一個多小時的研究後,我想我更糊塗了......我想如何從SQL Server中的.txt文件,然後打印

一)生成一個文本文件(.txt或從經由存儲procedure.The文件SQL服務器.DOC .PDF)包含在一個簡單的佈局格式

打印該文件到網絡打印機一些表的數據,然後

b)中。

以上所有通過code.Is這可能嗎?任何想法?

Thanx提前!

+0

是其可能的............ – andy

+2

看可能報告服務。 –

+0

http://www.codeproject.com/Articles/17531/How-to-Print-a-Document-from-SQL-Stored-Procedure – Alex

回答

0

我決定分享我的實現,我奮力自己找到一個妥善的解決辦法

一)提取物在bcp工具的幫助下將表格數據轉換爲簡單的.txt文件。 內類似這樣的

EXEC xp_cmdshell 'bcp "SELECT * FROM [yourDatabase]..[yourTable]" queryout "C:\Folder\archive.txt" -T -w -t ,' 

我用存儲過程寫的東西「」作爲一個字段終止。 你可以閱讀更多有關BCP參數這裏http://msdn.microsoft.com/en-us/library/ms162802.aspx

b)現在我有原始數據,我想它。我打印「已經實現剛剛檢查是否有新的文件是created.This服務是一個很好的教程http://midnightcubicle.wordpress.com/2011/04/25/creating-windows-service-in-c/

服務調用運行.exe文件,沒有工作的新方法。

有些事情需要注意:在local.If運行

- 通常服務要打印運行「用戶模式」爲您服務通過SERVICES.MSC 檢查服務的屬性

- 數據摘自bcp是「原始」格式,所以如果你想給你的文本一個很好的佈局,你必須用StreamReader讀取它的內容,將它的數據保存在內存中(例如列表中的對象 - 每行都是一個對象 - 每個屬性都是一個屬性)然後使用string.Format和其他格式化技術。

- 你可能會看到在Windows控制檯,並在您的printer.This完全不同的結果,是因爲您的控制檯使用固定寬度字體在您的打印機(至少默認情況下)不會引起。因此,打印機佔用的空間較少,字母會根據實際寬度佔用更多或更少的空間。請考慮使用Lucida Console或其他固定寬度的字體。

0

您可以使用EXEC @rc = master.dbo.xp_cmdshell並調用一個exe來打印文件

相關問題