以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  动态刷新不更新的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194173)

--  作者:hitzfeld
--  发布时间:2024/11/15 1:53:00
--  动态刷新不更新的问题
我有个表,需要实时刷新数据。我做了个思路,在SQL表里面添加了一个标志,初始状态为0,然后用户的窗口在timetick事件里面按一秒做一次检测,发现数值变为1就自动刷新,然后再把数值归0,但是奇怪的是不会执行刷新事件?

过程如下:
A主机添加记录后,把数值设置为1

        Dim sx As DataRow = DataTables("机台设置").sqlfind("机台名称= \'" & jt & "\'")
        If sx IsNot Nothing Then
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "upd&te {机台设置} set 刷新=1 WHERE 机台名称 = \'" & jt & "\'"
            cmd.ExecuteNonQuery() 
            DataTables("机台设置").Load()
end if

B主机的timetick事件 (检测sql中的数值是否为1,如果是就刷新表,然后把数值归0)

Dim sx As DataRow = DataTables("机台设置").SQLFind("机台名称= \'" & _machine & "\'")
Dim val As Integer
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Se/ect 刷新 From {机台设置} Where 机台名称= \'" & _machine & "\'"
val = cmd.ExecuteScalar()

If sx IsNot Nothing Then
    If val = 1 Then
 DataTables("排单表").Load
        Tables("排单表").Filter = "[机台] = \'" & _machine & "\' and 数量>=已入库数量"
        Tables("排单表").Sort = "优先级 DESC"
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "upd&te {机台设置} set 刷新 =0  Where 机台名称= \'" & _machine & "\'"
cmd1.ExecuteNonQuery() 
DataTables("机台设置").Load()
    End If 
 End If

问题是排单表并没有刷新?跟踪了sql表,发现A主机数据变动的时候,数值有变1,然后B主机有重置数值,但是不刷新数据?
[此贴子已经被作者于2024/11/15 2:01:45编辑过]

--  作者:有点蓝
--  发布时间:2024/11/15 8:39:00
--  
DataTables("排单表").Load
试试改为

DataTables("排单表").Loadfilter = ""
DataTables("排单表").Loadtop=nothing
DataTables("排单表").Load

还会不会有C主机也执行了同样的操作?