还在用TDataSet的子类吗?你OUT了!

CACACACACA 2011-01-11 11:47:04
标题纯粹是为了吸引眼球,活跃气氛,不周之处请见谅. :-)

主要是为了研究一下如何让TDataSet更好的为我们"服务".
...全文
238 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
假如有下面的代码:

Edit1.Text := MyDataSet.FieldByName("姓名").AsString;

Edit1.Text中的内容到底从哪来的呢?

应该说除了TClientDataSet里有开辟了一块"内存"来储存数据,其它的TDataSet的子类都是"壳".
lyhoo163 2011-01-11
  • 打赏
  • 举报
回复
特殊服务?
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hongqi162 的回复:]

问题在DBReader上了,它不是一个数据集
[/Quote]

的确是这样, 所以暂时没有什么好的办法来替换CopyReaderToClientDataSet.
TDBXCommand.ExecuteQuery返回是个TDBXDynalinkReader类,这个类没有源代码. 帮助中也没提到.我仅仅是通过
ClassName知道的.
hongqi162 2011-01-11
  • 打赏
  • 举报
回复
问题在DBReader上了,它不是一个数据集
风之谷 2011-01-11
  • 打赏
  • 举报
回复
现在在严打
hdj_myth 2011-01-11
  • 打赏
  • 举报
回复
请教:那用什么呢?
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]

特殊服务吗
[/Quote]

把你提供的特殊服务条目列出来. :)
bdmh 2011-01-11
  • 打赏
  • 举报
回复
特殊服务吗
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
以前用CopyReaderToClientDataSet方法将DBReader数据转到TClientDataSet. 看CopyReaderToClientDataSet中的源代码发现TClientDataSet是一条一条写数据的.感觉有点慢.一直想有没有什么办法像
TClientDataSet.Data := MyData;这样的方法来转换数据.

昨晚又试着尝试发现更好的办法,无意中感觉TDataSet就是个"空壳".
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hongqi162 的回复:]

你想要什么样的特殊服务?
[/Quote]

哈,月亮老大来了. 一会写点东西,多指教.
hongqi162 2011-01-11
  • 打赏
  • 举报
回复
你想要什么样的特殊服务?
hz_bule 2011-01-11
  • 打赏
  • 举报
回复
用TADODataSet传递数据,TADODataSet不用连接数据库,通过XML对TADODataSet赋值,更新也通过XML传
回服务器进行,客户端不用与数据库打交道,也不用写任何SQL语句.
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
简单来说,改造TDataSet是想让DBGtrid, FastReport用上我的VOList.

TDataSet读/写数据库还行.作为数据的"载体"不好使.


CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jiap1723 的回复:]

adoquery的缓存更新是什么原理。直接调用CLASS_Recordset的方法吗?
[/Quote]

原生的ADO本来就支持缓存列新.
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
慢不慢是相对的 -- 能在要求的时间内遍例就不慢,反之就是慢了.

我只是试着找其它的办法, 当不能满足需求的时候,好作为一种代替方法.
zzzl 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jjwwang 的回复:]
以前用CopyReaderToClientDataSet方法将DBReader数据转到TClientDataSet. 看CopyReaderToClientDataSet中的源代码发现TClientDataSet是一条一条写数据的.感觉有点慢.一直想有没有什么办法像
TClientDataSet.Data := MyData;这样的方法来转换数据.

昨晚又试着尝试发现更好的办法,无意中感觉……
[/Quote]

一条一条写数据很慢吗?
风之谷 2011-01-11
  • 打赏
  • 举报
回复
我没读过ADO的源码 不过我感觉貌似ado 应该有内存数据

风之谷 2011-01-11
  • 打赏
  • 举报
回复
adoquery的缓存更新是什么原理。直接调用CLASS_Recordset的方法吗?
CACACACACA 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiap1723 的回复:]

adodataset 也开启 内存了吧
[/Quote]

CreateADOObject(CLASS_Recordset)得到的接口来处理数据.实际干活的是_Recordset.
加载更多回复(1)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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