关于TListView和数据库捆绑使用的问题(100分)

  • 主题发起人 主题发起人 DickWu
  • 开始时间 开始时间
D

DickWu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TListView来显示一个数据库表中的部分数据,该表中有一个Memo类型的字段,我想
当在TListView中选中某行数据时,取出该数据对应的字段的Memo中的数据---也就是如何
快速定位到对应的数据库表中的记录上(该Memo字段的值没有显示在TListview上,
显示在TListview中的各列中的数据不具有唯一行,所以不能用查找功能,就算用查找,
速度也很慢,数据库中可能会有十几万条记录),本来想用DBGrid的,可惜DGBrid不带表
头按钮点击后排序的功能,而且也不能象TListview一样显示不同的图标.
 
1.在加载数据时在Tlistview的object中加入唯一值,就可以用来查找了,当然只能用查找了,
用SQL的话速度应该不会太慢。
2.干脆将memo加入到object中去,不过这样加载时速度可能会有影响。
 
四只眼已经完全回答了你的问题.
不过,
我还是建议你用DEVEXPRESS的控件试试
 
TO eyes4 : 这些记录好象没有唯一值(数据库中的保存的是邮件,无论From,Subject都有可能
重复,除非再加一个唯一值字段).用Virtual ListView的方法全部装载到TList中
的话占用资源很大而且速度也慢------其中有一个Blob类型(原来是Memo类型,现
改为Blob)字段保存的是的邮件原文,占用空间比较大.
To 不夜城: DEVEXPRESS的什么控件? 我只用过它的DxMemData内存数据库,其它的不了解.
哪里有下栽或介绍?
 
哪儿有下载
我记不得了
我这是花美元买的.

但听说这玩意早已被CRACK的一丝不挂了
 
www.inprises.com 上可以下devexpress控件,可以并不太好使
 
还是强烈建议加上一个唯一值,不然无法查找,如果是邮件的话,收件时间加上收件信箱
的地址应该是唯一的。
无法想象一个有大量数据又无关键词的数据库该如何操作!
 
查找的方法我原来用过,发现还是明显的停顿感觉,即使用了Index.
我本来想用BookMark的,但我对下面的情况不是很了解.
1 用BookMark是不是比查找快? 几万条记录时感觉是不是非常明显?
2 能不能每条记录在调入TList的时候,加一个Bookmark,这样在几万条记录的时候,
会不会占用很大的资源?
3.如果一个表中所有的记录都加Bookmark然后调入TList后,如果再在表中添加新的记录,
会不会搞乱原来的BookMark ? (如果这样的话就要重新设置BookMark然后再重新调入
TList,如果不会搞乱的话我就可以把新添加的记录再加上BookMark,添加到原来的TList
中,一点也不耗时间)

恳求哪位大侠知道的给指点一下迷津?

 
提前,再提前,我只是希望速度非常快,要感觉不到停顿.
 
to eyes4
我试了你的第一个方法,如果记录非常多的情况下,不是很快了。
好像,从数据库里读出数据不慢,但是要组织TListView回很慢了。
 
补充:我的TListView是用Virsual ListView的方法,先加载到TList中,再在TListView显示的
时候在Data方法中取数,这样加载速度很慢,而且把BLOB的内容全部加载到TList中,占用资源
很多(好几万条记录啊),如果不加载BLOB内容的话,速度有所提高,但点击后在数据库中
查找的速度很慢(即使用了ID做Index---我就是用ID来Locate的).

哪位大侠给想想办法啊?
 
to:Flintstone
要使TListView的加载速度加快,有几种方法:
1.用后台线程,不过这样可能在同步上有问题;
2.分级加载,比如先加载1-2级,等需要打开第3级的时候,再打开3-4级,这样在感觉上
速度就会快一点,MS的资源管理器就是这样弄的。
3.两者结合。
 
DickWu:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。

 
我也碰到了同样的问题!listview和数据库结合!
 
结束问题吧
 
后退
顶部