delphi dbgrid中某字段 关键字过滤
dbgrid取数据库中某张表,adoquery1.sql.add('selectnamefrom******');dbgrid中现在已经显示了name字段现在form中还...
dbgrid 取数据库中某张表,
adoquery1.sql.add('select name from ******');
dbgrid 中现在已经显示了name字段
现在form中还有一个memo
memo中有一段文字,例如:里撒旦阿萨德千万12312AHJSHJ
我现在想把dbgrid中name字段中只要包含memo中任意一个字符的一行给过滤掉,不显示
该怎么操作,最好有代码 谢谢了 展开
adoquery1.sql.add('select name from ******');
dbgrid 中现在已经显示了name字段
现在form中还有一个memo
memo中有一段文字,例如:里撒旦阿萨德千万12312AHJSHJ
我现在想把dbgrid中name字段中只要包含memo中任意一个字符的一行给过滤掉,不显示
该怎么操作,最好有代码 谢谢了 展开
1个回答
展开全部
不太清楚你用的Delphi版本,因为你给的样例memo里既有中文,又有英文,所以如果是Delphi2007之前的版本,处理起来都比较麻烦。
给你一个在XE2中的方法示例吧(手写的,可能有一些低级错误):
procedure TfrmText.Process;
var
I, J: Integer;
begin
cdsMain.First;
for I := 1 to cdsMain.RecordCount do
begin
for J := 1 to Length(mmo.Text) do
begin
if cdsMain.Locate('name', Copy(mmo.Text, J, 1), [loCaseInsensitive]) then
begin
cdsMain.Delete;
Break;
end;
end;
cdsMain.Next;
end;
end;
给你一个在XE2中的方法示例吧(手写的,可能有一些低级错误):
procedure TfrmText.Process;
var
I, J: Integer;
begin
cdsMain.First;
for I := 1 to cdsMain.RecordCount do
begin
for J := 1 to Length(mmo.Text) do
begin
if cdsMain.Locate('name', Copy(mmo.Text, J, 1), [loCaseInsensitive]) then
begin
cdsMain.Delete;
Break;
end;
end;
cdsMain.Next;
end;
end;
追问
我的是delphi7 可以吗
追答
Delphi 7的话,受限于ansi编码的问题,中文必须变通处理。
这个博客是我搜索出来的,没有删除呀:
http://blog.sina.com.cn/s/blog_5bab82c30100l6py.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询