Provider-《Delphi4 核心编程技术》一书中的问题(100分)

  • 主题发起人 主题发起人 Sun
  • 开始时间 开始时间
S

Sun

Unregistered / Unconfirmed
GUEST, unregistred user!
在《Delphi4 核心编程技术》一书的41页的最后两行有如下描述:
“默认情况下,TDataSetProvider或TProvider构件能够用动态生成的SQL
语句直接与远程的数据库服务器通讯,而不需要借助于基于BDE的数据集控件”
请问如何实现?
 
@_@
我回去看看
 
设置其option属性中ResolveToDataSet为False.
 
一种是用provider.DataRequest方法,看help里的例子
一种是用clientdataset.commandtext,看help里的例子
 
TDataSetProvider的作用是在服务器上提供一个接口,ClientDataset可以
通过这个接口直接将服务器DataSet的数据取出来,也可以直接对它的Data
赋值,可以参见provider.DataRequest的例子。其实这就是我们常说的三层
客户端当然不需要BDE,可以参见Delphi5/Demos/Midas/Adhoc下的例子.
 
首先你要做一個SERVER,server放置TDataSetProvider,在client端放置DCOM,
當然你的computer operation system 要支持Dcom 連接,win98有支持,win95
很多沒有,但可以從microsoft網站download.其他可採用Fencer的方法.
 
这绝对是不可能的。
我认为这是原书中的错误。
TProvider或者TDataSetProvider只能提供DataSet给客户端,不可能具有将SQL语句提交给数据库的功能,如果可以把Sql语句提交给数据库,并得到结果,又怎么能不借助BDE呢?
 
这种书你也看?真有你的!!!除了更新Provider可以自己实现之外,
查询什么的可做不到!即使这样,它也不可能自己绕过BDE或其他的驱动去
和数据库服务器打交道!
 
TPROVIDER,TDATASETPROVIDER内部通过自动生成SQL语句提交数据更新,
而不用通过外部TDATASET。当然它们离不开BDE或是DOA之类的数据接口。

 
在DELPHI4.0下,使用clientdataset.provider.DataRequest将SQL语句
发回,服务器的参数INPUT赋给QUERY.SQL.TEXT,然后执行.
在DELPHI5.0下,使用clientdataset.commandtext=...//SQL
执行过程也是将SQL发回服务器.
所以在客户端是不需要BDE.
 
Tprovider 使用与之相连的BDE Dataset的Database属性与数据库控件相连,
好象Tprovider 也有Database属性,看一下source/vcl/provider.pas 应该能解
决。如果你用的数据库控件不使用BDE,那你可就完全脱离BDE了!
 
多人接受答案了。
 
后退
顶部