关于求工资平均值的问题-----请帮我查找程序的错误 (10分)

  • 主题发起人 主题发起人 hqlww
  • 开始时间 开始时间
H

hqlww

Unregistered / Unconfirmed
GUEST, unregistred user!
这个程序得不到我想要的结果,请厉害的人帮我修改一下,如果你不会,看看我这个模块也不错。谢谢你了!
如果你有,请提供给我,我会加分给你的。
procedure TForm1.Button3Click(Sender: TObject);
var
a,b,c:string;
begin
a:='';
b:='';
c:='';
a:=a+'salary>:salary_1';
b:=b+'hiredata>:hiredata_1';
c:=c+'dept like :dept_1';
query1.close;
query1.sql.Clear;
query1.sql.add('select * from yuangong.db');
query1.sql.add('where '+a);
query1.sql.add(' and '+b);
query1.sql.add(' and '+c);
query1.params.paramValues['salary_1']:=strtoint(combobox3.text);
query1.params.paramValues['hiredata_1']:=strtodate(combobox4.text);
query1.params.paramValues['dept_1']:=combobox5.text;
query2.close;
query2.sql.clear;
query2.sql.add('select avg(salary) from yuangong.db');
query2.sql.add('where '+a);
query2.sql.add(' and '+b);
query2.sql.add(' and '+c);
query2.open;
query1.execsql;
query1.open;
end;
 
到底是有什么问题?
Query2的参数没有赋值,能有结果吗?
Query1.ExecSql()有用吗?
 
就你写的这个垃圾还给人看(程序风格极差,语病(懂不懂pascal)),兄弟们怕是得笑死掉。
 
你的程序不但烦,而且没有搞清楚以下两个问题:
动态参数的使用方法,见下面的程序段;
open和execsql的用法,open是当SQL语句有返回
集的时候使用的,象查询;而execsql是在不需要
返回数据集时使用的,象删除,修改等;
建议:
看一下有关Delphi中有关数据库的部分;
procedure TForm1.Button3Click(Sender: TObject);
begin
with query1 do
begin
close;
sql.Clear;
sql.add('select * from yuangong.db');
sql.add('where salary>:salary_1 ');
sql.add('and hiredata>:hiredata_1 ' );
sql.add('and dept like :dept_1');
params[0].asstring:=strtoint(combobox3.text);
params[1].asstring:=strtodate(combobox4.text);
params[2].asstring:=combobox5.text;
open;
end;
with query2 do
begin
close;
sql.clear;
sql.add('select avg(salary) from yuangong.db');
sql.add('where salary>:salary_1 ');
sql.add('and hiredata>:hiredata_1 ' );
sql.add('and dept like :dept_1');
params[0].asstring:=strtoint(combobox3.text);//参数赋值
params[1].asstring:=strtodate(combobox4.text);//参数赋值
params[2].asstring:=combobox5.text;//参数赋值
open;
end;
end;
别忘了加分给我
 
接受答案了.
 
接受答案不加分,差劲
 
后退
顶部