以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]OuterTableBuilder 加载的表是否变化判断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70876)

--  作者:blsu33
--  发布时间:2015/6/30 17:01:00
--  [求助]OuterTableBuilder 加载的表是否变化判断
老师,
  下面的代码能执行,OuterTableBuilder加载进来的表,能否在判断一下,已经加载的进来的和数据源的是否发生了变化

Dim tab As WinForm.TabControl 
Dim dt As DataTable
Dim ft As String
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Select * F rom {loging}"
dt = cmd.ExecuteReader
Dim edr As new List (of DataRow)
edr=dt.sqlSelect("控件名称=\'"& tab.Name &"\'and 页面名称=\'"& tab.SelectedPage.Name &"\'")
For Each dr As DataRow In edr
    For Each evalue As String In dr("加载范围").Split(",")
        If dr("加载方式") = "打开窗表" Then
            If DataTables.Contains(evalue) = False Then’判断是否存在已经加载的表
                Dim q As new OuterTableBuilder
                q.TableName = evalue
                q.TableCaption = evalue
                q.C
                q.SelectString = "Select * F rom {" & evalue & "} "
                q.Build
                If dr("窗口表名称") IsNot Nothing Then
                    Tables(dr("窗口表名称")).Datasource = DataTables(evalue)
                End If
            Else
                DataTables(evalue).load‘这块怎么再判定一下已经加载的DataTables(evalue)没有变化,变化的再重新.load
                MessageBox.Show(1)
                
                If dr("窗口表名称") IsNot Nothing Then
                    Tables(dr("窗口表名称")).Datasource = DataTables(evalue)
                End If
                
            End If
        End If
    Next
Next

--  作者:大红袍
--  发布时间:2015/6/30 17:13:00
--  
 无法判断后台数据库的数据是否变化的
--  作者:大红袍
--  发布时间:2015/6/30 17:15:00
--  

 如果要判断变化,那么,单独做一个表记录变化的表,在beforeSaveDataRow事件,往里面写入最后变化的时间;

 

 load之前,去查那个表


--  作者:blsu33
--  发布时间:2015/6/30 17:20:00
--  
老师,
  fill SQLtable   这些可以做到吗

--  作者:blsu33
--  发布时间:2015/6/30 17:26:00
--  
老师 ,
   现在这么写的代码,会有问题吗?

--  作者:大红袍
--  发布时间:2015/6/30 18:15:00
--  

 1楼写的代码没问题。

 

 当然,你也可以直接用 Fill 函数


--  作者:blsu33
--  发布时间:2015/6/30 20:28:00
--  
老师 ,
   已经改为FILL
   
在问下,FILL增加按钮怎么写呢;
多人同时在线的时候,帮助文档有少量并发冲突的一部分介绍;

既然已经 fill 了 ,增加是不是直接;
add  然后 save  在load

还是先用U pdate {A} s et [_lock] =false Wh ere 标记 Is Null And [_Identify] = " & r("_Identify")  参照工作流的 



--  作者:大红袍
--  发布时间:2015/6/30 20:31:00
--  
 增加,就直接add;保存,save;刷新数据,就重新fill或者load
--  作者:blsu33
--  发布时间:2015/6/30 20:38:00
--  
老师,

 Fill(SelectString, ConnectionName,IsQuery)

SelectString:   字符型,用于设置SQL语句。
ConnectionName: 字符型,指定数据源名称,如果不指定,表示使用内部数据源。
IsQuery:        逻辑型,设为True,表示查询表,设为False,表示数据表。

数据表默认是可以编辑和保存的。

查询表默认不能编辑,通过将其AllowEdit属性设置为True,可以编辑查询结果,但不能保存编辑结果。 

这个保存 直接的做  tables(窗口_table1 ).save ?
  


--  作者:大红袍
--  发布时间:2015/6/30 20:40:00
--  
IsQuery 设置成False 就能保存