问题是:
当一台客户机上运行的程序对数据库进行了增删改的操作
在主机上运行的程序怎么能马上知道这一变化
我原来用winsock通知主机
但后来觉得不好,有没有好方法啊
谢谢
45 个解决方案
#1
在數據庫中增加一
user_log表.
存放
用戶名和機器ip,操作時間,操作事件等信息.
在每條SQL語句後追加一句insert該表的SQL語句/
然後用winsock通知主机去
user_log中重新檢索.
個人意見,僅供參考.
user_log表.
存放
用戶名和機器ip,操作時間,操作事件等信息.
在每條SQL語句後追加一句insert該表的SQL語句/
然後用winsock通知主机去
user_log中重新檢索.
個人意見,僅供參考.
#2
怎么不用ADO啊????
#3
fsb_12345(myself)
ado怎么处理啊
ado怎么处理啊
#4
up
#5
ADO 可以得到動態的紀錄據.
請使用ADO.
請使用ADO.
#6
zeng_zhh(紫河)
能说具体点吗
能说具体点吗
#7
刷新不行吗,定时刷新
ado本身也支持也支持该特性。
ado本身也支持也支持该特性。
#8
触发器
#9
我手里的软件就是这样的。但客户端数据库更改后。要立刻发送到服务器上。
#10
发送到什么样的服务器?需要提供什么样的消息呢?如果可以是触发器是最好的方法了。
#11
lzy5042(老山)
是怎么实现的
我的程序大概是这样的
客户端能够修改数据库中的某些表,服务器端的程序在客户端修改记录后要立刻显示
我希望的是服务器端作一个监控的程序,当客户端修改数据库时,服务器端刷新,而不是时时刷新
有什么好办法
谢谢
是怎么实现的
我的程序大概是这样的
客户端能够修改数据库中的某些表,服务器端的程序在客户端修改记录后要立刻显示
我希望的是服务器端作一个监控的程序,当客户端修改数据库时,服务器端刷新,而不是时时刷新
有什么好办法
谢谢
#12
简言之
假设这个程序是用于登记客人访问记录的
在客户端,客人来访时在这里登记,于是就修改了数据库中的某个表
服务器端显示的是所有来访的记录,当客户端修改了记录,服务器端要同步显示那个已修改的表
但最后不是定时刷新,这样系统资源消耗太大
就是这个意思
假设这个程序是用于登记客人访问记录的
在客户端,客人来访时在这里登记,于是就修改了数据库中的某个表
服务器端显示的是所有来访的记录,当客户端修改了记录,服务器端要同步显示那个已修改的表
但最后不是定时刷新,这样系统资源消耗太大
就是这个意思
#13
我的程序正在修改中。我这里是手工发送的。只是加上一个临时的数据库用来进行判断有无新的数据。程序只发送新的数据。
你那个可否这样(说的不对可不要用板砖打我:))
因为客户修改程序后必须进行确认才能将数据存入数据库中。就再那个保存或更新按钮中加上校验河发送的代码!!
你那个可否这样(说的不对可不要用板砖打我:))
因为客户修改程序后必须进行确认才能将数据存入数据库中。就再那个保存或更新按钮中加上校验河发送的代码!!
#14
我做过一个开发自用的小程序,大概的意思是有开发人员和调试人员,调试人员可能要经常调试出来一些问题,这时可以设定开关是否在调出问题后通知开发人员,这个过程应该是和你的要求一样的,但我是用Winsock做的,除了通知开发人员之外,还可以互相对话,也是需要数据库支持。
#15
up
#16
up
#17
我想请教一下:你是怎么在客户端实现对数据库的修改的。用winsocket 还是 remotedata 控件
能告之大概实现方法吗。
能告之大概实现方法吗。
#18
ado
#19
不就是一个简单的C/S程序吗,使用Winsock创建一个服务器程序,客户端程序修改数据库后使用SendData通知服务器程序(应该包含客户端修改数据的一些信息,如:ID号等),服务器程序根据客户端的信息查询数据库显示不就行了
#20
感谢hydnoahark 。多谢指点!
#21
有那么费劲吗?把ADO的Recordset的CursorType改成Dynamic,
就可以看到其他用户对记录的增删,
如果要提示,那么可以在WillchangeRecord事件中写代码。
就可以看到其他用户对记录的增删,
如果要提示,那么可以在WillchangeRecord事件中写代码。
#22
你是0451的mail,哈尔滨的吗?
#23
我是不想用winsock
不知 bisc_sunny(中子)有没有成功的代码
我试过但不太好用
不知 bisc_sunny(中子)有没有成功的代码
我试过但不太好用
#24
你说的就是要三层结构。本来直接也可以这样做的。你的情况那就是要作一个服务程序专门处理数据库的访问,最好的方式使用DCOM,当然直接使用RPC和SOCKET也可以,就是作一个中间层管理一切对数据库的访问,不管有多少客户端,我曾经参与一个使用RPC的这样的项目,就是有一个服务处理数据库的访问,一个服务处理平衡负载,当然现在使用COM+是一个好的想法。三层架构的出现就是在开发中得到两层结构有很多方面的不足,所以一个中间层必须要有的啦,这样才可以是自己控制的更多。
#25
COM+中的订阅是一个非常不错的功能,灵活使用可以做到动态的更新(我使用了客户查询缓冲,没有使用临时订阅)
#26
Use Events CallBack when the record change!
#27
ado
#28
对,用COM+可以的,或是使用触发器。
#29
对不起啊,我对com不是太了解
有没有其他办法
有没有其他办法
#30
gz
#31
pushup
#32
up
#33
up
#34
我也想知道这个问题怎么解决,能不能将具体的方法讲一下啊!帮帮我们这些菜鸟好吗?
#35
数据库监控程序编写最好不要用winsock控件,你的客户端的程序应时刻判断服务器中的数据是否被修改过,而不是等待服务器发过来的信息。
要使服务器端的程序在客户端修改记录后要立刻显示,最好的方法莫过于sql server数据库端的
触发器和存储过程、数据表的协同工作。
基本算法:
可以先建一个新表(一个字段),表示你的数据库内容是否被更改过。然后
要使服务器端的程序在客户端修改记录后要立刻显示,最好的方法莫过于sql server数据库端的
触发器和存储过程、数据表的协同工作。
基本算法:
可以先建一个新表(一个字段),表示你的数据库内容是否被更改过。然后
#36
then what?
#37
!
#38
up
#39
push
#40
高手????
#41
你要做的是临视SQL数据库的程序,还是做个中间组件(COM+)??
试监视SQL的端口看看
试监视SQL的端口看看
#42
up
#43
我是用TimeStamp字段判断
#44
具体一点好吗
Brunhild()
Brunhild()
#45
如果你的客户机程序是对sqlserver直接操作而中间层只是对数据库进行监视的话,那么在sqlserver上做一个触发器是最好的-----有了改变立时激发该触发器;
如果你的客户机程序是将数据发送到中间层,而由中间层来对数据库操作的话,你的问题就不成问题了 :)
如果你的客户机程序是将数据发送到中间层,而由中间层来对数据库操作的话,你的问题就不成问题了 :)
#1
在數據庫中增加一
user_log表.
存放
用戶名和機器ip,操作時間,操作事件等信息.
在每條SQL語句後追加一句insert該表的SQL語句/
然後用winsock通知主机去
user_log中重新檢索.
個人意見,僅供參考.
user_log表.
存放
用戶名和機器ip,操作時間,操作事件等信息.
在每條SQL語句後追加一句insert該表的SQL語句/
然後用winsock通知主机去
user_log中重新檢索.
個人意見,僅供參考.
#2
怎么不用ADO啊????
#3
fsb_12345(myself)
ado怎么处理啊
ado怎么处理啊
#4
up
#5
ADO 可以得到動態的紀錄據.
請使用ADO.
請使用ADO.
#6
zeng_zhh(紫河)
能说具体点吗
能说具体点吗
#7
刷新不行吗,定时刷新
ado本身也支持也支持该特性。
ado本身也支持也支持该特性。
#8
触发器
#9
我手里的软件就是这样的。但客户端数据库更改后。要立刻发送到服务器上。
#10
发送到什么样的服务器?需要提供什么样的消息呢?如果可以是触发器是最好的方法了。
#11
lzy5042(老山)
是怎么实现的
我的程序大概是这样的
客户端能够修改数据库中的某些表,服务器端的程序在客户端修改记录后要立刻显示
我希望的是服务器端作一个监控的程序,当客户端修改数据库时,服务器端刷新,而不是时时刷新
有什么好办法
谢谢
是怎么实现的
我的程序大概是这样的
客户端能够修改数据库中的某些表,服务器端的程序在客户端修改记录后要立刻显示
我希望的是服务器端作一个监控的程序,当客户端修改数据库时,服务器端刷新,而不是时时刷新
有什么好办法
谢谢
#12
简言之
假设这个程序是用于登记客人访问记录的
在客户端,客人来访时在这里登记,于是就修改了数据库中的某个表
服务器端显示的是所有来访的记录,当客户端修改了记录,服务器端要同步显示那个已修改的表
但最后不是定时刷新,这样系统资源消耗太大
就是这个意思
假设这个程序是用于登记客人访问记录的
在客户端,客人来访时在这里登记,于是就修改了数据库中的某个表
服务器端显示的是所有来访的记录,当客户端修改了记录,服务器端要同步显示那个已修改的表
但最后不是定时刷新,这样系统资源消耗太大
就是这个意思
#13
我的程序正在修改中。我这里是手工发送的。只是加上一个临时的数据库用来进行判断有无新的数据。程序只发送新的数据。
你那个可否这样(说的不对可不要用板砖打我:))
因为客户修改程序后必须进行确认才能将数据存入数据库中。就再那个保存或更新按钮中加上校验河发送的代码!!
你那个可否这样(说的不对可不要用板砖打我:))
因为客户修改程序后必须进行确认才能将数据存入数据库中。就再那个保存或更新按钮中加上校验河发送的代码!!
#14
我做过一个开发自用的小程序,大概的意思是有开发人员和调试人员,调试人员可能要经常调试出来一些问题,这时可以设定开关是否在调出问题后通知开发人员,这个过程应该是和你的要求一样的,但我是用Winsock做的,除了通知开发人员之外,还可以互相对话,也是需要数据库支持。
#15
up
#16
up
#17
我想请教一下:你是怎么在客户端实现对数据库的修改的。用winsocket 还是 remotedata 控件
能告之大概实现方法吗。
能告之大概实现方法吗。
#18
ado
#19
不就是一个简单的C/S程序吗,使用Winsock创建一个服务器程序,客户端程序修改数据库后使用SendData通知服务器程序(应该包含客户端修改数据的一些信息,如:ID号等),服务器程序根据客户端的信息查询数据库显示不就行了
#20
感谢hydnoahark 。多谢指点!
#21
有那么费劲吗?把ADO的Recordset的CursorType改成Dynamic,
就可以看到其他用户对记录的增删,
如果要提示,那么可以在WillchangeRecord事件中写代码。
就可以看到其他用户对记录的增删,
如果要提示,那么可以在WillchangeRecord事件中写代码。
#22
你是0451的mail,哈尔滨的吗?
#23
我是不想用winsock
不知 bisc_sunny(中子)有没有成功的代码
我试过但不太好用
不知 bisc_sunny(中子)有没有成功的代码
我试过但不太好用
#24
你说的就是要三层结构。本来直接也可以这样做的。你的情况那就是要作一个服务程序专门处理数据库的访问,最好的方式使用DCOM,当然直接使用RPC和SOCKET也可以,就是作一个中间层管理一切对数据库的访问,不管有多少客户端,我曾经参与一个使用RPC的这样的项目,就是有一个服务处理数据库的访问,一个服务处理平衡负载,当然现在使用COM+是一个好的想法。三层架构的出现就是在开发中得到两层结构有很多方面的不足,所以一个中间层必须要有的啦,这样才可以是自己控制的更多。
#25
COM+中的订阅是一个非常不错的功能,灵活使用可以做到动态的更新(我使用了客户查询缓冲,没有使用临时订阅)
#26
Use Events CallBack when the record change!
#27
ado
#28
对,用COM+可以的,或是使用触发器。
#29
对不起啊,我对com不是太了解
有没有其他办法
有没有其他办法
#30
gz
#31
pushup
#32
up
#33
up
#34
我也想知道这个问题怎么解决,能不能将具体的方法讲一下啊!帮帮我们这些菜鸟好吗?
#35
数据库监控程序编写最好不要用winsock控件,你的客户端的程序应时刻判断服务器中的数据是否被修改过,而不是等待服务器发过来的信息。
要使服务器端的程序在客户端修改记录后要立刻显示,最好的方法莫过于sql server数据库端的
触发器和存储过程、数据表的协同工作。
基本算法:
可以先建一个新表(一个字段),表示你的数据库内容是否被更改过。然后
要使服务器端的程序在客户端修改记录后要立刻显示,最好的方法莫过于sql server数据库端的
触发器和存储过程、数据表的协同工作。
基本算法:
可以先建一个新表(一个字段),表示你的数据库内容是否被更改过。然后
#36
then what?
#37
!
#38
up
#39
push
#40
高手????
#41
你要做的是临视SQL数据库的程序,还是做个中间组件(COM+)??
试监视SQL的端口看看
试监视SQL的端口看看
#42
up
#43
我是用TimeStamp字段判断
#44
具体一点好吗
Brunhild()
Brunhild()
#45
如果你的客户机程序是对sqlserver直接操作而中间层只是对数据库进行监视的话,那么在sqlserver上做一个触发器是最好的-----有了改变立时激发该触发器;
如果你的客户机程序是将数据发送到中间层,而由中间层来对数据库操作的话,你的问题就不成问题了 :)
如果你的客户机程序是将数据发送到中间层,而由中间层来对数据库操作的话,你的问题就不成问题了 :)