以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  海量数据加载问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105609)

--  作者:litiemiao
--  发布时间:2017/8/22 20:56:00
--  海量数据加载问题

If e.DataCol.Name = "商品条码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商品名称") = Nothing
        e.DataRow("规格") = Nothing
        e.DataRow("单位") = Nothing
        e.DataRow("进价") = Nothing
        e.DataRow("售价") = Nothing
        e.DataRow("类别编码") = Nothing
        e.DataRow("产地") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("云数据").Find("[商品条码] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("商品名称") = dr("商品名称")
            e.DataRow("规格") = dr("规格")
            e.DataRow("单位") = dr("单位")
            e.DataRow("进价") = dr("进价")
            e.DataRow("售价") = dr("售价")
            e.DataRow("类别编码") = dr("类别编码")
            e.DataRow("产地") = dr("产地")
        End If
    End If

我有一个数据表叫做云数据,里面是百万级别的数据量,有120万条数据,我只想在表A的商品条码列,对应在数据库中找到对应值,来更新 规格 单位品名什么的,例如上面的代码,但是由于云数据表非常庞大,加载的时间特别长,用什么方法,可以不用加载这个表或者在后台加载这个数据表,只在里面找到对应值然后引用的表A当中就可以,或者是加载时间短的


--  作者:有点蓝
--  发布时间:2017/8/22 21:01:00
--  
不加载这个表,直接后台查找:http://www.foxtable.com/webhelp/scr/2911.htm

dr = DataTables("云数据").SqlFind("[商品条码] = \'" & e.NewValue & "\'")

--  作者:litiemiao
--  发布时间:2017/8/22 21:14:00
--  

不是SQL类型的

是ACCES外部数据库 要怎么写啊


--  作者:有点蓝
--  发布时间:2017/8/22 21:16:00
--  
请仔细看帮助,不要望文生义。只要是外部表就可以使用
--  作者:litiemiao
--  发布时间:2017/8/22 21:16:00
--  
好的 谢谢
--  作者:litiemiao
--  发布时间:2017/8/22 21:21:00
--  
那技术大佬,请问 例如我表A中有的商品条码,在数据库中没有对应值,那么规格 单位 什么我自己填写,我想填写后自动将这条数据增加到数据库中,这样 这个数据库就会越来越全 需要怎么写代码呢
--  作者:litiemiao
--  发布时间:2017/8/22 21:27:00
--  

大佬这样不行啊,我照您说的写的代码,我的外部数据表加载的默认行数,可是表A中数据根本不更新,也就是说,如果没有加载这些数据,他就不更新,如果全部加载就又成原来的了,如果只填写外部链接,而不加载外部表的话,会提示我根本没有这个表

If e.DataCol.Name = "商品条码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商品名称") = Nothing
        e.DataRow("规格") = Nothing
        e.DataRow("单位") = Nothing
        e.DataRow("进价") = Nothing
        e.DataRow("售价") = Nothing
        e.DataRow("类别编码") = Nothing
        e.DataRow("产地") = Nothing
    Else
        Dim dr As DataRow
       
dr = DataTables("云数据").SqlFind("[商品条码] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("商品名称") = dr("商品名称")
            e.DataRow("规格") = dr("规格")
            e.DataRow("单位") = dr("单位")
            e.DataRow("进价") = dr("进价")
            e.DataRow("售价") = dr("售价")
            e.DataRow("类别编码") = dr("类别编码")
            e.DataRow("产地") = dr("产地")
        End If
    End If
End If


--  作者:有点蓝
--  发布时间:2017/8/22 21:30:00
--  
1、加载这个表,不要加载数据,直接增加行并编辑,然后保存即可

2、如果通过其它表的数据来保存的,可以使用sql保存:http://www.foxtable.com/webhelp/scr/0696.htm