首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求一个动态监听数据库数据改变的例子。。。。 [无满意答案结贴,结贴人:fendy5201]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fendy5201
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-01-23 11:47:27 楼主
    求一个动态监听数据库数据改变的例子。。。。
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myvicy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-01-23 15:15:191楼 得分:0
    什么数据库要实现什么样的效果?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fendy5201
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-23 15:35:582楼 得分:0
    用的是SQL SERVER 2000 实现的效果是:
    进入企业管理器里面对应的表 比如我删除一条数据 在我的Default.aspx上面要马上反应出来。(不能刷新页面)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • changke18
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-23 15:46:503楼 得分:0
    利用ajax定时发送xmlhttp请求
    page_load里面代码
    为查询数据库代码,但记录是否减少
    如果减少那么 返回对应得值给客户端即可
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pgdoryoku
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-23 16:06:354楼 得分:0
    用prototype的Ajax.PeriodicalUpdater方法看看,下面例子给出了每秒检查一次数据库的数据并显示数据到 <div id="divResult" > </div>中.目前手头无调试环境,lz自己测下,要记的导入prototype的框架。

    HTML code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>sqlcheck</title> <script type="text/javascript" language="javascript" src="prototype.js" ></script> <script type="text/javascript" language="javascript"> var count = 0; function check() { var myAjax = new Ajax.PeriodicalUpdater( 'divResult', //定时更新的页面元素,也就是ID 'checksql.asp', //请求处理的url,这里可以改为asp或php等来查询数据库 { method: 'get', //HTTP请求方式为get frequency: 1, //1秒检查一次 } ); } </script> </head> <body onload="check()">> <div id="divResult" ></div> </body> </html>


    checksql.asp文件代码:
    VBScript code
    <% dim conn,rs,sql set conn=server.createobject("adodb.connection") conn.open "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;pwd=sa;Initial Catalog=database;Data Source=(local);Connect Timeout=15" set rs = server.CreateObject("adodb.recordset") sql="select * from t" '这里有其他条件可自行加where rs.open sql,conn,1,1 do while not rs.eof Response.Write(rs("id")) '这里是要更新显示的数据库里的内容,自行添加 rs.movenext loop%>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Phenlit
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-24 08:41:335楼 得分:0
    用Web来监听数据库是否被修改过,比较点资源,特别是用查询比较的方式

    有另一种方法,可以监听

    一。ACCESS
    对于ACCESS的监听,只要监听数据库文件被修改的时间是否被更改就行了

    二。SQL

    写个触发器,使触发器更改数据库的存储过程内容来实现

    1。创建1个触发器,创建一段储存过程,触发的时候可以写存储过程并在存储过程中标志被修改,或直接把修改过的内容写到存储过程中(注:存储过程不要用来查询,这样会增加服务器负担,而是直接写成字符串方式放到存储过程中)。

    2.在页面只要通过Ajax方式,来读这段被修改的存储过程判断数据是否被修改,也可以通过页面的清除存储过程内容重新监听。

    那么在用Ajax调用动态页面,读存储过程不影响数据库其实操作,减少数据库的负担,特别是数据表的记录太多的时候
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xuStanly
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-29 01:36:506楼 得分:0
    实现这样的效果如楼上几位说的可以,
    但问题是楼主希望服务器端通过其他方式删除一条记录,
    客户端页面就马上响应,
    这就有点难了。
    因为WEB的请求都首先由客户端发起,
    所以楼主的需求要么页面自动refresh,要么用setInterval,
    定时向服务器发起请求,或者google一下服务器端“推”技术的相关资料。
    呵呵。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xuStanly
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-29 01:47:467楼 得分:0
    http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhulei2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-01-29 08:07:078楼 得分:0
    定时刷新
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • arlang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-02-22 23:07:029楼 得分:0

    B/S结构,目前是请求-响应模式,先是请求再响应,服务器端响应返回是被动的,如果没有请求就不会有响应,HTTP是无状态的,服务器不知道客户端现在怎么样了是不是转到其它页面去了,在跟它连接的无数个客户端中,它也不知道该响应哪个。

    或许以后会有这个服务器端的“推”技术
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • arlang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-02-22 23:09:1810楼 得分:0
    所以要达到及时刷新的效果,只有不断发请求,为了刷新更及时,只有不断地短时间内发请求,在性能和响应及时性方面找个平衡点。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved