DELPHI+SQL7的查询问题(100分)

  • 主题发起人 主题发起人 wuzhenzhen
  • 开始时间 开始时间
W

wuzhenzhen

Unregistered / Unconfirmed
GUEST, unregistred user!
我们在做一个三层的系统,关于查询方面请教各位前辈,具体应该怎样实现?
是用带参数的存储过程来返回数据还是直接用SQL语句查询好点?应该怎样做
烦劳各位赐教!
 
带参数的存储过程来返回数据还是直接用SQL语句查询,那都还是两层结构的系统。
两者都差不多,比较复杂的,运行时间比较长的尽量用带参数的存储过程。
关于三层结构可去MIDAS / DCOM分类去看看
 
在服务器方建立带参数的存储过程
在客户方调用该存储过程即可。
 
StoredProc控件应该是放在应用服务器上吧,那查询的参数如何从客户端穿到服务器端呢?比较急,请指教!
 
存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。
在服务器上执行存储过程,可以改善应用程序的性能。这是因为:l 服务器往往具有
强大的计算能力和速度。l 避免把大量的数据下载到客户端,减少网络上的传输量。
例如,假设一个应用程序需要计算一个数据,这个数据需要涉及到许多记录。如果不
使用存储过程的话,把这些数据下载到客户端,导致网络上的流量剧增。不仅如此,
客户端可能是一台老掉牙的计算机,它的运算速度很慢。而改用存储过程后,服务器
会很快地把数据计算出来,并且只需传递一个数据给客户端,其效率之高是非常明显
的。
要访问服务器上的存储过程,一般是这么几个步骤:第一步,把一个TStoredProc构
件放到窗体或数据模块上。第二步,设置DatabaseName属性指定一个数据库,可以设
为BDE别名或者应用程序专用的别名(如果用TDatabase构件连接数据库的话)。第三
步,设置StoredProcName属性指定存储过程的名称。如果前面正确设置了
DatabaseName属性,就可以从一个下拉列表中选择一个存储过程。由于经常要在运行
期执行不同的存储过程,因此,StoredProcName属性一般是在运行期设置的。第四
步,单击Params边上的省略号按钮打开一个编辑器。如果第二步和第三步设置正确的
话,在这个编辑器中将显示所有的输入和输出参数,否则,这个编辑器就是空的。
StoredProc一般在客户端,可以用
StoredProc1.Params[0].AsString访问output类型的返回参数。








StoredProc1.Params[0].value
 
存储过程还有一个好处就是:可用存储过程访问未被授权的表和视图
 
我不明白的是,我是用DCOM连接的,假如我把StoredProc放在客户端并如g622所说的
设置DatabaseName属性指定一个数据库,那不是变成了单层了吗?那DCOMConnection控件不是一点用都没有了吗?
 
在三层的应用中,StoredProc当然放在应用服务器上。
那么你可以直接访问clientdataset的Params属性,
这些参数实际上是传递给应用服务器上的TQuery构件
或TStoredProc构件的。

两层和三层的关键是看你把应用逻辑放在哪里。
 
请问clientdataset的Params属性是自己手动添加的吗?可否给个简单的例子?
我搞得很没头绪。
 
delphi已经自带了很多例子,在/Delphi4/Demos/Midas目录下。
 
请教demo里哪个例子是关于调用存储过程的?
 
需要对具体的情况进行分析。
对一般的小程序,就不需要存储过程了,对于较大规模的程序我认为
需要使用存储过程。
 
我这个东西是某高校关于考研和考博学生资料的管理,量不是很多,也不会很小,而
且考虑到以后可能会不端增加,所以我想应该用存储过程好点的
 
多人接受答案了。
 
后退
顶部