adoquery filter使用

adoquery filter使用

2008-09-10 23:41

adoquery filter使用//hanshuming   like   'g%'  

编辑器中filter属性值过滤所有G打头的

//

//代码中adot.Filter:='hanshuming'+' '+'like'+' '+'''G%''';
//adot.Filtered:=true;


代码中字符串三对单引号 属性编辑器中一对单引号

利用字符串变量要4对''''+变量+'''' 重要

2)

hanshuming='getmodulehandle'

//编辑器中FILTER属性函数名是GETMODULEHANDLE的

//代码中'hanshuming='+'''getmodulehandle''';

下面是代码中:

adot.Filter:='hanshuming='+'''getmodulehandle''';

//上面那个参数是字符串

adot.Filter:='hanshuming='+''''+n1.text+'''';

//下面这个参数是字符变量


///以上为本人在DELPHI7中测试通过


//下面转

KeyLife富翁笔记
作者 : dxklgy
标题 : adotable中Filter的用法
关键字:
分类 : 个人专区
密级 : 公开 (评分: , 回复: 0, 阅读: 813) ??
当我们在操作数据集时,往往需要对数据进行筛眩例如:一个名为Customer的数据表,它具有CustNo、CustName、Country、Address、Phone、State、TaxRate等字段,如果只想查看国别为China或顾客号大于1000的顾客记录,就需要对数据集进行过滤。经总结,有下面这些过滤方法:
一、利用TTable和TQuery的Filter属性
1.在设计时设置Filter属性
例如,设置Filter为:Country=′China′然后改变Filtered属性为True(注意,Filtered为True时过滤才有效)。则只能看到对应的Country字段内容为‘China’的记录。

设置Filter时可以使用的操作符有:<、>、<=、>=、=、<>、AND、OR、NOT。
例如,设置Filter为:CustNo>=1000andCustNo<=5000,则只能看到顾客号在1000与5000之间的顾客记录。
2.在程序运行期间进行动态过滤
要在程序运行时改变Filter属性,这包括两种情况:
(1)操作符右边为常量,例如:Table1 Filter:=′State′+′=′+′′′HI′′′;
注意:字符串常量必须用三对单引号括起来。
(2)操作符右边不为常量,可能是通过一个变量指定的值,或由一输入框给出的值。这时需要用到Format函数。其代码形式为:Table1 Filter:=Format(′State′+′=′+′′′%S′′′,[StateValue]);其中StateValue为已经赋值的一个字符串变量,也可以为其他形式,例如:Edit1 Text。

二、用ApplyRange筛选数据集的记录
执行下面这段代码,将只能看到顾客号在1000至5000之间的顾客记录。组成该例程的几个过程为:
ApplyRange,SetRangeStart,SetRangeEnd。
Table1 SetRangeStart;
Table1[′CustNo′]:=1000;
Table1 SetRangeEnd;
Table1[′CustNo′]:=5000;
Table1 ApplyRange;
注意:该过程只适用于索引的字段。如果想基于非索引字段筛选,则不妨使用一点小花招:建立假索引。实现的方法为:Table1.IndexFieldNames:=字段名;Delphi还提供了简单的调用SetRangeStart、SetRangeEnd和ApplyRange的方法,例如:Table1.SetRange([Edit1.Text],[Edit2.Text]);

三、用OnFilterRecord事件筛选OnFilterRecord事件允许按非键控字段建立筛选程序,例如:
procedure TForm1.Table1FilterRecord(DataSet:TDataSet;varAccept:Boolean);
begin
Accept:=DataSet[′State′]=′CA′;
end;
四、用TQuery控件的SQL语句
1.SQL语句中不包含变量和参数
Select*fromCustomer
WhereCustNo>=1000and CustNo<=5000
2.SQL语句中包含参数
Select*fromCustomer
WhereCustNo>=:CustNo
在运行期间给参数CustNo赋值。
3.SQL语句中包含变量
这时向TQuery控件添加SQL语句的代码应当这样写:

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(Format(′Select*fromCustomer′+′′+′whereState=′+′′′%S′′′,[StateValue]));
Query1.Open;在上面的四种方法中,第四种功能最强大,使用最灵活
 

 
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ListView 是一个常见的控件,可用于显示数据。ADOQuery 是 C++ Builder 中用于访问数据库的组件。下面是一个简单的例子,展示了如何将 ListView 与 ADOQuery 配合使用。 首先,需要在 C++ Builder 中创建一个 ListView 和一个 ADOConnection 组件。ADOConnection 组件用于连接数据库。在 ADOConnection 的属性面板中设置 ConnectionString 属性,指定连接字符串,例如: ``` Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDatabase.mdb;Persist Security Info=False ``` 然后,在 Form 的 OnCreate 事件中,使用以下代码连接数据库: ```cpp ADOConnection1->Connected = true; ``` 接下来,在 Form 的 OnShow 事件中,使用以下代码查询数据: ```cpp ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("SELECT * FROM MyTable"); ADOQuery1->Open(); ``` 最后,在 ADOQuery 的 AfterOpen 事件中,使用以下代码将查询结果显示在 ListView 中: ```cpp ListView1->Clear(); ListView1->Columns->Clear(); for (int i = 0; i < ADOQuery1->Fields->Count; i++) { TListColumn *col = ListView1->Columns->Add(); col->Caption = ADOQuery1->Fields->Fields[i]->FieldName; col->Width = 100; } while (!ADOQuery1->Eof) { TListItem *item = ListView1->Items->Add(); for (int i = 0; i < ADOQuery1->Fields->Count; i++) { item->Caption = ADOQuery1->Fields->Fields[i]->AsString; } ADOQuery1->Next(); } ``` 这里的代码将查询结果的每一行显示为 ListView 的一个 ListItem,每一列显示为 ListView 的一个 Column。这个例子仅供参考,具体实现可能需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值