过滤问题,请高手帮忙!

liulhj 2004-07-08 11:07:00


procedure TForm6.Button1Click(Sender: TObject);
var
stre,str:string;
begin
stre :=Edit1.Text;
str:= 'dept_name = ' + stre + '' ;
Table1.filtered :=false;
Table1.filter :=str;
Table1.filtered :=true;
end;
如果Dept_name是integer,就没问题,dept_name是string,就不行!
请高手看看,急!

...全文
122 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulhj 2004-07-09
  • 打赏
  • 举报
回复
加分在哪里加?我要结帖啦
xdf221 2004-07-08
  • 打赏
  • 举报
回复
应该用quotedstr()函数,它是在字符串两边各加一个引号。
如果用str:= 'dept_name = ''' + stre + '''';的话,那stre 中如有引号的话,就会出错。


procedure TForm6.Button1Click(Sender: TObject);
var
stre,str:string;
begin
stre :=Edit1.Text;
str:= 'dept_name = ' + quotedstr(stre);
Table1.filtered :=false;
Table1.filter :=str;
Table1.filtered :=true;
end;
lextm 2004-07-08
  • 打赏
  • 举报
回复
在Delphi里面,有类似于C语言里面的转义字符,就是'.所以,当stre是字符串wo的话,
str就是'dept_name = 'wo' '。这样才会正确查询。
lextm 2004-07-08
  • 打赏
  • 举报
回复
改成

procedure TForm6.Button1Click(Sender: TObject);
var
stre,str:string;
begin
stre :=Edit1.Text;
str:= 'dept_name = ''' + stre + '''' ;
Table1.filtered :=false;
Table1.filter :=str;
Table1.filtered :=true;
end;
就可以查String类型
yleiou 2004-07-08
  • 打赏
  • 举报
回复
str:= 'dept_name = ' +'"'+ stre + '"' ;
dbExpress 2004-07-08
  • 打赏
  • 举报
回复
对,用引号引起来,不过要注意日期格式哦

接分
liulhj 2004-07-08
  • 打赏
  • 举报
回复
如果是日期型不知道用?
stre :=Edit1.Text;
str:= 'date = ''' + stre + '''' ;
急!

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧