快速查询数据

QuikFind和QuikSelect是Foxtable 2026新增的方法。

QuikFind和QuikSelect的查询速度是Find和Select的6到8倍,适合需要持续进行大量(万级)查找的场合。

QuikFind和Find方法一样,只能返回一条符合条件的行,而QuikSelect则返回一个DataRow集合,包括所有符合条件的行。

QuikFind和QuikSelect需要SetQuikKey配合使用,使用步骤为:

1、在查找前用SetQuikKey设置快速查找列:

DataTables("表名").SetQuikKey("查找列名")

可以设置多个查找列,例如:

DataTables("表名").SetQuikKey("查找列1,查找列2")

或:

DataTables("表名").SetQuikKey("查找列1","查找列2")

或:

DataTables("表名").SetQuikKey({"查找列1","查找列2"})

通常在项目事件AfterOpenProject设置,不要反复设置,设置一次即可,除非需要更改查找列。

2、之后就可以快速查找数据了,例如:

Dim dr As DataRow = DataTables("表名").QuikFind("查询值")

Dim drs As List(of DataRow) = DataTables("表名").QuikSelect("查询值")

如果设置了多个查找列,就需要指定做个查询值,例如:

Dim dr As DataRow = DataTables("表名").QuikFind("查询值1","查询值2")

Dim dr As List(of DataRow) = DataTables("表名").QuikSelect("查询值1","查询值2")

可以用数组指定多个查找值,例如:

Dim dr As DataRow = DataTables("表名").QuikFind({"查询值1","查询值2"})

Dim dr As List(of DataRow) = DataTables("表名").QuikSelect({"查询值1","查询值2"})

下面是一个测试示例,里头有两个文件,分别用QuikFind和Find来完成10万次查找任务,大家可以下载 比较测试一下:

http://www.foxtable.com/samples/quikfind.zip

当然QuikFind和QuikSelect是没有办法代替Find和Select的,因为后者用的是表达式,很灵活,而前者只能用于等于查找。


本页地址:http://www.foxtable.com/webhelp/topics/6170.htm