以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 系统要怎么才实现各客户端修改数据后,其它客户端即时看得见?? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28568) |
-- 作者:kmzb56 -- 发布时间:2013/2/3 11:53:00 -- 系统要怎么才实现各客户端修改数据后,其它客户端即时看得见?? 我想请教大家一个问题,一个系统用外部数据源,有多个客户端,我想让每个客户端的数据改后,其它客户端用计载管理的追载方式得到最近的修改,请问用什么方案和思路?说明一下,要即时更的的显示在客户端上的表是一个窗口副表。 昨天跟狐表的宠工讨论了一下,他做了一个列子,有些还不太理解,也不能真正的实现,发上来求解,今天他不在,而我只有周未空些,只有先贴在论里让大家思考?求解。 我相信这种需求有很多系统都要要,而且代码有些类通,请各位多出思路,有完整的例子就更好。!!!!!谢谢了!我做的系统要完了,有很多都是大家的思路!!代码如下:: 项目事件
LoadUserSetting
Forms("窗口1").Open()
计划管理
计划1
Dim cmd As New
SQLCommand Dim dt As
DataTable cmd.C cmd.CommandText =
"Select top 1 * From {操作记录} Where [更新时间] > \'" & GXTime &
"\'" dt =
cmd.ExecuteReader If
dt.DataRows.Count = 1 Then GXTime =
dt.DataRows(0)("更新时间")
DataTables(dt.DataRows(0)("表名")).Load() 这里不理解!!!!
可否改成行加载,或者追载
DataTables("操作记录").Load() 这里不理解!!!!应该可以改成行加载,或者追载,这样可以减小带宽和计算时间,另外可以不影响光标移动。。
StatusBar.Message2 = dt.DataRows(0)("表名") & dt.DataRows(0)("更新时间") End If StatusBar.Message3 = GXTime
计划2
StatusBar.Message1= Date.Now()
表事件
表A_DataColChanged
If e.DataCol.Name <>"更新时间" Then
Dim r As Row = Tables("操作记录").AddNew
r("表名") =
e.DataTable.Name
r("字段") =
e.DataCol.Name
r("更新时间") =
Date.Now() 为啥用系统时间?不用服务器时间? r.Save() End If
窗口表事件
窗口与控件事件
自定义函数
全局代码
Public GXTime As
String = Date.Now().Tostring() 为啥用系统时间?不用服务器时间?
菜单事件
|
-- 作者:lihe60 -- 发布时间:2013/2/3 13:34:00 -- 保存一个。在计划管理里,对所有打开的非编辑窗口重新加载。 |
-- 作者:lin_hailun -- 发布时间:2013/2/3 15:17:00 -- 如果你想用系统的时间,也可以嘛,直接 select date() 可以查询得到。 --------------------------------------------------- 庞工给你的是加载整个表,如果你只是想加载某些行的话,得清楚你要加载被修改的哪些行,对于这些行,如果标记才能让它们和其他行不同,然后客户端根据这些不同去追截数据。 说一种方法吧,比如加一列,修改时间列,比较客户端和数据库修改时间列的大小,就可以决定是否加载这一行了。 也就是 datatables("xxx").loadfilter = "xxxx" |
-- 作者:kmzb56 -- 发布时间:2013/2/6 14:51:00 -- 最近几天没上网,哥哥:能不能做一个列了呀?或者再说具体点。 [此贴子已经被作者于2013-2-6 14:51:23编辑过]
|
-- 作者:lin_hailun -- 发布时间:2013/2/6 16:03:00 -- 呃……修改行的时候,填入修改的时间,保存到数据库的时候这一行的修改时间就是最新的了。 各个客户端,如果是旧的数据,比较一下,就知道了。 也就是,使用行加载的方法,遍历行,比较后台数据库的修改时间,决定这一行是否重新加载。 |
-- 作者:kmzb56 -- 发布时间:2013/2/17 9:38:00 -- 在么?请问能不能弄一下完整的例子? |
-- 作者:lin_hailun -- 发布时间:2013/2/17 10:17:00 -- 以下是引用kmzb56在2013-2-17 9:38:00的发言: 在么?请问能不能弄一下完整的例子? 其实你这种,应该是你做一个例子出来,然后在你例子上修改的。 把你的实际问题,把你的实际应用,做成例子,说明要达到的效果,发上来。 |
-- 作者:zcw728909 -- 发布时间:2013/2/18 17:44:00 -- 可以在窗口中放个刷新按钮,点击后再重新加载,个人感觉做计划管理对系统负担太重 |
-- 作者:狐狸爸爸 -- 发布时间:2013/2/18 18:07:00 -- 其实就用加载树,单击上一页,下一页,看到的都是最新的数据,这样就行了。 |
-- 作者:kmzb56 -- 发布时间:2013/3/15 22:23:00 -- 最近太忙,好久没上论坛了,按狐爸这种方式好像可以,但问题的关键是我的是在一个窗口上,请问怎么实现? |