SQL :=SQL + ' and A.Item_invest '''+ComboBox1.Text + eTZTS.Text+'''';ComboBox1 放的是 '>=' ,'<=','=' 这样的内容 eTZTS 放的是数据
就是根据用户选择>=还是<= 这个数据
可是上面语句有一个问题 ,谁能帮我改一下啊,谢谢了
就是根据用户选择>=还是<= 这个数据
可是上面语句有一个问题 ,谁能帮我改一下啊,谢谢了
你可以ShowMessage(sql)看一下最后结果!
query1.sql.clear;
query1.sql.add('select * from table wehre a.item_invest ');
query1.sql.add(combobox1.text);
query1.sql.add(etzts.text);
query1.open;
我没有机器进行调试,你回去试一试吧
也许不对
或者设一个变量
用PARAMBYNAME()给变量赋值
不是吧 老大 那样整个SQL就成这样了
... where .. and A.Item_invest + ComboBox1.Text 6 and ...
取不出ComboBox的值了sunzhiquan(欧阳炎炎)
我需要联合查询,你那样不方便
例:
procedure TForm1.Button1Click(Sender: TObject);
var
str :string;
s :string;
begin
str := 'select * form tablname ';
s := 'id';
str := str + 'where '+s+combobox1.Text +''''+edit1.Text+'''';
showmessage(str)
end;
是对的,怎么不对呀!!!
请先试一下好吗.谢谢
A.Item_invest 是字段 多表联合查询
parambyname('ComboBox1').asstring:=combobox1.text;
parambyname('eTZTS').asstring:=eTZTS.text;
楼上说得对,>=之类的逻辑判断符不需要加引号的
建议楼主可以将Sql语句提取出来检查,showmessage(sql);
看一下语法对不对
SQL :=SQL + ' and A.Item_invest '+ComboBox1.Text + QuotedStr(eTZTS.Text);
delphi 里好像通不过啊
sSQL: String;
begin
...
sSQL := 'SELECT * FROM Table1.....';
sSQL := sSQL + Format(' AND A.Item_invest %s ''%s'' ', [ComboBox1.Text, eTZTS.Text]);
...
end;