用动态SQL语言实现动态查询(50分)

  • 主题发起人 主题发起人 ynfly
  • 开始时间 开始时间
Y

ynfly

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何实现sql动态查询,我的意思是使用动态SQL语言来实现,上几次有的
人理解错了,也是我没有说清楚的原因,不好意思了,我知道共有4类动态SQL
形式,请随便举一例,谢谢。
 
4类动态SQL? 天,我一类都不知道。还要请大虾指点了。

关于动态查询,我倒是有一种解决办法--拼 SQL, 抛愚引砖,:)

例如

SQLString:= 'select * from table1 where ';
if RadioButton1.Checked then
SQLString:= SQLString + 'name = ' + edit1.text
else if RadioButton2.Checked then
SQLString:= SQLString + 'Sex = ' + edit2.text;
 
能说说是哪四类吗???
 
这是我用的查询:
sqlstring:=format('select *from db where fieldname like ''%s'',[string+'%']);

string可以是文本输入框等。
 
你的四类是指的PB吧?
 
要建立动态SQL表达式,先得在query组件的SQL属性中写入带可变参数的表达式
如:select * from country.db where area>:area
你可以在设计阶段指定SQL表达式,可直接用params属性定义可变参数;
你也可以在运行时使用可变参数,例如:
query1.params[0].asinteger:=10000;
或query1.parambyname('area').asstring:=10000。
 
delphi中只有动静之分。
 
我的四类就是pb中的四类动态SQL。因为我一直在用pb编程,不知这有没有什么不同与一般的
查询,还请各为指教
 
sorry,我没用过PB
 
with query1 do begin
active:=false; //关闭当前查询
sql.clear; //清除以前的SQL语句
sql.add('select field1,field2,field3... from tbname where');
sql.add('where field1>'+edit1.text);//field1为int字段。
………… //根据情况,任意添加SQL服务器所支持的SQL语句:)
ExecSQL;
end;
 
多人接受答案了。
 
后退
顶部