|
unit JHDCT;
interface
uses
Business.System, Business.Model, Business.Forms, Business.Data;
type
TJHDCT = class(FJ_1_TYLB_KPJL.TMAINFORM)
ZRKButton: TToolButton;
Query: TQuery;
DataGrid1JHDH: TDataGridColumn;
DataGrid1RQ: TDataGridColumn;
DataGrid1JHLX: TDataGridColumn;
DataGrid1FWDW: TDataGridColumn;
DataGrid1SWDW: TDataGridColumn;
DataGrid1WCQK: TDataGridColumn;
DataGrid1BZ: TDataGridColumn;
FuncBroker1: TFuncBroker;
DataSetJHDC: TDataSetBroker;
procedure ZRKButtonClick(Sender: TObject);
private
{private declarations}
public
{public declarations}
rkdh : String;
end;
implementation
procedure TJHDCT.ZRKButtonClick(Sender: TObject);
var
lTransactionHandle : TTransactionHandle; //声明一个事务句柄变量
jhdh:String;
//rkdh:String;
lBizURL:TBizURL;
lParam :TBizParam;
lContextCurrent: TContextCurrent;
begin
Inherited;
if(dsMain.DataSet.RecordCount>0) then (设置断点。。。。。。。。。)
begin
if(jsDialogs.MsgBox(0,'已经存在历史数据,是否重新提取数据?','询问',1)=2) then //调用对话框
begin
exit;
end;
end;
With Query.Connection.Transaction do (报错行。。。。。。。。)
begin
Try
lTransactionHandle := Start(true); //开启事务
Query.CommandText := 'delete from RKDCB where rkdh='''+rkdh+'''';
Query.Execute;
Query.CommandText:='delete from RKDZB where rkdh='''+rkdh+'''';
Query.Execute;
//插入数据
Query.CommandText:= 'insert into RKDCB select '''+rkdh+''',JH.wzbm,JH.WZMC,JH.JLDW,JH.SL,JH.DJ,JH.JE,JH.BZ from JHDCB JH where JH.jhdh='''+jhdh+'''';
Query.Execute;
Query.CommandText:= 'insert into RKDZB select '''+rkdh+''',jhd.jhdh,jhd.rq,jhd.fwdw,jhd.swdw,jhd.bz from JHDB jhd where jhd.jhdh='''+jhdh+'''';
Query.Execute;
Commit(lTransactionHandle); //提交事务
//对异常进行捕获
Except
jsDialogs.ShowMsg('数据提取过程中发生错误,请重试','错误');
Rollback(lTransactionHandle); //回滚事务
end;
self.Close;
//刷新数据集
//dsMain.DataSet.Refresh;
end;
end;
end.
我把断点设置在if语句行,执行到with行时就保存,弹出一个对话框,标题是“提醒”,内容看不见,机子就死掉了,只能强制将进程给关闭掉。 |
|