100分求动态查询模块,不够另外开贴给分!!!
100分求动态查询模块,不够另外开贴给分!!!100分求动态查询模块,不够另外开贴给分!!!
QQ:101022104
[解决办法]
也是就是动态的组合查询条件,就是麻烦点,需要考虑的东西太多了
[解决办法]
编写一个from,将主窗口的query引用进来,再使用查询既可
[解决办法]
ADOQuery1要通过ADO连接组件连到数据库里,加个按钮,按钮的单击事件:
with self.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( ' select * from table1 where rake like :a and name like :b and product like :c ');
parameters.ParamByName( 'a ').Value:= '% '+Trim(edit1.Text)+ '% ';
parameters.ParamByName( 'b ').Value:= '% '+Trim(edit2.Text)+ '% ';
parameters.ParamByName( 'c ').Value:= '% '+Trim(edit3.Text)+ '% ';
Open;
database.ADO_CLIENT.first;
end;
[解决办法]
假如查空出错的话,可以先判断edit是否为空,修改代码:
with self.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( ' select * from table1 where 1=1 ');
if Trim(edit1.Text) <> ' ' then
begin
SQL.Add( ' and rake like :a ' );
parameters.ParamByName( 'a ').Value:= '% '+Trim(edit1.Text)+ '% ';
end;
if Trim(edit2.Text) <> ' ' then
begin
SQL.Add( ' and name like :b ');
parameters.ParamByName( 'b ').Value:= '% '+Trim(edit2.Text)+ '% ';
end;
if Trim(edit3.Text) <> ' ' then
begin
SQL.Add( ' and product like :c ' );
parameters.ParamByName( 'c ').Value:= '% '+Trim(edit3.Text)+ '% ';
end;
Open;
self.ADOQuery1.first;
end;
哈哈,我刚改造出来一个类似的,还挺好使,应该对楼主也有用吧.
第一条回复有个地方忘了修改,就是最后database.ADO_CLIENT.first;哈哈,那是我的代码里的,我是给把程序的数据连接和查询之类的组件都放在了名为database的数据模块里了.
[解决办法]
我有万能查询控件特别好用.
[解决办法]
我给公司做的不能对外开放.我下午做个类似的完成动态查询的小程序给你.大约明天早上就发过你,再联系
[解决办法]
还是在存储过程中写查询代码,调用的好
如
Create proc OQ_GetOrderInfoTable
@Feilds varchar(1000) = '* ',
@table varchar(1000) = '* ',
@Where varchar(1000) = 'where 1=1 '
as
declare @tempSQL nvarchar(4000)
----------------------
--省略
----------------------
EXECUTE sp_executesql @tempSQL
这样感觉比在delphi里面写好点
[解决办法]
还没搞定啊?
顺便问下:楼主是男性还是女性,1983出生的?