简单的查询问题!(10分)

  • 主题发起人 主题发起人 狮子王
  • 开始时间 开始时间

狮子王

Unregistered / Unconfirmed
GUEST, unregistred user!
在Form1中有两个TCombobox控件、一个TEdit和一个TButton
还有DBGrid1和Query1
想点击Button1对表Table1进行查询!
Table的列为: id name sex birth address
Combobox1为:编号 姓名 性别 出生日期 家庭地址
Combobox2为:= , < , > , <= ,>= , <>
Edit1为查询的条件!
也就是说在Combobox中选择查询的列是中文的,也就是说不是实际表Table1的列名
该如何编写该查询代码呢?(不能把Combobox1中改为实际表Table1的列名!)
 
用case combobox1.ItemIndex of
 
用另一个combobox3(隐藏)存放实际表中的列名,与中文列名顺序对应
生成sql时用Combobox3.Items[Combobox1.ItemIndex]就是实际表的列名了
 
定义一个二维的数组,用中文表名对应英文表名。
 
var X_index :string;
case combobox1.text of
编号 : x_index ;=id;
姓名 : x_index := name;
性别 : x_index := sex;
出生日期 :x_index:=birth;
家庭地址 :x_index:=address;
end;
query.close;
query.sql.clear;
query.sql.add('select * from table1 where '+x_index +combobox2.text+edit1.text);
query.open;
 
zm30的方法最简单!
 
多人接受答案了。
 
后退
顶部