K3 给K+增加日志(获取机器名和IP地址)

K3有个外挂系统是K+,可以对数据进行修改,但是没有日志功能,谁修改了什么、什么时候修改的不知道,借鉴t_log做一个日志

1、先建一个日志表

CREATE TABLE [dbo].[kplus_log](
	[FlogID] [int] IDENTITY(1,1) NOT NULL,
	[FDate] [datetime] NOT NULL,
	[FDescription] [nvarchar](200) NULL,
	[FMachineName] [varchar](50) NULL,
	[FIPAddress] [nvarchar](30) NULL
) ON [PRIMARY]

2、再修改ICMO_UPDATE触发器,增加以下代码

--------------------------------------------------------
----增加判断,当用K+“自定义图纸接收登记表”进行修改时,将日志存到KPLUS_LOG中去
 declare @CurrentMachineName as varchar(50);
 declare @IP  as varchar(30);
 declare @Description as varchar(250);
 
--当实际到货日期变更时进行记录
if update(FHeadSelfJ01110)
begin
 --获取操作的IP 和机器名
 SELECT   @IP=convert(varchar(30),CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') )   , @CurrentMachineName=HOST_NAME();
---获取实际到货日期的值 
select @Description ='任务单'+ FBillNo +'实际到货日期变更为' +CONVERT(varchar(30),FHeadSelfJ01110,111 ) from     INSERTED

	if  @Description<>'' 
	begin
	INSERT INTO kplus_log (FDate,FDescription,FMachineName,FIPAddress) 
	VALUES (getdate(), @Description,@CurrentMachineName,@IP)
	end 
end 

--当申请入库日期变更时进行记录
if update(FHeadSelfJ01111)
begin
 --获取操作的IP 和机器名
 SELECT   @IP=convert(varchar(30),CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') )   , @CurrentMachineName=HOST_NAME();

---获取实际到货日期的值 
select @Description ='任务单'+ FBillNo + '申请入库日期变更为' + CONVERT(varchar(30),FHeadSelfJ01111,111 ) from     INSERTED
	if  @Description<>'' 
	begin
	INSERT INTO kplus_log (FDate,FDescription,FMachineName,FIPAddress) 
	VALUES (getdate(), @Description,@CurrentMachineName,@IP)
	end 
end 

效果
在这里插入图片描述

本来想加上K3用户名的,但不知道这个东西如何在SQL中可以直接获取,有知道的大侠可以告知一下。

还有这个还是有点问题,如果修改是通过其他触发器变更的,是不会记录下来的,只有通过程序变更才能记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值