DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 25
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 12:12:06
标题:
delphi 10.2.3 Datasnap Rest 用TFDJSONDataSets传输数据问题 浏览:3380
加入我的收藏
楼主: 服务器使用FDConnection与数据库相连。客户端使用DSRestConnection与服务器相连。客户端与服务器数据传送使用TFDJSONDeltas。
按照10.2.3的帮助文件中的示例,从服务器读取数据(包括格式文字、图片)到客户端,没有任何问题。
现将客户端数据更新到数据库:
服务器代码:
const  sWorkerJL='WorkJL';
procedure TServerMethods1.ApplyData(const ADeltaList: TFDJSONDeltas);
var
  LApply: IFDJSONDeltasApplyUpdates;
begin
  LApply := TFDJSONDeltasApplyUpdates.Create(ADeltaList);  // Create the apply object
  LApply.ApplyUpdates(sWorkerJL, FDQJL.Command); // Apply the department delta
  if LApply.Errors.Count > 0 then
     raise Exception.Create(LApply.Errors.Strings.Text);
end;

客户端:
const sWorkerJL='WorkJL';

procedure TClientForm.Button2Click(Sender: TObject);
var
  LDeltaList: TFDJSONDeltas;
begin
   LDeltaList := GetDeltas;
  // Call server method.  Pass the delta list.
  ClientModule1.ServerMethods1Client.ApplyData(LDeltaList);
end;
function TClientForm.GetDeltas: TFDJSONDeltas;
begin
     if FDMemJL.State in dsEditModes then
     FDMemJL.Post;
    // Create a delta list
    Result := TFDJSONDeltas.Create;
  // Add deltas
   TFDJSONDeltasWriter.ListAdd(Result, sWorkerJL, FDMemJL);
end;
在客户端修改或新增数据,提交不成功:
此帖子包含附件:
PNG 图像
大小:27.7K
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 15:27:04
1楼: datasnap Rest这么优秀,居然没人用?高手不肯帮,只能自己钻。
----------------------------------------------
-
作者:
男 ydrzh (ydrzh) ★☆☆☆☆ -
普通会员
2018/4/21 15:49:34
2楼: 客户端的FDMemTable的CacheUpdate属性设置为True
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 15:59:37
2楼: 更新不了?没人帮?原来以为datasnap Rest只能用来学习,现在是彻底改变了对RSET的认识。终于解决数据新增、删除、修改、查询了。
看来用datasnap搞手机APP,数据交互问题解决差不多了。剩下的,继续熟悉FireMonkey了。革命尚未成功,同志仍须努力。牢记使命,不忘初心,我的初心就是delphi。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 16:11:43
3楼: 听着窗外寂莫,多少次测试、修改、搜索,拿下问题已经是夜深人静;
Delphi、datasnap,功力何等精深,但你却为何隐居山林,知你、懂你者凤毛麟角?
是世人愚钝,还是你不愿与java、php随波逐流?
感谢伟大的EMB,伟大的delphi,伟大的datasnap。
伟大的神啊,你为何跟我一样,如此孤独?
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 16:15:04
4楼: ydrzh:设置了,问题不在这。如果没设置,就是不会更新数据,但不会出错。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 16:26:04
5楼: 问题解决了,整顿行装再出发。下一步:1千个并发在线连接压力测试。问题是,到哪去找一千部手机?
不过,得先测试,Rest服务器,内存是否泄露,是否每个连接,都会过度消耗服务器资源。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/4/21 16:53:00
6楼: 21 号 星期六,我这样的白痴都下班休息了,高手更是鬼混去了,怎么可能帮你解决问题。

楼主才是高手啊,不过是保密局的高手。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2018/4/21 16:57:34
7楼: 楼上2位,一个风趣幽默,一个谦虚自如
----------------------------------------------
只有偏执狂才能生存!
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 17:15:41
8楼: wang_80919:大师,我发本贴,主要是想让所有delphier知道datasnap rest这一神器的厉害。用REST做增删改查CRUD,本不是很难的事,也没啥技术含量,照着10.2.3中帮助中现成事例和教程,再加上自己稍微探索下,应该问题不大。FireDac+DataSnap本来是emb推荐的开发三层及移动APP的方式,比一般第三方中间件应该更稳定科学,如果马上告诉大家,可能影响在本群广告的中间件销售,也许,这样几位高人不高兴,哈哈。
----------------------------------------------
-
作者:
男 nickemma (N.E Zhou) ★☆☆☆☆ -
普通会员
2018/4/21 17:26:04
9楼:
FireDac+DataSnap本来是emb推荐的开发三层及移动APP的方式,比一般第三方中间件应该更稳定科学,如果马上告诉大家,可能影响在本群广告的中间件销售,也许,这样几位高人不高兴,哈哈。



别这么大言不惭的,或许你越了解DATASNAP越会放弃呢?哈哈
----------------------------------------------
-
作者:
男 cdsy (成都4友) ▲▲▲△△ -
普通会员
2018/4/21 17:39:46
10楼: 真要搞REST,土拨鼠绝对适合你。

可参考叫兽叔叔的开源框架,比你想象的强大得多。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/21 19:52:30
11楼: 又遇到问题了,中间件在服务器上运行正常,可是换一台服务器,连接超时。两台服务器,都装win2008R2。emb的产品,总是不会让你一蹴而就,你必须探索后才有收获。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/24 11:56:57
12楼: mORMot源码和资料,到哪下载呢?@cdsy大师?
----------------------------------------------
-
作者:
男 cdsy (成都4友) ▲▲▲△△ -
普通会员
2018/4/24 12:13:45
13楼: 叫兽的框架。

全新的REST框架,值得你拥有
SVN地址https://115.159.70.108:8443/svn/SuperEngine
账号密码:public
框架正在完善中
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/24 12:22:40
14楼: 昨天到mORMot官网上下载了源码,似乎都是些pas,没有dpk,好像没有组件安装包,没细看,还不知道怎样用,也不知道是否支持客户端android&iOS。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/24 15:39:10
15楼: @nickemma:别这么大言不惭的,或许你越了解DATASNAP越会放弃呢?哈哈
您讲这个有根据吗?您真正用过datasnap做项目吗?
----------------------------------------------
-
作者:
男 goodluvy (C++) ★☆☆☆☆ -
普通会员
2018/4/24 17:02:50
16楼: REST你就没必要用这个TFDJSONDataSets了,REST风格的初衷是将操作资源化,delta提交无异于掩盖了REST特点,而且你这服务端做出来也无法或很难与其它非Delphi的对接。
----------------------------------------------
good good study, day day up.
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/24 20:40:26
17楼: @goodluvy:谢谢提醒。我使用TFDJSONDataSets做数据传送感觉方法比较简单,而且可靠。
但有一个问题,就是使用datasnap REST时,客户端必须使用DSRestConnection1与服务器连接,有些服务器连接得上,换一台就连不上。不知如何配置服务器。
但使用datasnap server,客户端使用FDConnection1与服务器连接很正常。似乎无须配置服务。
----------------------------------------------
-
作者:
男 ydrzh (ydrzh) ★☆☆☆☆ -
普通会员
2018/4/24 21:08:35
18楼: 楼主这种方法提交更新,最终生成的SQL更新语句,where子句会包含所有未更新的列作为行定位条件,在多用户下太容易出错
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/24 22:34:44
19楼: 楼上,我没听明白。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/25 19:08:42
20楼: 现有A、B两台服务器,都是win2008R2,但各自服务器角色、功能、安装的服务不同。
A:服务器datasnap rest、通讯用http,客户端用DSRestConnection1可连服务器;
      服务器datasnap,通讯用tcpip,客户端用FDConnection,可连服务器。
B:服务器datasnap rest、通讯用http,客户端用DSRestConnection1,连接超时;
      服务器datasnap,通讯用tcpip,客户端用FDConnection,可连服务器。
datasnap rest服务器应怎样配置,才能让客户端连接止?
----------------------------------------------
-
作者:
男 goodluvy (C++) ★☆☆☆☆ -
普通会员
2018/4/26 10:28:03
21楼: 实质就一个http服务器,拿个chrome去调试一下都能知道什么问题了吧 :)
----------------------------------------------
good good study, day day up.
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/26 14:33:18
22楼: 感谢楼上提示,其实应该是构建http服务器,需要什么软件环境。
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2018/4/26 14:48:00
23楼: 为什么没多少人用DataSnap呢,嗯,前两天有人贴了个链接,楼主可以看一下:https://robertocschneiders.wordpress.com/2012/11/22/datasnap-analysis-based-on-speed-stability-tests/
不确定新版是否有改进,另外,小规模应用应该没问题。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2018/4/26 14:56:50
24楼: 我想21楼的意思是你直接在浏览器输入Rest URL,然后就可以测试你的Rest服务器了,如果这都连不通,那你可以在服务端加log,有条件可以直接debug,看看服务端究竟收到连接请求没有.
引外,你可以装个Fiddler之类的工具,直接查看你的http包,这样方便调试。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2018/4/29 21:34:31
25楼: 谢谢楼上提醒,尽管很多名词都是第一次听到。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行1367.188毫秒 RSS