关于三层架构DataSnap 使用FireDAC组件连接mssql数据库的问题

delphi-爱好者 2017-09-10 04:00:34
系统自带的DataSnap 三层架构DataSnap和 使用FireDAC组件的例子,使用TFDConnection链接并使用TStream方式传输、使用FireDAC控件完成调用的DataSnap的例子。 上面用的是sqlite数据库,
问下,换上mssql数据库可以吗?我换成mssql数据库后,有以下报错。

难道msSql数据库不支持Tstream方式传输吗,
----------
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;
----------
以上过程执行到DataModuleFDClient.FDSchemaAdapter.LoadFromStream(LStringStream, TFDStorageFormat.sfBinary); 报的错
...全文
1822 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
仙侣步惊云 2018-07-17
  • 打赏
  • 举报
回复
建议使用json传输数据。使用流问题比较多。
lyhoo163 2018-06-15
  • 打赏
  • 举报
回复
如果要变更数据库的类型,可以通过连接的控件进行变更。 比如通过TADOConnection连接,只要变更套接字,即可。
pulledup 2018-06-13
  • 打赏
  • 举报
回复
delphi xe Datasnap使用FireDAC连接MSSQL2000 客户端执行FireDAC连接时,总是报错,你又办法吗?: Exception EIPAbstractError in module at 00780958 提示No peer with the interface with guid {9BB0BE5C-9D9E-485E-803D-999645CE1B8F} has been registered.
lyhoo163 2017-09-14
  • 打赏
  • 举报
回复
delphi-爱好者 2017-09-13
  • 打赏
  • 举报
回复
找到问题所在了,客户端需要select两个表,我之前都是select 所有字段,后来都只select主要的字段,可以查询成功了。高手指教说datasnap 通过stream传输大数据是分多个数据包传输,客户端接受需要进行处理才行,目前在进一步学习中。。。。
delphi-爱好者 2017-09-10
  • 打赏
  • 举报
回复
系统自带的例子c:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\DataSnap\FireDAC
delphi-爱好者 2017-09-10
  • 打赏
  • 举报
回复

最下边这个demo

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧