|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
|
2017/10/31 14:54:22 |
标题: |
求助高手:Datasnap使用FDStoredproc不支持大数据? |
浏览:1720 |
|
加入我的收藏 |
楼主: |
Datasnap服务器客户端使用firedac,参照官方Samples,使用FDStoredproc,数据记录几百能正常显示,达到几千就报[Firedac][Stan]-710.Invalid binary storage format.网上没有这方面的范例,求高手帮忙解答,谢谢!
----------------------------------------------
- |
作者: |
|
2017/10/31 17:43:07 |
1楼: |
贴代码
----------------------------------------------
-
|
作者: |
|
2017/10/31 18:04:03 |
2楼: |
可能是数据出错了,比如数据库可能存在null 空值,或者不是个正常的数据,
----------------------------------------------
-
|
作者: |
|
2017/10/31 20:27:44 |
3楼: |
服务端: function TServerMethods.StreamGet: TStream; begin Result := TMemoryStream.Create; try qCustomers.Close; qCustomers.Open; qOrders.Close; qOrders.Open; FDSchemaAdapter.SaveToStream(Result, TFDStorageFormat.sfBinary); Result.Position := 0; except raise; end; end; 客户端: procedure TClientForm.GetTables; var LStringStream: TStringStream; begin FDStoredProcGet.ExecProc; LStringStream := TStringStream.Create(FDStoredProcGet.Params[0].asBlob); try if LStringStream <> nil then begin LStringStream.Position := 0; DataModuleFDClient.FDSchemaAdapter.LoadFromStream(LStringStream, TFDStorageFormat.sfBinary); end; finally LStringStream.Free; end; end;
同样的数据库客户端使用firedac大数据就报错,而客户端使用DBX就没有问题
----------------------------------------------
-
|
作者: |
|
2017/11/1 7:31:23 |
4楼: |
DATASNAP远程方法返回TSTREAM,数据包有32K最大限制,超过的,客户端要拼包处理才能OK。你客户端的代码却没有拼包处理。你的问题本身也是错误的。
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
|
作者: |
|
2017/11/1 12:42:11 |
5楼: |
客户端拼包如何处理,请贴点代码,非常感谢!
----------------------------------------------
-
|
作者: |
|
2017/11/1 20:40:59 |
6楼: |
求助,帖子不要沉了,请高手指点,谢谢!
----------------------------------------------
-
|
作者: |
|
2017/11/2 7:07:54 |
7楼: |
解决办法在这里:http://www.cnblogs.com/hnxxcxg/p/7770471.html
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
|
作者: |
|
2017/11/2 8:48:20 |
8楼: |
楼上您的代码,我无法理解。 可能是什么 EMB 的设计特点吧。 反正我用 RO SDK 。 他会帮我自动处理好的。 大于 32K 的流也没问题。
比如一个接口,向服务器发送 指定大小的流。 我可以发 4K 的 64K 的 1个G 的,都可以。 当然,容量太大的话,等待时间就长,用简单的调用 会超时。 采用异步的 就不会出问题。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2018/4/13 14:47:28 |
9楼: |
根据就没有什么32K大小限制一说,我从服务器取回1万条记录,或者从服务器取出500K以上图片,没有任何问题。
----------------------------------------------
-
|
|