现已经设置好ADOTable1,DataSource1,DBGrid1,并且已经连上数据库,DBGrid1中已经能显示出数据库中所有记录(ID/name/nationality/address/).我想只在DBGrid1显示符合条件的记录,但不在数据库中删除不符合条件的记录.
比如nationality=China,应该怎么做啊?
小弟对ADOTable1进行如下编程:
with ADOTable1 do
begin
Filtered:=False;
Filter:='nationality='+Quoted('China');
Filtered:=True;
end;可是编译的时候,系统警告'ADOTable1:Filet property cannot be used for detail tables',这是什么原因啊?
该怎么正确实现我的需求啊?
比如nationality=China,应该怎么做啊?
小弟对ADOTable1进行如下编程:
with ADOTable1 do
begin
Filtered:=False;
Filter:='nationality='+Quoted('China');
Filtered:=True;
end;可是编译的时候,系统警告'ADOTable1:Filet property cannot be used for detail tables',这是什么原因啊?
该怎么正确实现我的需求啊?
解决方案 »
- 我有个问题要请教各位大虾!我觉得比较棘手!!!(高分!!!!!)
- 急,请问在xp下怎样屏蔽“power”关机键。win2k下阻截WM_POWERBROADCAST消息就行,但是xp下不行。
- 求贪吃蛇的源代码(加注释的)
- 一个关于Tmemorystream的问题。
- 1分钟抢答,先答对者得分!
- 哪里有下载delphi6企业版?
- 请问如果想实现一个功能,但不知道用什么方法实现怎么找呢?
- 使用微软的ActiveX控件(MsWINSCK.ocx),当request connection时,error:'当前状态的操作无效',为什么?
- 怎么才能编一个有声音的按钮啊~~~~~~`
- socket传流问题,请帮忙!!!!!!!!
- 编的程序耗费很多内存怎么办?
- 感叹祸不单行啊。
begin
Active:=false;
Filter:='nationality=China';
Filtered:=True;
Active:=true;
end
begin
close;
SQL.clear;
SQL.Add('select * from 表名');
SQL.Add('where nationality="China" ');
SQL.open;
end;
with ADOTable1 do
begin
Active:=false;
Filter:='nationality=China';
Filtered:=True;
Active:=true;
end
如果想设置可变的查询,就在窗体上加一个EDIT(字段名)或COMBOBOX(表名),然后定义一个查询变量如:strsql:string; 然后在查询按钮的onclick事件中用:
begin
adoquery1.close;
adoquery1.SQL.clear;
strsql:='select * form '
if trim(edit1.text)<>'' then
strsql:=strsql+'"'+combobox1.text+'"'+'where ''"'+edit1.text+'"';
adoquery1.SQL.Add(strsql);
adoquery1.open;
end;
(这里的combobox中必须先选择表名)