想实现监控sql server中某个表的insert,update,delete操作
然后程序做出不同的反应。
想来想去没有效率太高的办法,不知能不能利用上sql server 自己带的triger? 有做过类似东西的近来讨论一下?
解决方案 »
- 如何实现主线程等待子线程执行完成后再继续往下执行,Delphi
- 昨天高中同学聚会,挺高兴的,来散散分
- idtcpclient readinteger 提示undeclared
- StringGrid如何實現滾動條移動時相應的文本框也一起移動?(即如何實現StringGrid的滾動條移動事件)
- 怎样用字符串(如000111001)为系统分配权限?请看这部分不完全的代码,请更正
- 如何自动把焦点内容全部选定
- VC入门:几个小问题
- “TEXT EXCEEDS MEMO CAPACITY”错误
- 我的祝福帮到孩子了吗?
- 如何得到自已編寫的組件﹐所在的目錄﹐我想載入一些外部文件
- 用过devExpress的朋友请进来交流一下,有没有遇到过这个bug
- DevExpress QuantumGrid 能同时处理两张表的内容吗?(只修改一张表的内容)
mytable的内容如下:
更改时间、更改类别(insert/update/delete)、更改内容、是否已经处理等列
2.系统不断查询mytable表中记录的变化情况
create tritter ti_TableName ....
create trigger ti_TableName ....
用触发器我也知道,但那只是sql server本身知道了有数据变化
关键在delphi 中怎么样怎么捕捉这个触发信息?
to hhytsoft(雨中独行) :
你说“系统不断查询mytable表中记录的变化情况”,这样子消耗的资源也太大了吧
而且无法实时
最好的方法是数据变化的时候能主动触发程序动作
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你这个“前台”“后台”分别指的是什么?
调用外部ole对象中的method
我试一下先,
不过还有没有别的办法呢?
declare @intRet int
declare @intRetCode int
declare @intRetCode1 int
DECLARE @strErr varchar (255)
DECLARE @strErr1 varchar (255)
declare @strTemp char(100)
/* 首先创建Com 实例 */
exec @intRetCode = sp_OACreate 'Funclass.cls_string', @i out
IF @intRetCode <> 0
BEGIN
/* 创建实例 失败 */
EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
PRINT '创建实例失败,失败的原因是:' + @strErr + ' ' + @strErr1
RETURN
END
/* 创建成功,开始调用 */
EXEC @intRetCode1 = sp_OAMethod @i,'f_str_EncryptStr',@strTemp OUT,@source,@key
IF @intRetCode1 <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
EXEC sp_OADestroy @i
RETURN
END
--PRINT '返回的结果是' + @strTemp
select @strout = @strtemp
exec sp_OADestroy @i
你说“系统不断查询mytable表中记录的变化情况”,这样子消耗的资源也太大了吧
而且无法实时
最好的方法是数据变化的时候能主动触发程序动作如果只是简单的对数据库进行操作,那你直接可以在触发器中操作。