procedure TfrmSalaStat.Button1Click(Sender: TObject);
begin
try
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from salaryInfo where xm like "%'+Edit1.Text+'%" ');
if trim(ComboBox1.Text)<>'' then
ADOQuery1.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
ADOQuery1.Open;
except
end;
try
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select sum(yfgz),sum(sfgz) from salaryInfo where xm like "%'+Edit1.Text+'%" ');
if trim(ComboBox1.Text)<>'' then
ADOQuery2.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
ADOQuery2.Open;
Edit2.Text:=ADOQuery2.Fields[0].AsString;
Edit3.Text:=ADOQuery2.Fields[1].AsString;
except
end;
end;end.这个过程对SALARYIBFO查询,然后作简单的计算,但是不知道为什么,界面上却没有结果
?
begin
try
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from salaryInfo where xm like "%'+Edit1.Text+'%" ');
if trim(ComboBox1.Text)<>'' then
ADOQuery1.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
ADOQuery1.Open;
except
end;
try
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select sum(yfgz),sum(sfgz) from salaryInfo where xm like "%'+Edit1.Text+'%" ');
if trim(ComboBox1.Text)<>'' then
ADOQuery2.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
ADOQuery2.Open;
Edit2.Text:=ADOQuery2.Fields[0].AsString;
Edit3.Text:=ADOQuery2.Fields[1].AsString;
except
end;
end;end.这个过程对SALARYIBFO查询,然后作简单的计算,但是不知道为什么,界面上却没有结果
?
解决方案 »
- [Error] RLINK32: Too many resources to handle.
- 使用定时器控制panel滑动,如果里面包含较多控件的话会变得很卡
- FastReport中可以显示dwg图片吗?是如何显示的?
- 初学请教各位:标题栏的形状如何改变??在线等!!
- 请问如何播放wav文件?因为频繁播放这个声音,能不能不用每次读硬盘调到内存里?
- 做工程时遇到的几个实际问题,大家来看看,讨论下了呀!
- 那为大哥知道在哪下载delphi的函数说明和事件说明
- 高分欲求电力监控软件图形组态建模思想,分不够再加
- 请问应当怎样测试整个应用程序按下了某个按键,而不是在单个的窗体或控件上?
- 我有一个dbgrid控件,里面有多条记录,我现在想把一些常用的记录用鼠标拉到dbgrid的最上面,请问怎么做?
- 我真的很急,关于保存图片。
- 网络传输问题
if trim(ComboBox1.Text)<>'' then
ADOQuery1.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
是用来做什么的?
一问2,
检查一下
Edit2.Text:=ADOQuery2.Fields[0].AsString;
Edit3.Text:=ADOQuery2.Fields[1].AsString;
第一个Edit2.Text:=ADOQuery2.Fields[0].AsString;是不是应该为Edit2.Text:=ADOQuery1.Fields[0].AsString;
xm就是姓名,yf就是月份
Edit1.Text得到姓名ComboBox1.Text得到月份我只知道这个功能就是查询某人某月的总的应发工资和实发工资(包括各种工资奖金和扣去的钱,也就是salaryinfo表中其他字段),如果没有指定月份,那就返回所有月份的结果还有,在调试状态下。在Edit1.text中输入“张三”(表中有此人)时,程序抛出异常,具体输出如下:
project salary.exe raised exception class E01Exception with message '列名'%张三%无效。'.process stoped.Use Step or Run to continue
另外,在accsee上运行正常,在sql server下就这样
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select sum(yfgz) as yfgz,sum(sfgz) as sfgz from salaryInfo where xm like "%'+Edit1.Text+'%" ');
if trim(ComboBox1.Text)<>'' then
ADOQuery2.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
try
ADOQuery2.Open;
except
showmessage('打开出错');
end;
adoquery2.first;
if adoQuery1.recordCount>0 then
begin
while not adoQuery1.eof do
begin
Edit2.Text:=ADOQuery2.Fields[0].AsString;
Edit3.Text:=ADOQuery2.Fields[1].AsString;
adoQuery1.next;
end;
end;
楼上的代码能够实现所有的功能么?
adOQUERY2.SQL.TEXT: 'select sum(yfgz),sum(sfgz) from salaryInfo where xm like "%张三%" '#$D#$Aadoquery1有什么作用,我也不知道,这些代码我基本上看不懂
你也可以给一段原码,只要能完成功能就好,感激
改成
ADOQuery1.SQL.Add('select * from salaryInfo where xm like ' + QuotedStr('%'+Edit1.Text+'%'));ADOQuery1.SQL.Add(' and yf ="'+trim(ComboBox1.Text)+'"');
改成
ADOQuery1.SQL.Add(' and yf ='+QuotedStr(trim(ComboBox1.Text)));ADOQuery2.SQL.Add('select sum(yfgz),sum(sfgz) from salaryInfo where xm like "%'+Edit1.Text+'%" ');
改成
ADOQuery2.SQL.Add('select sum(yfgz),sum(sfgz) from salaryInfo where xm like ' + QuotedStr('%'+Edit1.Text+'%'));
调试时出了下面的异常:sum or average aggregate运算不能以nvar char数据类型作为参数
是不是要转换一下?怎么做?
应该怎么转?
终于搞定了
谢谢大家!!