Delphi中如何把字段替换为汉字来进行查找!(10分)

  • 主题发起人 ENIAC1946
  • 开始时间
E

ENIAC1946

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:

  请教!

  我使用的控件为:TComboBox,TQuery,TButton,TEdit!

我的数据表为:Bookinfo! 字段为:Bid,Bname,Bauthor,Bsort,Bpublish!

我现在要查找数据表里面的内容,我的代码如下:

  procedure TF_find.ComboBox1Enter(Sender: TObject);
  begin
ComboBox1.Clear;
ComboBox1.Items.Add('图书编号');
ComboBox1.Items.Add('图书名称');
ComboBox1.Items.Add('作者');
ComboBox1.Items.Add('图书类型');
ComboBox1.Items.Add('出版社');
end;

procedure TF_find.Button1Click(Sender: TObject);
begin
with Query1 do
begin
close;
sql.clear;
sql.add('select Bid as 图书编号 ,Bname as 图书名称,');
sql.add('Bauthor as 作者,Bsort as 图书类型,Bpublish as 出版社');
sql.add('where :pitem like :pvalue ');
Parambyname('Pitem').asstring:=Trim(ComboBox1.text);
Parambyname('Pvalue').asstring:='%'+Trim(Edit1.text)+'%';
open;
end;
end;

结果是:没有检索到什么记录!
   
  请教!我应该怎么做?
 
因为传递参数时程序会自动的为参数添加引号,假设你选择了图书编号而提交的时候是'图书编号'
因此where条件也就变成了where '图书编号' like '你添加的条件%' 而这种情况下是永远也没有
满足的可能的,因此你显示不出查询的结果。
 
也就是说前面的数据字段是不能用参数的
 
那应该如何实现呢?
 
请多赐教!
 

procedure TF_find.Button1Click(Sender: TObject);
var
str:string;
begin
with Query1 do
begin
close;
sql.clear;
sql.add('select Bid as 图书编号 ,Bname as 图书名称,');
sql.add('Bauthor as 作者,Bsort as 图书类型,Bpublish as 出版社');
Str:='where '+trim(ComboBox1.text)+' like :pvalue ';
sql.add(str);
Parambyname('Pvalue').asstring:='%'+Trim(Edit1.text)+'%';
open;
end;
end;
 
多谢大哥!
 
多人接受答案了。
 
顶部