以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于临时表的主键字段  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169097)

--  作者:南望
--  发布时间:2021/6/2 16:24:00
--  关于临时表的主键字段
下面代码中涉及到“_Identify”字段,请问老师临时表如何拥有这样一个相同功能的“_Identify”字段?(主键)

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "字段1"
For Each dr As DataRow In DataTables("table1").Select("", cs)
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c).replace(" ","") <> dr(c).replace(" ", "") Then
                flag = True
                Exit For
            End If
        Next
        If flag Then
            If count > 1 Then
                idx &= idx_temp
            End If
            count = 1
            idx_temp = ""
        Else
            count += 1
            idx_temp &= dr("_Identify") & ","
        End If
    Else
        count += 1
    End If
    pdr = dr
Next
If count > 1 Then
    idx &= idx_temp
End If
Tables("table1").filter = "_Identify not In (" & idx.trim(",") & ")"

--  作者:有点蓝
--  发布时间:2021/6/2 16:28:00
--  
什么样的临时表,怎么创建的表?
--  作者:南望
--  发布时间:2021/6/2 16:45:00
--  
If  Tables.Contains("临时表") = False Then
    
    Dim dtb As New DataTableBuilder("临时表")
    dtb.AddDef("字段1", Gettype(String),500)
    dtb.AddDef("字段2", Gettype(String),500)

    dtb.Build()
    MainTable= Tables("临时表")
    
End If

然后用TABLES("临时表").Addnew加的数据

--  作者:有点蓝
--  发布时间:2021/6/2 16:56:00
--  
Dim dtb As New DataTableBuilder("临时表")
dtb.AddDef("_Identify", Gettype(Integer))
dtb.AddDef("字段1", Gettype(String),500)
dtb.AddDef("字段2", Gettype(String),500)
dtb.Build()
DataTables("临时表").basetable.Columns("_Identify").AutoIncrement = True
DataTables("临时表").basetable.Columns("_Identify").AutoIncrementSeed = 1
MainTable= Tables("临时表")

Dim r As Row = Tables("临时表").AddNew
Output.Show(r("_Identify"))
r = Tables("临时表").AddNew
Output.Show(r("_Identify"))