三层越学越不懂了,大家指教一下啊!

aloelan 2003-12-13 04:47:41
1.高手都说Sql语句要在server端构造,但怎么实现构造啊,迷茫!!!希望高手说说具体怎么做的!
2.不知道clientdataset和datasetprovider具体是干什么的,我试了一下不用这两个控件,直接传个sql语句过去,一样可以啊.
3.看到大家经常用applyupdate,我怎么不知道在哪里用啊,比如我client那里有个Edit 和 button!我点button就把edit.text插入一个表里,象这样最简单的功能是怎样实现?
4.如果用clientdataset的commandtext,数据在程序里的流程具体是怎么走的?是不是CDS把commandtext传给providerdataset,然后provider传给dataset,然后执行!
5.问题问的很乱,大家可能看着晕,说明了我对三层的迷茫!:(
...全文
32 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
XXSingle 2003-12-17
  • 打赏
  • 举报
回复
用类来传吧,那样的话,数据的类型也没问题了;
而且简洁明了
eastliangliang 2003-12-17
  • 打赏
  • 举报
回复
用数组嘛,用参数的话,万一你的参数多一个或少一个,要变接口的,多麻烦。
铁歌 2003-12-17
  • 打赏
  • 举报
回复
写一些通用的产生SQL的function在appserver端
JoeSong 2003-12-16
  • 打赏
  • 举报
回复
打开类型库Type Library,在里面增加属性和方法,增加了以后并保存就可到相应的PAS文件中找到相对应的方法或属性的框架了,只要在里面直接加代码就行了,这是最基本的东东,随便找本书就能看到有关资料的。
如要定义那个方法可能会有一个:
function NewStu(参数: 类型....):返回类型;
begin
//这里加代码便是了
end;
就是这样子。
aloelan 2003-12-16
  • 打赏
  • 举报
回复
比如说:我新增一个学生的信息:client端要传过去姓名,学籍,班级,年纪,...等等非常多的参数!还有可能要传另外一些参数去更新另一个表.
象这样的情况怎样处理?
如果在server端,定义方法属性的话,比如定义一个NewStu(这里要加N个参数),如果每个参数对应一个属性的话,我不大清楚怎么做?
能给我发一段代码看看怎么实现的么?
aloelan 2003-12-16
  • 打赏
  • 举报
回复
明天晚上揭贴,该换个帖子给分了!呵呵
aloelan 2003-12-16
  • 打赏
  • 举报
回复
呵呵!
可能我表达的意思不清楚!
我的意思是对参数过多的情况怎么处理!因为新增数据的时候肯定要传很多参数的,如果按常规做,那个函数声明就会很很长吧!:)
可能考虑的偏了!
JoeSong 2003-12-15
  • 打赏
  • 举报
回复
返回记录集的问题看一下我当初问那个问题时别人如何回答的吧,
http://expert.csdn.net/Expert/TopicView1.asp?id=2548270

我的实现过程是这样,几乎ClientDataSet可以不用到,但Provider不可能不用到,因为要用DCOMConnection.AppServer.方法名 来调用方法,所以如果DCOMConnection没有与Provider连接的话,如何调用?是不是?

参数可以通过在COM+中即中间层定义属性实现,如果你会COM+那就很好办了,其实书上讲的未必都很能说明问题,我觉得李维的那本ADO MTS COM+的书也是如此,好像有点你看了我的书就会把我的知识窃走一样,真正从0起步时有用的内容往往不见得多。

多想一想之间的关系也许会有帮助吧!
eastliangliang 2003-12-14
  • 打赏
  • 举报
回复
Delphi里做三层有MIDAS,它是Borland的技术,我是直接用MTS/COM+,没办法,ASP里怎么加载ClientDataset:),很多参数的话,用数组,或者把参数封装到XML字符串里,MIDAS也不过是一个打包的技术,只是功能很强大而已。
aloelan 2003-12-14
  • 打赏
  • 举报
回复
用数组的话,要用variant的吧,我看李维的书里说这个负荷很大!:(
xml没试过!
aloelan 2003-12-14
  • 打赏
  • 举报
回复
To eastliangliang(青苹果)(业精于勤荒于嬉):
大哥不用MIDAS,用的啥啊?我以前做b/s的,哎,前一段又做c/s,现在做c/a/s,思路有点乱了!:(

对新增一条记录,在client把参数传过去,如果参数很多的话,怎么处理?
是不是在server里建一个方法,然后这个方法有N个in的参数?????
不知道大家是怎么处理?教教我啊!
angelior 2003-12-14
  • 打赏
  • 举报
回复
學習中
yudehui 2003-12-13
  • 打赏
  • 举报
回复
简单的说:服务器端应用程序通过远程数据模块的Tdatasetprovider组件获取数据同时提供了IAppServer接口向客户端提供服务远程数据模块中的Tdatasetprovider组件和数据集组件连接而直接获得数据。多层结构其他部分和两层结构就相同了。
yudehui 2003-12-13
  • 打赏
  • 举报
回复
2、客户端通过Tclientdataset组件获取数据,而Tclientdataset组件则联接上TRemoteServe组件(或者TDcomConnection等),TRemoteServe组件通过Midas。dll文件和服务器端应用程序进行通讯
yudehui 2003-12-13
  • 打赏
  • 举报
回复
解答:
1:最好写存储过程和触发器,然后调用,提升速度
yousoft2013 2003-12-13
  • 打赏
  • 举报
回复
看书先!!!!!
Erice 2003-12-13
  • 打赏
  • 举报
回复
慢慢来吧
eastliangliang 2003-12-13
  • 打赏
  • 举报
回复
从两层到多层,楼主需要转换一下编程思路了。
两层是SQL语句在客户端的程序里,所以你把SQL语句提交给数据库服务器,三层中,你把两层中的客户端分成两部分,一部分管界面显示,另一部分管数据操作,你把数据操作的那部分放到服务器上当作中间层,所以SQL语句就到服务器上了,想象一下ASP是怎么做的,浏览器就象客户端,ASP的网页就象中间层(当然不能这麽说,只是一个类比,不过好像差不多哟^_^)。
剩下的就不会了,没用过MIDAS:)
jxc163 2003-12-13
  • 打赏
  • 举报
回复
不懂,关注!
aloelan 2003-12-13
  • 打赏
  • 举报
回复
对了,
<Delphi 5.X ADO/MTS/COM+高级程序设计篇>这本书后几章,我一直没找到在哪里下,各位能推荐个地址么?
加载更多回复(6)

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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