社区
数据库相关
帖子详情
ClientDateSet复制另一个ClientDateSet数据
Yothan
2010-01-14 01:06:36
如题,由于数据量大所以在原ClientDateSet中加入了Fiter,要求现ClientDateSet加载原ClientDateSet过滤掉的数据
试过ClientDateSet1.Data=ClientDateSet2.Data,ClientDateSet.CloneCursor,都不可以将原数据库中的数据过滤掉。
各位达人,帮忙指点迷津吧,急!
...全文
325
10
打赏
收藏
ClientDateSet复制另一个ClientDateSet数据
如题,由于数据量大所以在原ClientDateSet中加入了Fiter,要求现ClientDateSet加载原ClientDateSet过滤掉的数据 试过ClientDateSet1.Data=ClientDateSet2.Data,ClientDateSet.CloneCursor,都不可以将原数据库中的数据过滤掉。 各位达人,帮忙指点迷津吧,急!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laobeli
2010-01-15
打赏
举报
回复
[Quote=引用 8 楼 yueyun889 的回复:]
使用cloneCursor的方法是可以的。
cds2.CloneCursor(cds1,False);
第三参数使用默认的False就可以过滤数据了。
谢谢Avan_Lau的提醒,也谢谢其他各位。
[/Quote]
我测试过了,这样的方法显示数据没有问题,查看RecordCount记录数也没有问题,但是不知道你有没有试着SaveToFile过,我试过保存至XML文件打开后仍然和原来的数据一样,另外这种Cursor的Clone似乎也会造成对一个数据修改连带着改变其它Clone的数据。
Yothan
2010-01-14
打赏
举报
回复
[Quote=引用 7 楼 linghengmao 的回复:]
引用 3 楼 yueyun889 的回复:
数据量过大,不采用循环方式。
可有其他方法?
clientdataset的數據已在內存中了,如果不是很大,采用循環方式應該不會慢的。
[/Quote]
ERP软件会尽量提高速度的,循环。。下下选啊~
Yothan
2010-01-14
打赏
举报
回复
使用cloneCursor的方法是可以的。
cds2.CloneCursor(cds1,False);
第三参数使用默认的False就可以过滤数据了。
谢谢Avan_Lau的提醒,也谢谢其他各位。
linghengmao
2010-01-14
打赏
举报
回复
[Quote=引用 3 楼 yueyun889 的回复:]
数据量过大,不采用循环方式。
可有其他方法?
[/Quote]
clientdataset的數據已在內存中了,如果不是很大,采用循環方式應該不會慢的。
金卯刀
2010-01-14
打赏
举报
回复
[Quote=引用 4 楼 yueyun889 的回复:]
引用 2 楼 dd_zhouqian 的回复:
没用过,刚查了下
主要是用这两种方式。
clientdataset1.Data:=clientdataset2.data;
或者使用Clone
clientdataset1.CloneCursor(clientdataset2,False,True);
我试过,这两种方法都是将原数据集的数据全部复制过来,而不能取出 原数据集中的Fiter过滤后的数据
[/Quote]
你留意一下CloneCursor後面的兩個參數,clientdataset1.CloneCursor(clientdataset2,False),後一個參數默認為false,此時clientdataset1中的filter與clientdataset2是一樣的...也就是做了同樣的過濾的
CCC的
2010-01-14
打赏
举报
回复
cdsDest.Assign(cdsSource)
Yothan
2010-01-14
打赏
举报
回复
[Quote=引用 2 楼 dd_zhouqian 的回复:]
没用过,刚查了下
主要是用这两种方式。
clientdataset1.Data:=clientdataset2.data;
或者使用Clone
clientdataset1.CloneCursor(clientdataset2,False,True);
[/Quote]
我试过,这两种方法都是将原数据集的数据全部复制过来,而不能取出 原数据集中的Fiter过滤后的数据
Yothan
2010-01-14
打赏
举报
回复
数据量过大,不采用循环方式。
可有其他方法?
dd_zhouqian
2010-01-14
打赏
举报
回复
没用过,刚查了下
主要是用这两种方式。
clientdataset1.Data:=clientdataset2.data;
或者使用Clone
clientdataset1.CloneCursor(clientdataset2,False,True);
chhrsas
2010-01-14
打赏
举报
回复
用循环一条一条的赋值过去就可以了。
Delphi7从入门到精通6
Delphi 是 Borland 公司开发的,深受广大程序员所喜爱的可视化软件开发工具。和 Visual C++相比,Delphi 更简单、更易于掌握,而在功能上也丝毫不逊色;和 Visual Basic 相比,Delphi 则功能更强大、更实用,学习上也不比 Visual Basic 困难。可以说 Delphi 同时兼备了 Visual C++功能强大和 Visual Basic 简单易学的特点。
将
Client
DateSet
中的图片字段copy到word文档中
将
Client
DateSet
中的图片字段copy到word文档中var testStream:TMemoryStream; JpgFile:TjpegImage;begin try testStream:=TMemoryStream.Create ; JpgFile:=TjpegImage.Create ; if not TBlobField(cs.FieldByName(
Client
DateSet
:Cannot perform this operation on a closed dataset
打开
数据
集时,每次打开换个
Client
DataSet,是可以解决问题,但是,这太复杂了,也违背编辑的原则。3、逐个控件,进行查找,方法是屏蔽全部控件,逐个开放,检查是否出现错误。找到在 TsDBEdit控件时,使用OnChange,生成其它字段的
数据
,引起
Client
DataSet不能进入Open状态。原因中使用控件AlphaControls,界面很好,但是重画窗口界面,比较复杂,要求不使用或少使用OnChange事件,引起不必要的麻烦。2、在引起DBCombobox,有OnChange的控件,找原因。
delphi
client
dateset
排序
2、通过 IndexDefs.AddIndexDef 或 AddIndex 建立索引, 然后用 IndexName 指定为当前索引.T
Client
DataSet 会自动生成两个默认索引: DEFAULT_ORDER、CHANGEINDEX;两种方法是互斥的, 指定
一个
会自动取消另
一个
.
C\S结构中成批保存
CLIENT
DATASET中的
数据
这应该不算是什么技巧,估计有
数据
库方面程序的DELPHI程序员都知道;本来没有写想到需要把它写成一篇贴子,但前不久看个别刚入门的兄弟的代码时。才发展他们还在刀耕火种,为此才想把它写出来算是对入门的兄弟们的一点帮助,让大侠们见笑了; 我们都知道T
CLIENT
DATASET有把对它其中的
数据
所做的修改记录下来的功能;如果需要还可以将 修改回复到以前的某个状态,而且结合DATASETP...
数据库相关
2,495
社区成员
88,444
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章