DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 1
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/10/30 18:17:37
标题:
datasnap中客户端如何通过服务器函数方法更新数据集? 浏览:1449
加入我的收藏
楼主: 环境:delphi 10.1 berlin + win7

请教下大家:


服务端定义方法 : 

function TServerMethods.UpdateDataset(const aStream: TStream): Boolean;
var
  LMemStream: TMemoryStream;
  LErrors: Integer;

begin
  aStream.Position := 0;
  LMemStream := CopyStream(aStream);
  LMemStream.Position := 0;
  try
 // TSchemaAdapter
    fdschmdptr1.LoadFromStream(LMemStream, TFDStorageFormat.sfBinary);
    LErrors := fdschmdptr1.ApplyUpdates
  finally
    LMemStream.Free;
    Result := LErrors > 0;
  end;
end;

客户端方法:

function TForm1.UpdateDataset:boolean;

var
  LMStream: TMemoryStream;
begin
  LMStream := TMemoryStream.Create;
  tbl.SaveToStream(LMStream,sfBinary);
  LMStream.Position := 0;
  ServerMethods.UpdateDataset(LMStream); //调用
end;

运行后数据并没有更改,是什么原因?cacheupdate = true 了
----------------------------------------------
-把学习当信仰
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/10/30 23:01:31
1楼: 顶一下,不能沉了
----------------------------------------------
-把学习当信仰
作者:
男 grjs_2004 (grjsITname) ★☆☆☆☆ -
盒子活跃会员
2018/10/31 8:50:06
2楼: Delphi xe10有FireDAC这方面的例程,在类似以下的文件路径里:
C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\DataSnap\FireDAC
----------------------------------------------
Everyone will to do best!
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/10/31 8:59:33
3楼: 在datasnap中在流不好。建议Json
----------------------------------------------
-
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/10/31 11:23:51
4楼: 照着官方的例子改的,不同的地方是客户传stream的方式
----------------------------------------------
-把学习当信仰
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2018/10/31 11:35:38
5楼: 流是FIREDAC序列还原的法宝,也是DELPHI取代OLEVARIANT序列的新法宝。因为流中的数据可以是BINARY\JSON\XML。。。看官方的DEMO,无疑是正确的学习方法。
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/10/31 21:36:06
6楼: 不知道是不是没用好这个TFDSchemaAdapter控件,直接在服务器用FDquery和FDMemtable控件LoadFromStream都不行,数据不更新。难道一定要用TFDDatasetJson?
----------------------------------------------
-把学习当信仰
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/11/1 16:23:03
7楼: 哪位大侠帮忙分析下
----------------------------------------------
-把学习当信仰
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2018/11/1 17:21:23
8楼: 告诉你,用流更新数据的方法是绝对可以的,这个绝对不用怀疑。用一个TSTREAM更新多表数据也是可以的。
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/11/1 18:00:39
9楼: 楼上,提示一二,翻了一天一夜的资料了
----------------------------------------------
-把学习当信仰
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/11/1 19:02:32
10楼: 不想用这个TFDJSONDataSets,好像有泄漏,客户端已经是TStream了,难道为了更新,要把把TStream变成TFDJSONDataSets?
----------------------------------------------
-把学习当信仰
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/11/1 20:30:48
11楼: 搞好了
----------------------------------------------
-把学习当信仰
作者:
男 glings (glings) ★☆☆☆☆ -
普通会员
2018/11/6 10:20:22
12楼: 搂上,怎么处理的,介绍一下,
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/11/7 15:46:48
13楼: 在datasnap中,你在一个场景中搞好了,并不意味着在另一个场景可靠。
----------------------------------------------
-
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2018/11/29 0:31:17
14楼: to 12楼:

要用好这个TFDSchemaAdapter控件
----------------------------------------------
-把学习当信仰
作者:
男 zjjtour (zjjtour) ★☆☆☆☆ -
普通会员
2019/8/13 18:47:46
15楼: 请问是怎么解决的?
----------------------------------------------
资质差,努力学
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行65.42969毫秒 RSS