从Delphi中的SQL Server过程获取XML作为输出的最佳方法是什么?

问题描述 投票:1回答:1

我需要在Delphi中读取SQL Server过程的输出,该过程返回XML作为输出(@MSG1

PROCEDURE dbo.PROC_ZUND_XML
    (@LOTEPC VARCHAR(10), 
     @MSG1 NVARCHAR(MAX) OUTPUT) 

我试图使用TFDStoredProc组件以及TFDQuery获得此输出,但是,我在Delphi(ftWideStringftWideMemo等)的参数配置中使用的变量类型无关紧要,它始终只存储第一个8000输出的字符。 Delphi的FireDAC查询编辑器的SQL Command部分中的count语句显示该过程的输出超过8000个字符。

因此,当将值分配给变量时,问题似乎在内部发生。有没有人知道如何解决它?也许是解决问题的另一种方法......先谢谢。

我正在使用SQL Server 2008和Delphi 10.2

sql sql-server xml delphi stored-procedures
1个回答
0
投票

如果您需要将此xml文件导出到特定文件夹,我建议您使用SQL SERVER本身将此文件导出到SHARED NETWORK FOLDER。

使用BCP,您可以生成XML,并直接保存到所需目录中的XML文件中。

一些有用的提示:

  • 如有必要,我建议使用-w参数以避免与错误的字符混淆(À,É,È,Ó,Ò)

有用的文件:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=171529 https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms162802(v=sql.110) https://sqlsouth.wordpress.com/2014/05/23/export-xml-from-sql-server-using-bcp/

© www.soinside.com 2019 - 2024. All rights reserved.