主要思路是这样的:开票前用户的交费状态为未交费,等收过钱开票后,使用户的交费状态为已交费。代码如下:
Userinf 为表名,UserSta为字段名,表示用户的交费状态procedure TKP.BtnPrnClick(Sender: TObject);
begin
ServMainForm.Query1.Close;
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Update Userinf Set UserSta= '''+'是'+''' Where UserNum = 123456'); //更新用户123456的交费状态
ServMainForm.Query1.Open;
ServMainForm.RMReport4.PrintReport; //打印报表
end;但执行时发生异常,提示‘当前提供程序不支持同单一执行返回多个记录集’和'Query1: CommandText does not return a result set'。这是怎么回事?该如何解决呢?谢谢!
Userinf 为表名,UserSta为字段名,表示用户的交费状态procedure TKP.BtnPrnClick(Sender: TObject);
begin
ServMainForm.Query1.Close;
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Update Userinf Set UserSta= '''+'是'+''' Where UserNum = 123456'); //更新用户123456的交费状态
ServMainForm.Query1.Open;
ServMainForm.RMReport4.PrintReport; //打印报表
end;但执行时发生异常,提示‘当前提供程序不支持同单一执行返回多个记录集’和'Query1: CommandText does not return a result set'。这是怎么回事?该如何解决呢?谢谢!
这时的 Query1 要用 Execute 执行ServMainForm.RMReport4.PrintReport; 这句我不明白
begin
ServMainForm.Query1.Close;
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Update Userinf Set UserSta= '''+'是'+''' Where UserNum = 123456'); //更新用户123456的交费状态
ServMainForm.Query1.ExcecSQL;
ServMainForm.RMReport4.PrintReport; //打印报表
end;
ServMainForm.Query1.ExcecSQL;
在ServMainForm.RMReport4.PrintReport之前插入:
ServMainForm.Query1.Close;
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Select * from Userinf where UserNum = 123456');
ServMainForm.Query1.Open;
ServMainForm.RMReport4.Print; //打印
//ServMainForm.RMReport4.Preview//预览
begin
ServMainForm.Query1.Close;
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Update Userinf Set UserSta= ''是'' Where UserNum = 123456'); //更新用户123456的交费状态
ServMainForm.Query1.ExecSQL;
ServMainForm.RMReport4.PrintReport; //打印报表
end;
ServMainForm.Query1.execsql;
//只有有数据集返回时才用到OPEN.其它的如INSERT ,UPDATE,DELETE都是用EXECSQL
当然没有数据集(set)返回,若你需要返回数据集,请用SELECT语句并用
active:=true;来返回数据集,否则程序只是影响数据库,但并不返回结果
ServMainForm.Query1.sql.clear;
ServMainForm.Query1.sql.Add('Update Userinf Set UserSta= '''+'是'+''' Where UserNum = '+Trim(Edit2.text)); //更新状态
ServMainForm.Query1.ExecSQL;
ServMainForm.RMReport4.PrintReport; //打印票据上面的代码依旧有问题。
我只是想使用 ReportMachine 打印完报表后,把用户的交费状态改为否。仅此而已。诸位谁能提供一些建议?分不够可以再加!只要问题能解决,分不是问题。帮忙看看吧,各位老大,谢谢!
ServMainForm.Query1.ExecSQL;