可不可以/怎样 在三层数据库应用的中间层 为底层数据库设置触发器 ===============如果有满意的答案,再加一百分。

时间:2021-01-24 05:06:30
现在要编一个三层数据库应用程序,
其中有一步是:遍历各种内网上的数据库的每个表,作索引,

做好索引后需要监视每个数据库中每个表中每条记录的改动,
一有改动就记录下来哪一条被改动了。

可以在安装数据库的机器上设置触发器,
但是这样要一一到每台机器上为每个表写一个触发器执行程序,不现实,

能不能在中间层靠编程完成这个工作,不用到数据库那端一一写呢?

或者谁有监视数据库中每条记录是否被改动的方法?

11 个解决方案

#1


冷清啊,难道没有办法吗?

#2


......

#3


痛苦啊!!

#4


准备强制结贴,请大家提供有效答案

#5


中间层连了好几个服务器,每个服务器都有不和一个数据库,
恐怕是件麻烦事.

ADO元件都有下面类似的事件.
void __fastcall TForm1::ADODataSet1RecordChangeComplete(
      TCustomADODataSet *DataSet, const TEventReason Reason,
      const int RecordCount, const Error *Error, TEventStatus &EventStatus)
{
}

可以参考一下.

#6


触发器只能在固定表上使用
你要做的,好像没办法!

#7


串个门

#8


监视数据库最好还是用数据库本身的机制,用外部的程序监视不外乎扫描表,感觉更差
不如写个程序给数据库的表加触发器:)

#9


同意: lvjack(追逐梦想) ( ) 信誉:125 的意见。但是给表写触发,不可避免要大大降低效率了,有可能最后服务器会惨不能用。

#10


楼主leonatcs (LeonKennedy)(每天逛一逛csdn,有益身心健康。) 
不是“每天逛一逛csdn”么,怎么这么久还没有出现??

#11


不理想,不理想,去问飞雪连天笑老大算了。

#1


冷清啊,难道没有办法吗?

#2


......

#3


痛苦啊!!

#4


准备强制结贴,请大家提供有效答案

#5


中间层连了好几个服务器,每个服务器都有不和一个数据库,
恐怕是件麻烦事.

ADO元件都有下面类似的事件.
void __fastcall TForm1::ADODataSet1RecordChangeComplete(
      TCustomADODataSet *DataSet, const TEventReason Reason,
      const int RecordCount, const Error *Error, TEventStatus &EventStatus)
{
}

可以参考一下.

#6


触发器只能在固定表上使用
你要做的,好像没办法!

#7


串个门

#8


监视数据库最好还是用数据库本身的机制,用外部的程序监视不外乎扫描表,感觉更差
不如写个程序给数据库的表加触发器:)

#9


同意: lvjack(追逐梦想) ( ) 信誉:125 的意见。但是给表写触发,不可避免要大大降低效率了,有可能最后服务器会惨不能用。

#10


楼主leonatcs (LeonKennedy)(每天逛一逛csdn,有益身心健康。) 
不是“每天逛一逛csdn”么,怎么这么久还没有出现??

#11


不理想,不理想,去问飞雪连天笑老大算了。