关于datasnap做三层的数据库操作设计问题
我能想到的大概有以下两种方法:
一种方式是完全用delphi自带的fdmemtable,fdquery,TFDJSonDeltasApplyUpdates,TFDJSONDeltas等控件来实现对数据库的增删改,但是这种方式感觉有几个问题,一个是不够灵活,套路都固定死了,基本上就是applyupdate,一个是好像无法通用,客户端也只能用delphi开发,另外对于多表更新似乎支持的也不够丰富。
第二种方式就是自行拼接sql语句用fdquery执行,比如有一条查询语句“select 字段1,字段2 from 表1”,在服务器端拼接成“select 字段,字段2,主键1,主键2 from 表1”的形式,然后将查询结果加工一下,以jsonarray的格式传回客户端修改,改完再将jsonarray传回服务器拼接update,insert或者delete语句执行,这个方式感觉比较麻烦的是,前台的修改操作一般都是通过dbgird或者其他显示控件完成,如何在界面修改后将对应的jsonarray也进行处理。比如在dbgird上修改了第三行第二列的一个字段,那么就要去jsonarray里的对应地方进行处理,如果没有一个好的思路,在做客户端开发时就要多不少的工作量。
请教各位大神,现在比较好的做法是啥?积分不多了,不要嫌少哈