📄 submitresperrorprocunit.pas
字号:
unit SubmitRespErrorProcUnit;
interface
uses
Classes,DB,ADODB,SysUtils,CMPP_Protocol2;
type
SubmitRespErrorProc = class(TThread)
private
{ Private declarations }
ADOConn:TADOConnection;
SubmitID,ErrorCode : integer;
protected
procedure Execute; override;
procedure ErrorRecordProc();
public
constructor Create( CreateSuspended: Boolean; ADOConnection_X :TADOConnection;ASubmitID,AErrorCode:integer );
destructor Destroy; override;
end;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure SubmitRespErrorProc.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ SubmitRespErrorProc }
constructor SubmitRespErrorProc.Create( CreateSuspended: Boolean; ADOConnection_X :TADOConnection;ASubmitID,AErrorCode:integer );
begin
self.ADOConn := ADOConnection_X;
self.SubmitID := ASubmitID;
self.ErrorCode := AErrorCode;
inherited Create( CreateSuspended );
end;
destructor SubmitRespErrorProc.Destroy;
begin
inherited;
end;
procedure SubmitRespErrorProc.ErrorRecordProc();
var
Query_Get,Query_Put :TADOQuery;
begin
try
Query_Get := TADOQuery.Create(nil);
Query_Put := TADOQuery.Create(nil);
Query_Get.Connection := self.ADOConn;
Query_Put.Connection := self.ADOConn;
Query_Get.SQL.Text := 'SELECT * FROM CMPP2_Submit WHERE MT_SequenceID = ' + IntToStr(self.SubmitID);
Query_Get.Open;
Query_Put.SQL.Text := 'SELECT TOP 0 * FROM CMPP2_Submit_Error';
Query_Put.Open;
if Query_Get.RecordCount > 0 then
begin
Query_Put.Insert;
Query_Put.FieldByName('MT_SequenceID').AsInteger := Query_Get.FieldByName('MT_SequenceID').AsInteger;
Query_Put.FieldByName('MT_SendCount').AsInteger := Query_Get.FieldByName('MT_SendCount').AsInteger;
Query_Put.FieldByName('MT_BaseFetchFlag').AsInteger := Query_Get.FieldByName('MT_BaseFetchFlag').AsInteger;
Query_Put.FieldByName('MT_Date').AsDateTime := Query_Get.FieldByName('MT_Date').AsDateTime;
Query_Put.FieldByName('Msg_Id').AsInteger := Query_Get.FieldByName('Msg_Id').AsInteger;
Query_Put.FieldByName('Pk_total').AsInteger := Query_Get.FieldByName('Pk_total').AsInteger;
Query_Put.FieldByName('Pk_number').AsInteger := Query_Get.FieldByName('Pk_number').AsInteger;
Query_Put.FieldByName('Registered_Delivery').AsInteger := Query_Get.FieldByName('Registered_Delivery').AsInteger;
Query_Put.FieldByName('Msg_level').AsInteger := Query_Get.FieldByName('Msg_level').AsInteger;
Query_Put.FieldByName('Service_Id').AsString := Query_Get.FieldByName('Service_Id').AsString;
Query_Put.FieldByName('Fee_UserType').AsInteger := Query_Get.FieldByName('Fee_UserType').AsInteger;
Query_Put.FieldByName('Fee_terminal_Id').AsString := Query_Get.FieldByName('Fee_terminal_Id').AsString;
Query_Put.FieldByName('TP_pId').AsInteger := Query_Get.FieldByName('TP_pId').AsInteger;
Query_Put.FieldByName('TP_udhi').AsInteger := Query_Get.FieldByName('TP_udhi').AsInteger;
Query_Put.FieldByName('Msg_Fmt').AsInteger := Query_Get.FieldByName('Msg_Fmt').AsInteger;
Query_Put.FieldByName('Msg_src').AsString := Query_Get.FieldByName('Msg_src').AsString;
Query_Put.FieldByName('FeeType').AsString := Query_Get.FieldByName('FeeType').AsString;
Query_Put.FieldByName('FeeCode').AsString := Query_Get.FieldByName('FeeCode').AsString;
Query_Put.FieldByName('ValId_Time').AsString := Query_Get.FieldByName('ValId_Time').AsString;
Query_Put.FieldByName('At_Time').AsString := Query_Get.FieldByName('At_Time').AsString;
Query_Put.FieldByName('Src_Id').AsString := Query_Get.FieldByName('Src_Id').AsString;
Query_Put.FieldByName('Dest_terminal_Id').AsString := Query_Get.FieldByName('Dest_terminal_Id').AsString;
Query_Put.FieldByName('Msg_Content').AsString := Query_Get.FieldByName('Msg_Content').AsString;
Query_Put.FieldByName('ErrorCode').AsInteger := self.ErrorCode;
Query_Put.FieldByName('ErrorInfo').AsString := CMPP_Protocol2.GET_CMPP_SUBMIT_RESP_ERRORINFO(self.ErrorCode);
Query_Put.Post;
end;
finally
FreeAndNil(Query_Get);
FreeAndNil(Query_Put);
FreeOnTerminate := True;
end;
end;
procedure SubmitRespErrorProc.Execute;
begin
FreeOnTerminate := True;
self.ErrorRecordProc;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -