procedure TMAINFORM.Button3Click(Sender: TObject);
const
DeleteSQLText = 'DELETE FROM CLYHB WHERE (CLHM = :TOCLHM)';
// InsertSQLText = 'INSERT INTO CLYHB (CLHM,ZGZL,YH,CJRY,CJRQ,XGRY,XGRQ)'+
// 'SELECT :TOCLHM AS CLHM,ZGZL,YH,:CJRY as CJRY,:CJRQ as CJRQ,:XGRY as XGRY,:XGRQ as XGRQ FROM CLYHB WHERE (CLHM = :CLHM)';
InsertSQLText = 'INSERT INTO CLYHB (CLHM,ZGZL,YH,CJRY,CJRQ)'+
'SELECT :TOCLHM AS CLHM,ZGZL,YH,:CJRY as CJRY,:CJRQ as CJRQ FROM CLYHB WHERE (CLHM = :CLHM)';
var
lQuery: Business.Data.TQuery;
lContextCurrent: TContextCurrent;
lParam: TBizParam;
begin
lContextCurrent := TContextCurrent.Create(Self.Context);
lQuery := Business.Data.TQuery.Create(nil);
with lQuery do
try
lParam := SystemUtils.TContextUtils.GetParam(Self.Context,'Biz:\WLXTXT\GGCS.ParamGroup','FWQRQSJ');
ConnectionString := 'DATABASEURL=Biz:\WLXTXT\XTSJK.DATABASE';
Close;
CommandText := DeleteSQLText;
Params.ParamByName('TOCLHM').AsString := MaskEdit2.Text;
Execute;
CommandText := InsertSQLText;
Params.ParamByName('CLHM').AsString := MaskEdit1.Text;
Params.ParamByName('TOCLHM').AsString := MaskEdit2.Text;
Params.ParamByName('CJRY').AsString := lContextCurrent.Operator.DisplayName;
Params.ParamByName('CJRQ').AsDateTime := Variants.VarToDateTime(lParam.Value);
//EDIT1.Text:=Variants.VarToStr(SystemUtils.TContextUtils.GetParam(Self.Context,'Biz:\WLXTXT\GGCS.ParamGroup','FWQRQSJ'));
//Params.ParamByName('XGRY').AsString := lContextCurrent.Operator.DisplayName;
//Params.ParamByName('XGRQ').AsDateTime := Business.Data.SysSrv.SysService.Time;
Execute;
DataSetCLYHSJJ.DataSet.Refresh;
finally
lContextCurrent.Free;
lQuery.Free;
end;
end;
当去删除复制的时出错,提示数据已补人修改!重启平台,数据库,电脑也是一样的情况!
用 InsertSQLText = 'INSERT INTO CLYHB (CLHM,ZGZL,YH,CJRY,CJRQ)'+
'SELECT :TOCLHM AS CLHM,ZGZL,YH,:CJRY as CJRY,getdate() as CJRQ FROM CLYHB WHERE (CLHM = :CLHM)';
也是一样的情况!后来对日期的控制采用
SysUtils.FormatDateTime('yyyy-mm-dd H:mm:ss',Business.Data.SysSrv.SysService.Time);
只是不清楚为何会出现这种情况,解释后结帖! |