财管家 首页
当前位置:主页>delphi7/进销存和数据库> 文章内容

常见的问题,但我没有能力找出来,大家给看看。

发布时间:2011-01-03 | QQ免费站
1楼: str_sql:='select avg(wd) wd,avg(yl) yl,avg(yc) yc,sum(qi) qi from '+dbname+' where sj='+''''+'23:15'+''''+' Or sj='+''''+'23:30'+''''+' Or sj='+''''+'23:45'+''''+' Or sj='+''''+'00:00'+'''';
with query1 do
begin
close;
databasename:='edbf';
sql.Clear;
sql.Add(str_sql);
execsql;
end;
str_sql:='select jcd1,jcd2 from '+secdbname+' where sj='+''''+hour_e+'''';
with query2 do
begin
close;
databasename:='sdbf';
sql.Clear;
sql.Add(str_sql);
execsql;
end;
str_sql:='update '+rptname+' set wd=:Pwd,yl=:Pyl,yc=:Pyc,qi=:Pqi,jcd1=:Pjcd1,jcd2=:Pjcd2 where sj='+''''+format('%2.2d',[hour_next])+'''';
with Qry_cx do
begin
close;
databasename:='rdbf';
sql.Clear;
sql.Add(str_sql);
parambyname('Pwd').asfloat:=query1['wd'];
parambyname('Pyl').asfloat:=query1['yl'];
parambyname('Pyc').asfloat:=query1['yc'];
parambyname('Pqi').asfloat:=query1['qi'];
parambyname('Pjcd1').asfloat:=query2['jcd1'];
parambyname('Pjcd2').asfloat:=query2['jcd2'];
execsql;
end;
运行时候出现query1,query2的所有字段都不存在。请问是什么原因?就这点分了。都给了吧。

2楼: 把query1,query2的execsql改为Open

3楼: avg(wd) as wd;
查询的话 query1.active=true,或 query1.open

4楼: parambyname('Pwd').asfloat:=query1.FieldByName('wd').AsFloat;

5楼: 用open
execsql不返回结果

6楼: 上面的都是正解,
databasename:='sdbf.mdb';//加后缀名;如 sqlexpress 企业管理器

7楼: photohawk 一语中的!

8楼: 看着挺乱的,如果是ACCESS,日期和时间是用#限定的,其他的用单引号就可以了,楼主的很多代码不需要那么多引号,和在一起能形成最后的结果就可以了,所有select的都修改成open,其他的为execsql,楼主自己把SQL语句拿到环境里面调试一下就出来了

9楼: 说的是呀!不要用什么execsql


用open 就行了

10楼: 同意chenybin