以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 运行速度几小时 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=180258) |
|
-- 作者:nbsugu_z -- 发布时间: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
|
|
-- 作者:有点蓝 -- 发布时间:2022/10/11 9:21:00 -- 看看:http://www.foxtable.com/webhelp/topics/2225.htm,如果还是慢,可能原因 1、数据多 2、有表事件影响 3、有表达式列的表达式计算影响 如果是外部数据源,可以考虑使用sql更新,类似 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 )
|
|
-- 作者:nbsugu_z -- 发布时间: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 是什么意思? |
|
-- 作者:有点蓝 -- 发布时间:2022/10/11 14:23:00 -- 先看看帮助,学点sql基础:http://www.foxtable.com/webhelp/topics/0687.htm,网上也有很多的sql语言教程 a和b是别名
|
|
-- 作者:nbsugu_z -- 发布时间:2022/10/11 14:50:00 -- 有点难,还是先按查询和赋值分开代码,老师,我理解有点难。
|
|
-- 作者:有点蓝 -- 发布时间:2022/10/11 14:59:00 -- dataTables("wy_cpd0").save dataTables("wy_cpd0").loadfilter = "cast(yy as nvarcar) + cast(yy1 as nvarcar) + dm not in (select cast(yy as nvarcar) + cast(yy1 as nvarcar) + dm from wy_cpd)" dataTables("wy_cpd0").load dim f As New Filler
f.SourceTable = DataTables("wy_cpd0") \'指定数据来源 f.DataTable = DataTables("wy_cpd") \'指定数据接收表 f.Fill() \'填充数据 |
|
-- 作者:nbsugu_z -- 发布时间:2022/10/26 13:57:00 -- 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。
|
|
-- 作者:nbsugu_z -- 发布时间:2022/10/26 14:05:00 -- 出现以下错误提示 并把源表数据删除清空了,要求不清空 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。 类型 nvarcar 不是已定义的系统类型。 yy和yy1是整数类型
[此贴子已经被作者于2022/10/26 14:09:34编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2022/10/26 14:11:00 -- 打错字,nvarcar 改为nvarchar |
|
-- 作者:nbsugu_z -- 发布时间:2022/10/27 10:01:00 -- 此主题相关图片如下:2.png 老师,数据追加不全,其中一列只有部份有,是什么原因 下面是源表和接收表附件:
|