可能是我没说清楚。我要实时监测 A机的SQL Server中一个表中是否存在记录。
我现在采用的是用线程不停的监测这个表,Open 表
看看有没记录
Close 表我总感觉这样做不好,有人说用触发器,我没搞清楚用触发器来干什么?
我现在采用的是用线程不停的监测这个表,Open 表
看看有没记录
Close 表我总感觉这样做不好,有人说用触发器,我没搞清楚用触发器来干什么?
解决方案 »
- PB源代码转Delphi!谢谢
- 在STRINGGRID中绑定了一个日期控件,如何清空日期?
- 急~! 高分求解:delphi 和 水晶报表的问题
- 如何实现串口的实时接受
- 如何将SQL数据导出到BDF 不用BATCHMOVE 那个太慢了 最后有原码 谢谢各位了~
- Delphi + MySQL , 一个奇怪的查询问题 , 具体情况请进来看看.
- 要分的来拿哦!
- ********一个自定义控件的问题*********
- 又是一个菜鸟问题,知道一个进程的HANDLE,怎样得到它的ProcessId?
- 为什麽有时install Packages后会提示,原码已修改是否保存?版本没有转换!
- 请问我在TREEVIEW中动态增加的树 在我程序关闭后就消失了 不知道怎样把这个树保存下来啊? 100分相送!
- 如何查询某年到某年中的某月到某月的记录?
它是存储过程的一种,运行在服务端,都是使用SQL语言编写,使用触发器是你最佳的选择,具体如何写触发器请看下相关书籍
A01结构如下
人员编号 人员姓名 性别
001 王小梦 女
002 盛小丽 女b01结构
人员编号,姓名,时间(getdata())
CREATE TRIGGER ins_A01 ON A01
FOR INSERT
AS
if exists (select * from sysobjects where Name='B01' and Type='U')
begin
Insert into B01(人员编号, 人员姓名)
select 人员编号,姓名
from Inserted
endGO这个东东的意思是将a01表中只要有记录我就插进b01
现在整理下思路,假设你要检测的是A01表,每次新进记录,将a01表中的人员编号插进b01
b01中的时间是系统当前时间,我在查询的时候,我直接调用b01就知道A01是否新增加了记录,什么时候新增的记录。
这样做我不监视A01表,但仍然要监测b01表啊。
那么监测b01表时,不是还要不停的打开,关闭表操作么?
我就是想监测表中是否存在记录,但又不想这样的操作。
open 表
查一下有没记录
close 表
无论你采用什么方式,都必须要在delphi调用的时候查看下该表的记录.
我的这个方式是你只要在a01中有记录,即在b01中留下痕迹.
你想知道是否有记录,只要查下b01就可以了.
当然你想看是新增了记录还是删除了记录.
可以再加个字段,操作字段:字段值可以为---新增(0)\删除(1)\修改(2),对这个字段的操作,你可以写在触发器中.
明白了没?哥哥?
这样,你的客户端程序就直接扫描这一个表就可以了(状态更改则有新数据)。如果你直接扫描你要监控的表也可以,但是随着时间增加,你这个业务表中的数据会不断的增加(在数据量小时你close,open可以没有问题,但数据达到一定量时速度必然会减慢,当然你可以在这个表中加状态控制,索引等)。
还有:利用sqlserver的系统内存储过程可以发邮件等操作,记得以前公司的数据库管理员这样做过,像错误报警等 都通过sqlserver来进行处理,具体实现方法不太清楚,但你可以到SQL版中问一下,会有高手帮你的。