Foxtable(狐表)用户栏目专家坐堂 → [求助]大数据量的导入和保存


  共有5043人关注过本帖树形打印复制链接

主题:[求助]大数据量的导入和保存

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106216 积分:540203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/11 21:00:00 [显示全部帖子]

测试了一下,确实是关联单表的问题。只能去掉关联使用


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106216 积分:540203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/11 22:12:00 [显示全部帖子]

不删除关联也可以

函数就要换一种方法了,不能使用GetChanges,只能通过遍历所有行,判断行的状态。具体方法看懂原来的用法自己改改

另外表之间都存在关联关系是一回事,设置为关联表又是一回事。不是还是模拟关联表的用法吗。像金蝶,他们的表关联关系基本仅存在于数据库级别,在程序里是不设置关联表用法的。

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106216 积分:540203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/12 17:57:00 [显示全部帖子]

有得

For Each dr As system.data.DataRow In DataTables("表A").basetable.Rows
    If dr.RowState = DataRowState.Added Then
        
    ElseIf dr.RowState = DataRowState.Modified Then
        
    ElseIf dr.RowState = DataRowState.Deleted Then
        Output.Show(dr("_Identify",System.Data.DataRowVersion.Original))
    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106216 积分:540203 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/29 20:27:00 [显示全部帖子]

试试
……
Next
sql = sql.Trim(" ",",") & "  Where " & kid & "=" & strkey
strlist.Add(sql)
'Output.Show("修改" & strlist.Count)
ElseIf dr.RowState = DataRowState.Deleted Then
    strkey = ""
    If Typeof  dr(tbid,System.Data.datarowversion.original) Is system.DBNull
        sql = "DELETE FROM " & kName & " WHERE " & kid & "is null"
    Else
        strkey = dr(tbid,System.Data.datarowversion.original).tostring
        Select Case _表格_字段类型表(tbid)
            Case "文本"
                strkey = "'" & strkey & "'"
            Case "日期"
                If lx = 1 Then
                    strkey = "#" & strkey & "#"
                Else
                    strkey = "'" & strkey & "'"
                End If
        End Select
        
        strlist.Add(sql)
        'Output.Show("删除" & strlist.Count)
    End If
    sql = "DELETE FROM " & kName & " WHERE " & kid & "=" & strkey
End If
……

 回到顶部