可不可以把TClientDataSet的数据传给TAdoDataSet?(100分)

Y

yuanqs

Unregistered / Unconfirmed
GUEST, unregistred user!
好像TAD0DataSet没有Data属性?
那位大侠知道如何做?
顺便问一下,如何在程序中改只读属性?
 
可不可以把TClientDataSet的数据传给TAdoDataSet?
可以阿
 
给个方法!简单一点的
 
AdoDataSet1.data:=clientdataset1.data;
这一句解决问题了
 
大哥,AdoDataSet没有data属性
 
利用TDataSetProvider作为桥梁。
 
用DataSetProvider将ADODataSet的数据传给ClientDataSet很容易,
反过来好像不容易,能不能详细介绍一下方法?
 
ClientData.SaveToFile('c:/Data.xml');
AdoDataSet.LoadFromFile('c:/Data.XML');
好像OK的,你试验一下
 
这样太慢了,能不能在内存中赋值?
 
with AdoDataSetdo
for i:=0 to FieldCount-1do
begin
if SameText(Fields.FieldName,CDS.Field.FieldName)
FIelds.value := cds.Fields.value
...

end;

估计这样你也不满意
 
这种方法不是不行,我试过了,好慢阿!
我这样做的目的主要是为了将BDE抓到的数据转成ADO的格式,这样就可以用
TADODataSet.RecordSet的属性传一个ADODB.RecordSet到Asp中,这样在ASP中
就可以用了!
现在我们可能是用XML来做,可是我实在是想知道用上面思路,有没有解决的方法
虚心请教!!!!
 
我觉得没有理由只能用TADODataSet而不能用TClientDataSet,但这要从系统架构谈起。
你们是考虑用ASP来操纵一个ADODB.RecordSet,这个RecordSet的数据库又是由TADODataSet
从远端的Delphi应用服务回中获得,这样做我觉得比较怪,我们来试分析一下:
为什么不用ASP直接调用ADODB.RecordSet来访问数据库呢?这样考虑可能是基于几个原因
的:1、Web服务器不能直接连接到数据库(这可能性不大吧?);2、想通过由Delphi建立
的COM+组件来改良系统的结构,提高系统的可扩展性。3、其它原因(请说明)
如果是基于第二种想法的话,这样的设计就是不可取的。在阅读了李维的《Delphi 5.x 电子
商务篇》后,以及组合我一年来开发B/S系统得出的体会,如果要开发一个具有高效率、高
扩展能力的B/S系统,就应该明确地分开用户界面和业务逻辑。要做到在ASP系统中把用户界
面和业务逻辑分开,最好的办法就是把业务逻辑写在COM/COM+组件中,而ASP只作为调用组件
的外壳,让它只负责动态地生成页面,注意:这样需要尽量避免将业务逻辑(核心是对数据
库的操作)写在ASP脚本里,进一步说,就是虽然ASP能够调用ADO组件操作数据库,但我们
不使用它的这一功能。
与ASP脚本里不要写业务逻辑相对应,组件里应昼避免处理用界面(比如说生成HTML页面代
码),除了生成简单的HTML表格外。组件主要完成数据存取的工作,并返回数据存取的结果,
让ASP脚本根据组件方法的执行结果来动态生成网页,这样不但能做到用户界面和业务逻辑的
分离,而且还可以获得一些其它的好处,例如Web服务器与数据库服务器不在一台机器上,
甚至不在一个网络中(只要能通过HTTP协议连接——当然,这样我们就需要XML了)。
这样的系统架构可能也有一些缺点,主要就是开发的时间成本要高些——如果没有现成的熟
练的开发人员,你们将需要投入较多的时间来研究分布式组件技术。
 
我们是你说的第二种情况,系统架构如下:
_______IIS__________
DataBase ----- APServer -----| COM+组件 -- ASP |------- IE
--------------------
DataBase放在一台服务器上
APServer中写了业务逻辑,因为database是ERP的,ERP的其它功能都是用BDE的,
所以这里的APServer规定用BDE的方式来连,放在一台服务器上
Com+组件是和IIS在同一机器上,只作从ApServer上获得数据,然后传给ASP
问题出在如何将BDE的数据传给ASP
有几种解决方法:
1)转成XML字符串传给ASP
2)在IIS的COM+组件中将数据组装成Table的字符串,传给ASP,ASP只显示
3)将BDE的格式转成ADO的格式,将数据组装放在ASP页面中
其它方法不知道。。。
我想问一下,我的问题出在那里,李维的书没看过

 
我认为你提到的三种解决方法中前两种是可行的,也是常用的。由于我对XML还不太熟,
我会选择第二种解决方法;如果从性能的角度来看,我还是会选第二种方法。
用第二种方法实现的先决条件是AppServer是一个基于MIDAS的数据中间件,即它使用
TDataSetProvider提供数据。这样,在你的Web服务器上就可以建立一个为IIS服务的COM+组
件,通过TDCOMConnection连接AppServer,将数据取到TClientDataSet里,之后你就可以用
各种基于TDataSet的PageProducer来将数据格式化为HTML了。
(抱歉,我基本上只有晚上才能上网,这种情况将维持到本周末)
 
多人接受答案了。
 

Similar threads

回复
0
查看
920
不得闲
回复
0
查看
859
不得闲
回复
0
查看
691
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部