//要设计一个服务器端JAVA程序
//在服务器端嵌入卷游标cur
//并在数据库中创建
//触发器IDU和一个辅助表TABLE2
//当增删改TABLE1时触发器将时间存入TABLE2
//服务器端通过不停比较最后一个时间是否改变判断是否有人增删改
//如有在文本框中显示“有人增删改表TABLE1”
//下面是有关的代码段:
//在数据库中创建IDU触发器
//TABLE1是要监视的表
//TABLE2是数据库中用于记录增删改日期的表
CREATE TREGGER IDU
ON TABLE1
AFTER INSERT,DELETE,UPDATE
AS
INSERT INTO TABLE2 (DATE) VALUES GETDATE()
GO
//在JAVA服务器端程序的主窗口加入下列代码
//定义共享变量
EXEC SQL BEGIN DECLARE SECTION;
String oldDate,newDate;
EXEC SQL END DECLARE SECTION;
//定义指向TABLE2的卷游标cur
EXEC SQL DECLARE cur SCROLL CURSOR FOR
SELECT DATE
FROM TABLE2
END_EXEC;
//打开卷游标cur,每打开一次
//执行一次卷游标cur的SELECT语句
EXEC SQL OPEN cur END_EXEC;
//推进卷游标到TABLE2的
//最后一行(LAST)并把DATE赋给
//oldDate为共享变量
EXEC SQL LAST FROM cur INTO :oldDate END_EXEC;
//在JAVA服务器 端程序的服务器线程的run()方法中加入下列代码
while(true){
EXEC SQL OPEN cur;
END_EXEC
EXEC SQL LAST FROM cur INTO :newDate;
END_EXEC
if(!(newDate.equals(oldDate)){
text.setText("有人增删改了解表TABLE1");
oldDate=newDate.clone();
}
}
EXEC SQL CLOSE cur END_EXEC;