我想知道:三层中sql到底应写在那?(100分)

  • 主题发起人 主题发起人 风中的承诺
  • 开始时间 开始时间

风中的承诺

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大仙:在客户端的每一条sql语句是不是都在应用程序服务器中放一个QUERY呢,如
果是这样,那应用程序服务器可就有成百上千个QUERY1了,另外,可以通过客户端的
ClientDataSet1的COMMANDTEXT 来查询,就不会有这种情况了,但有人说这是伪三层,我很
迷惘。
 
我现在的做法是简单的SQL放在应用服务器上,复杂的在应用服务器上调用SQL用存储过程,
另外:你说的 用成百上千个TQuery,
在应用服务器上对客户端提供几个方法,
用于把应用服务器上的某个TQuery的SQL语句清空或者添加SQL语句
 
一般写在服务层
 
你的服务器端不要用很多的TQuery啊!
只对要输出接口的才用,如果是处理数据的话用存贮过程,多利用数据库的功能。
sql写在客户端如果比服务器端方便的话,你还管别人说什么伪三层?
能实现高速,稳定的系统才是最重要的。
 
没有那么多的构件要放,都是动态的
 
我觉得Maming的观点比较正确。
 
你应该通过客户端的
ClientDataSet1的COMMANDTEXT 来查询。
 
放在中间层。
 
我这么做过:
客户端指定服务器是通过BDE还是通过ADO连接数据库,并提交数据库别名,用户名和密码,
服务器端连接数据库成功后,客户端提交SQL语句,这里所谓的提交是指在服务器端定义的函数
或者过程由客户端带参数操纵实现的.
服务器端RDM上只有DataBase1,Query1,ADOConnection1,ADOQuery1,DataSetProvider1等
几个控件.
客户端可以指定服务器端通过ADO或BDE连接不同的数据库作不同的SQL查询.
 
一般说来,如果你的查询比较简单或只是为了显示不用于修改的话,您可以在客户端提交
commandText给中间层的Provider来实现。
相反,如果是比较复杂的查询还是放在中间层的query的SQL中好一点。当然,如果灵活运
用一些简单的变量、常量。你会发现一个query可以完成好多的工作。
再有,更得杂的可以调用数据库的存储过程或函数来完成。
 
利用接口调用存储过程
 
北斗讲得比较对!
 
看李维的《分布式系统篇》
 
业务检测利用中间层,复杂的查询利用中间层,一般的编辑修改利用客户端。
 
建议还是写在中间层,因为程序已经发布后,当后台数据库有变时,你只需维护中间层应用程序即可。
否则,每个客户端都必须重新安装……
 
后退
顶部