📄 updinvtd.pas
字号:
unit updINVTD;
interface
uses sysUtils, dbtables, db, bde, updBase,CONSTDEF;
type
TUpdateINVTD = class(TBaseUpdateUnit)
private
function update_byAll(xSource: Variant): Boolean;
public
function update(xSource: Variant; xAction: string;
var xMsg: variant; xOtherVar: variant; xUserData: variant): Boolean;
end;
implementation
uses LibStrs;
function TUpdateINVTD.update(xSource: Variant; xAction: string;
var xMsg: variant; xOtherVar: variant; xUserData: variant): Boolean;
begin
self.saveVar(xAction, xOtherVar, xUserData);
try
self.setDBname(xSource[0]);
Result := update_byAll(xSource)
finally
self.Query1.close;
end;
xMsg := self.Msg;
end;
function TUpdateINVTD.update_byAll(xSource: Variant): Boolean;
var
mExist: Boolean;
begin
Result := True;
self.Msg[0] := 'skip';
self.Msg[1] := 'INVTD';
self.Msg[2] := Format('%s %s %s %s',
[xSource[1], xSource[3], xSource[4],xSource[5]]);
try
if (self.Action = 'A') then
begin
with self.Query1 do
begin
close;
SQL.clear;
RequestLive := False;
SQL.add('select * from $$INVTD');
SQL.add(' where TD001=:TD001 and TD003=:TD003 and TD004=:TD004 and TD005=:TD005');
ParamByName('TD001').asString := xSource[1];
ParamByName('TD003').asString := xSource[3];
ParamByName('TD004').asString := xSource[4];
ParamByName('TD005').asString := xSource[5];
open;
first;
mExist := not eof;
if (not mExist) then
begin
close;
SQL.clear;
RequestLive := False;
SQL.add('INSERT INTO $$INVTD (TD001 ,TD002 ,TD003 ,TD004 ,TD005 ,TD006,TD007,TD008 ,TD009 ,TD010 , ');
SQL.add(' TD011 ,TD012 ,TD013 ,COMPANY ,CREATOR ,USR_GROUP ,CREATE_DATE ,FLAG ) ');
SQL.add('VALUES (:TD001 ,:TD002 ,:TD003 ,:TD004 ,:TD005 ,:TD006,:TD007,:TD008 ,:TD009 ,:TD010 , ');
SQL.add(' :TD011 ,:TD012 ,:TD013 ,:COMPANY ,:CREATOR ,:USR_GROUP ,:CREATE_DATE ,1) ');
ParamByName('TD001').asString := xSource[1];
ParamByName('TD002').asString := xSource[2];
ParamByName('TD003').asString := xSource[3];
if SQLtype=dtORACLE then
ParamByName('TD004').asString := iif(xSource[4]='','********************',xSource[4])
else
ParamByName('TD004').asString := xSource[4];
ParamByName('TD005').asString := xSource[5];
ParamByName('TD006').asFloat := xSource[6];
ParamByName('TD007').asFloat := xSource[7];
ParamByName('TD008').asFloat := xSource[8];
ParamByName('TD009').asString := xSource[9];
ParamByName('TD010').asString := xSource[10];
ParamByName('TD011').asString := xSource[11];
ParamByName('TD012').asString := xSource[12];
ParamByName('TD013').asString := xSource[13];
ParamByName('COMPANY').asString :=self.FCOMPANY;
ParamByName('CREATOR').asString :=self.FCREATOR;
ParamByName('USR_GROUP').asString :=self.FUSR_GROUP;
ParamByName('CREATE_DATE').asString :=self.FCREATE_DATE;
try
TransSqlCommand(Query1);
EXECSQL;
except
on E: EDBEngineError do
begin
if E.Errors[0].ErrorCode <> DBIERR_KEYVIOL then raise
else //糶
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -