qr4.query1.Close;
qr4.query1.SQL.Clear;
qr4.Query1.SQL.Add('create table tmp as select type_name,calling_nbr,sum(charge/100) charge from imp_call_ticket_total@phs117 a,call_type_info b');
qr4.Query1.SQL.Add('where a.CALLING_NBR between :edit1 and :edit2 and a.ticket_type=b.ticket_type and a.start_time between :datetimepicker3 and :datetimepicker4 ');
qr4.Query1.SQL.Add(' group by calling_nbr,type_name');
qr4.query1.ParamByName('edit1').AsString:=form1.edit1.Text;
qr4.query1.ParamByName('edit2').AsString:=form1.edit2.Text;
qr4.query1.ParamByName('datetimepicker3').AsDate:=form1.datetimepicker3.Date;
qr4.query1.ParamByName('datetimepicker4').AsDate:=form1.datetimepicker4.Date;
qr4.query1.sql.clear;
qr4.Query1.sql.Add('select calling_nbr,(select charge from tmp where type_name=*) as ch,(select charge from tmp where type_name=*) as sh,');
qr4.Query1.SQL.add('(select charge from tmp where type_name=*) as yz,(select charge from tmp where type_name=*) as qt,');
qr4.Query1.SQL.Add('(select sum(charge) from tmp) as hj from tmp group by calling_nbr');
qr4.query1.sql.clear;
qr4.Query1.SQL.add('drop table tmp');
qr4.query1.Prepare;
qr4.query1.Open;
qr4.query1.Active:=true;
qr4.query1.Open;
qr4.Preview;
我在数据库下直接可以运行,但是
这个运行时报出table or view not exixt,
为什么啊?
qr4.query1.SQL.Clear;
qr4.Query1.SQL.Add('create table tmp as select type_name,calling_nbr,sum(charge/100) charge from imp_call_ticket_total@phs117 a,call_type_info b');
qr4.Query1.SQL.Add('where a.CALLING_NBR between :edit1 and :edit2 and a.ticket_type=b.ticket_type and a.start_time between :datetimepicker3 and :datetimepicker4 ');
qr4.Query1.SQL.Add(' group by calling_nbr,type_name');
qr4.query1.ParamByName('edit1').AsString:=form1.edit1.Text;
qr4.query1.ParamByName('edit2').AsString:=form1.edit2.Text;
qr4.query1.ParamByName('datetimepicker3').AsDate:=form1.datetimepicker3.Date;
qr4.query1.ParamByName('datetimepicker4').AsDate:=form1.datetimepicker4.Date;
qr4.query1.sql.clear;
qr4.Query1.sql.Add('select calling_nbr,(select charge from tmp where type_name=*) as ch,(select charge from tmp where type_name=*) as sh,');
qr4.Query1.SQL.add('(select charge from tmp where type_name=*) as yz,(select charge from tmp where type_name=*) as qt,');
qr4.Query1.SQL.Add('(select sum(charge) from tmp) as hj from tmp group by calling_nbr');
qr4.query1.sql.clear;
qr4.Query1.SQL.add('drop table tmp');
qr4.query1.Prepare;
qr4.query1.Open;
qr4.query1.Active:=true;
qr4.query1.Open;
qr4.Preview;
我在数据库下直接可以运行,但是
这个运行时报出table or view not exixt,
为什么啊?
qr4.Query1.sql.Add('select calling_nbr,(select charge from tmp where type_name=*) as ch,(select charge from tmp where type_name=*) as sh,');
qr4.Query1.SQL.add('(select charge from tmp where type_name=*) as yz,(select charge from tmp where type_name=*) as qt,');
qr4.Query1.SQL.Add('(select sum(charge) from tmp) as hj from tmp group by calling_nbr');
qr4.query1.sql.clear; //你把sql语句清除了,上面查询没有执行qr4.Query1.SQL.add('drop table tmp'); //你把表tmp删除了
qr4.query1.Prepare;
qr4.query1.Open;
qr4.query1.Active:=true;
qr4.query1.Open;
qr4.Preview;
我用的是个临时表,最后是要删除的,
我是想先建表,再查询,然后再把表tmp删除
我该怎么做呢?
不知道要使语句全部执行,
该怎么写代码
麻烦大家具体帮我指点一下
我没有用过DELPHI
一点不通
谢谢
还有你的表如果在程序非法弹出时就会没有被删除
这样就要求你在产生临时表时查询一下是否这个表已经存在
如果存在就先清楚表中数据或删除表然后进行操作
如果你的表在退出后没有被删除
系统在退出时就会给出一个读内存出错的异常~
^_^
qr4.query1.SQL.Clear;
qr4.Query1.SQL.Add('create table tmp as select type_name,calling_nbr,sum(charge/100) charge from imp_call_ticket_total@phs117 a,call_type_info b');
qr4.Query1.SQL.Add('where a.CALLING_NBR between :edit1 and :edit2 and a.ticket_type=b.ticket_type and a.start_time between :datetimepicker3 and :datetimepicker4 ');
qr4.Query1.SQL.Add(' group by calling_nbr,type_name');
qr4.query1.ParamByName('edit1').AsString:=form1.edit1.Text;
qr4.query1.ParamByName('edit2').AsString:=form1.edit2.Text;
qr4.query1.ParamByName('datetimepicker3').AsDate:=form1.datetimepicker3.Date;
qr4.query1.ParamByName('datetimepicker4').AsDate:=form1.datetimepicker4.Date;
qr4.query1.execsql;qr4.query1.Close;
qr4.query1.SQL.Clear;
qr4.Query1.sql.Add('select calling_nbr,(select charge from tmp where type_name=*) as ch,(select charge from tmp where type_name=*) as sh,');
qr4.Query1.SQL.add('(select charge from tmp where type_name=*) as yz,(select charge from tmp where type_name=*) as qt,');
qr4.Query1.SQL.Add('(select sum(charge) from tmp) as hj from tmp group by calling_nbr');
qr4.query1.open;
qr4.Preview;在报表的from的onclose事件中写下面的代码
qr4.query1.Close;
qr4.query1.SQL.Clear;
qr4.Query1.SQL.add('drop table tmp'); //你把表tmp删除了
qr4.query1.Prepare;
qr4.query1.execsql;
qr4.Query1.sql.Add('select calling_nbr,(select charge from tmp where type_name=*) as ch,(select charge from tmp where type_name=*) as sh,');
qr4.Query1.SQL.add('(select charge from tmp where type_name=*) as yz,(select charge from tmp where type_name=*) as qt,');
qr4.Query1.SQL.Add('(select sum(charge) from tmp) as hj from tmp group by calling_nbr');
qr4.query1.sql.clear; //你把sql语句清除了,上面查询没有执行qr4.Query1.SQL.add('drop table tmp'); //你把表tmp删除了
qr4.query1.Prepare;
qr4.query1.Open;
qr4.query1.Active:=true;
qr4.query1.Open;
qr4.Preview;
你最好用两个QUERY控件来做,这样比较不会出问题
555555
同时请问execsql是什么意思
execsql
用来执行如:insert ,update,delete 等无需返回数据集的 sql语句
接个分!