gpt4 book ai didi

sql-server - DBX将SQL错误截断为256个字符

转载 作者:行者123 更新时间:2023-12-03 07:55:19 25 4
gpt4 key购买 nike

我正在Windows Server 2008 R2上使用Delphi-XE2 Enterprise,SQLServer 2008 R2。出现SQL错误时,DataSnap服务器将捕获该错误并将其返回给客户端应用程序。除了将错误消息截断为256个字符外,所有其他方法均有效。

发生错误时,DataSnap服务器的堆栈跟踪显示使用[file:Data.DBXDynalink]TDBXMethodTable.RaiseError()方法通过DBX Framework检索SQL DB错误时,SQL错误消息被截断。即使错误消息更长,来自 RaiseError()方法的以下代码也会将 MessageLength 设置为256。因此,返回给客户端的错误消息永远不会超过256个字符。

Status := FDBXBase_GetErrorMessageLength(DBXHandle, DBXResult, MessageLength);

FDBXBase_GetErrorMessageLength 类型为 TDBXCommon_GetErrorMessageLength ,定义为:
TDBXCommon_GetErrorMessageLength = function(Handle: TDBXCommonHandle; LastErrorCode: TDBXErrorCode; out ErrorLen: TInt32): TDBXErrorCode; stdcall;

是否有增加缓冲区大小的方法以允许更多数据库错误发送到客户端(例如512个字符),或者这仅仅是DBX Framework的限制?

最佳答案

@Sertac发现了与Carlos截断错误消息的驱动程序类似的问题。卡洛斯发现更改midas.dll以增加错误buffersize可以解决他的问题。我确定解决方案与我的问题相同。

感谢@Sertac提供了指向Carlos问题的链接:

Reconcile Error: Has anyone had problems with truncated error messages?

关于sql-server - DBX将SQL错误截断为256个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10356792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com