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


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

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

帅哥哟,离线,有人找我吗?
有点甜
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 17:05:00 [只看该作者]

回复楼上,这个意思?

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=112763&skin=0

 

如果还有问题,做个例子说明。


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/5/29 8:55:00 [只看该作者]

那个帖子里有两处可能有点问题 
第一处:
  For Each dr As System.Data.DataRow In ChangeTable.Rows
        '遍历设置列值
        sql = sql11
        For Each str1 As String In _表格_字段对应表.Keys
            str = "'" & dr(str1) & "',"
            Select Case _表格_字段类型表(str1)
                Case "数值"
                    str = dr(str1) & ","    '此处应为 str = dr(str1).tostring  & ","  

第二处:
'如果没有修改记录,返回空值
'
If ChangeTable IsNot Nothing Then
    For Each dr As System.Data.DataRow In ChangeTable.Rows    '循环获取修改语句
        '获取主键值
        strkey = dr(tbid)
        Select Case _表格_字段类型表(tbid)
            Case "文本"
                strkey = "'" & dr(tbid) & "'"
            Case "日期"
                If lx = 1 Then
                    strkey = "#" & dr(tbid) & "#"
                Else
                    strkey = "'" & dr(tbid) & "'"
                End If
        End Select
        
        '遍历设置列值
        sql = "UPDATE " & kName & " Set  "
        For Each str1 As String In _表格_字段对应表.Keys
            str = "'" & dr(str1) & "'"
            Select Case _表格_字段类型表(str1)
                Case "数值"
                    str =  dr(str1)    '此处应为str =  dr(str1)  & ","

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/29 9:32:00 [只看该作者]

回复楼上,你的问题解决了没有?如果还有问题做个例子说明。

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/5/29 13:45:00 [只看该作者]

暂时算是没有报错了。

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/5/29 15:36:00 [只看该作者]

我自己修改了一下,做了一个自定义函数。
更新,有些细节地方错了。
这个函数使用是有条件的:
1、外部表的系统的表的名称、结构是一致的
2、外部表使用_Identify作为主键


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档.txt


[此贴子已经被作者于2018/5/29 18:02:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/5/29 19:13:00 [只看该作者]

在示例的那个凭证、客户、订单里执行就没有问题,在另一个项目中执行就会报错。

---------------------------
版本:2018.3.9.1
---------------------------
代码执行出错,错误信息:



System.InvalidCastException: 从类型“DBNull”到类型“String”的转换无效。

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ToString(Object Value)

   在 UserCode.Test()
---------------------------
确定   
---------------------------



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


加好友 发短信
等级:超级版主 帖子:106079 积分:539494 威望: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
……

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/5/30 16:25:00 [只看该作者]

好象可以,现在不报错了。
小问题:只是删除的行要这样处理吗?修改的不需要修改?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 16:33:00 [只看该作者]

以下是引用chnfo在2018/5/30 16:25:00的发言:
好象可以,现在不报错了。
小问题:只是删除的行要这样处理吗?修改的不需要修改?

 

是的。删除的行,无法直接获取值,需要加参数获取。


 回到顶部
总数 29 上一页 1 2 3