Foxtable(狐表)用户栏目专家坐堂 → 运行速度几小时


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

主题:运行速度几小时

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
运行速度几小时  发帖心情 Post By:2022/10/11 9:05:00 [显示全部帖子]

老师,wy_cpd0 是当前操作表   
         WY_cpd 是总表
  以上二表结构一样,为了说明方便,前者简称A表,后者B表
     判断B表中是否有A表中的记录(年、月、客户代码)如果没有,则把A表中的所有记录追加到B表中
     下面代码有没可以优化,现在运行要几小时,是什么原因?我是每月要做一次的
  





For Each dr1 As Row In Tables("wy_cpd0").Rows
            Dim dr2 As DataRow = DataTables("wy_cpd").find("yy= " & dr1("yy") & " and yy1=" & dr1("yy1") & " and  dm='" & dr1("dm") & "'")
            If dr2 Is Nothing Then
                dr2 = DataTables("wy_cpd").AddNew()
                For Each dc As DataCol In DataTables("wy_cpd0").DataCols
                    dr2(dc.Name) = dr1(dc.name)
                Next
            End If
        Next

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/11 14:17:00 [显示全部帖子]

insert into wy_cpd select * from wy_cpd0 as a where not exists(select * from wy_cpd as b where a.yy=b.yy and a.yy1=b.yy1 and a.dm=b.dm )

老师,我用的是外部数据源,根据我以上的代码应作如何修改? as a 和 as b  的a  b 是什么意思?


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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/11 14:50:00 [显示全部帖子]

有点难,还是先按查询和赋值分开代码,老师,我理解有点难。

For Each dr1 As Row In Tables("wy_cpd0").Rows
            Dim dr2 As DataRow = DataTables("wy_cpd").find("yy= " & dr1("yy") & " and yy1=" & dr1("yy1") & " and  dm='" & dr1("dm") & "'")
            If dr2 Is Nothing Then    '如果没找到相同记录
                dr2 = DataTables("wy_cpd").AddNew()  '增加一条空记录
                For Each dc As DataCol In DataTables("wy_cpd0").DataCols
                    dr2(dc.Name) = dr1(dc.name)  '复制记录到目标表
                Next
            End If
        Next
能不能帮我把上面代码修改下,查询和追加分开一下?

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/26 13:57:00 [显示全部帖子]

类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/26 14:05:00 [显示全部帖子]

出现以下错误提示
并把源表数据删除清空了,要求不清空

类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。
类型 nvarcar 不是已定义的系统类型。

yy和yy1是整数类型
[此贴子已经被作者于2022/10/26 14:09:34编辑过]

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/27 10:01:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
老师,数据追加不全,其中一列只有部份有,是什么原因
下面是源表和接收表附件:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看







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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/27 10:26:00 [显示全部帖子]

列:yy,  yy1, lb(项目名称),gtds(公摊度数),tz(调整),gtds1(实际),bz1(电公摊代码)
    整数   整数     字符                双精度                双精度      双精度             字符


DataTables("wy_gt0").save '保存当前表
DataTables("wy_gt0").loadfilter = "cast(yy as nvarchar) + cast(yy1 as nvarchar)+ bz1 not in (s elect cast(yy as nvarchar) + cast(yy1 as nvarchar) + bz1 from wy_gt)"
DataTables("wy_gt0").load
Dim f As New Filler
f.SourceTable = DataTables("wy_gt0") '指定数据来源
f.DataTable = DataTables("wy_gt") '指定数据接收表
f.Fill() '填充数据

wy_gt0表追加记录到WY_gt表中,并检查接收表中是否有所有内容相同记录,否则不追加。源表数据保留。二个表结构类型是完全相同的

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/27 10:27:00 [显示全部帖子]

上面select拆了一下,因为系统不让发发

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/27 11:00:00 [显示全部帖子]

问题是同一记录,只加载了二列,还有同一行记录有的加载有的没加,这找不到原因

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2022/10/28 9:12:00 [显示全部帖子]

老师可以了,查出原因了,原来是接收表中有代码在运行,删掉就可以了。谢谢。

但是有出现另外一个问题,就是源表WY_gt0 ,返回窗口后不显示数据了,要重新退出程序进入后才会有显示

 回到顶部
总数 11 1 2 下一页