Stored procedures Datasnap&;Fmx移动应用程序如何发送包含blob字段的数据集

Stored procedures Datasnap&;Fmx移动应用程序如何发送包含blob字段的数据集,stored-procedures,delphi-xe5,datasnap,firemonkey-fm3,Stored Procedures,Delphi Xe5,Datasnap,Firemonkey Fm3,我有一个多层项目,在这个项目中,我将通过带有函数的FDStoredProc从MicrosoftSQL2005收集数据,该函数将向客户端返回一个数据集。当服务器将数据集分配给函数的结果,并且函数试图将其发送给客户端时,我会收到此错误。Project etctec.exe引发异常类TDBXError,消息为“TDBXTypes.BLOB值类型不能作为TDBXTypes.Bytes值类型访问” 在另一个项目中,我以完全相同的方式使用了另一个数据库的StoredProc和TFDStoredProc,它工

我有一个多层项目,在这个项目中,我将通过带有函数的FDStoredProc从MicrosoftSQL2005收集数据,该函数将向客户端返回一个数据集。当服务器将数据集分配给函数的结果,并且函数试图将其发送给客户端时,我会收到此错误。Project etctec.exe引发异常类TDBXError,消息为“TDBXTypes.BLOB值类型不能作为TDBXTypes.Bytes值类型访问”

在另一个项目中,我以完全相同的方式使用了另一个数据库的StoredProc和TFDStoredProc,它工作得很好。你知道什么会导致这个错误吗

这就是我在服务器中所做的

function TServerMethods1.getCategories(): TDataSet;
begin
  FDStoredProc1.ParamByName('@val1').AsInteger:= 1;
  FDStoredProc1.ParamByName('@val2').AsInteger:= 0;
  FDStoredProc1.ParamByName('@val3').AsInteger:= 1;
  FDStoredProc1.ParamByName('@val4').AsInteger:= 1;
  FDStoredProc1.Open();
  result:= FDStoredProc1;
end;
客户这样称呼它

dataset:=ClientModule1.ServerMethods1Client.getCategories();
问题来自一些NVARCHAR(max)类型的字段,有人知道在不更改字段类型的情况下解决此错误的方法吗


我尝试将数据集的字段类型更改为字符串或其他类型,但没有成功。我暂时唯一能做的就是分别获取这些字段,将它们放入stringlist或类似的东西中,并将其传递给客户端。

我认为您应该使用以下类似方法:

您应该将字段定义为blob字段,然后使用链接中描述的函数将数据输入/输出

下面是如何复制数据的示例:

您的评论没有附带任何其他有用信息。评论只是说:我的作者是经典的看门狗。请提供我的answear是否有用的信息;)面向未来论坛和Delphi XE用户。