--------- 如表已存在,先删除--if exists(select 1 from sysobjects where name='S_LOG' and Xtype='U') drop table S_LOG ;go
--------- 建新表和主键create table S_LOG ( P_ID int IDENTITY NOT NULL, --ID C_UID varchar(20) NULL, --编号姓名 C_DDTT varchar(20) NULL, --日期时间 C_ACT varchar(20) NULL, --动作 C_SQL varchar(2048) NULL, --SQL语句 CONSTRAINT PK_LOG PRIMARY KEY CLUSTERED (P_ID)) ;
//函数名: none gf_log(string s_sql)// 参数: string s_sql //sql语句 // 调用: datawindow SQLPreview script:// gf_log(this.GetSQLPreview())// pb高版本可用// gf_log(sqlsyntax)// 功能:记录用户操作日志// 原创: Susue 2003-12-14string ls_act //动作if pos(s_sql,'SELECT') > 0 then returnchoose case left(s_sql,6) case 'INSERT' ls_act = '插入' case 'UPDATE' ls_act = '更新' case 'DELETE' ls_act = '删除'end choose
string ls_uid,ls_ddtt //用户id,系统时间ls_uid = gs_uid + gs_namels_ddtt = gf_datetime() //自定义取得系统时间函数insert into s_log (c_uid,c_ddtt,c_act,c_sql) values (:ls_uid,:ls_ddtt,:ls_act,:s_sql);
调用: 在datawindow 的SQLPreview脚本中 写gf_log(sqlsyntax)即可
缺点: 如果脚本中有嵌入SQL语句,不能记录,