Foxtable(狐表)用户栏目专家坐堂 → [讨论]  我发现在关联列中运行计算代码,速度非常的慢!


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

主题:[讨论]  我发现在关联列中运行计算代码,速度非常的慢!

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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
[讨论]  我发现在关联列中运行计算代码,速度非常的慢!  发帖心情 Post By:2008/11/7 16:49:00 [只看该作者]

只是这样一个简单的代码:e.datarow("关联")="12" 竟运行了几十秒,数据是1万多行。复杂一点的公式就不用谈了。

同样,要删除“关联”列的内容,也是非常地慢,没有尽头。

我的A表“关联”列与B表“关联"列  建立了关联,A表3000行,B表10000多行。

是不是我的版本旧了,试试新的版本。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 18:05:00 [只看该作者]

关联列一般也就是主键列,是不应该去修改的。
修改关联列,要处理很多任务。
[此贴子已经被作者于2008-11-7 18:05:54编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2008/11/7 21:30:00 [只看该作者]

我的关联列不是主键,它有更新的必要。

是这样的:父表是“凭证主表”,子表的“凭证明细表”(相当于订单表和订单明细表)

父表的数据从明细表是用数据填充器,来提取的不重复值。

我将它们关联起来只是想查看方便一点,没办法,窗口中只能用到关联表。

我想,在重算这一列以前,取消关联,重算完毕以后再建立关联可能会解决问题。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 21:45:00 [只看该作者]

动态创建关联

FoxTable提供了一个全局集合Relations,利用该集合可以动态创建关联。

Relations包括以下方法。

Add

用于添加关联,语法:

Add(RelationName, ParentCol, ChildCol)

RelationName:关联名称
ParentCol:    父表关联列
ChildCol:     子表关联列

示例

在产品表和订单表之间,通过产品编号建立关联:

Relations.Add("关联1",DataTables("产品").DataCols("产品编号"),DataTables("订单").DataCols("产品编号"))

Delete

删除指定名称的关联。

示例

删除名称为“关联1”的关联:

Relations.Delete("关联1")

Contains

判断是否存在指定名称的关联。

示例

判断是否存在名称为“关联1”的关联:

If Relations.Contains("关联1") Then
   
MessageBox.Show("关联1已经建立!")
End If


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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2008/11/7 22:08:00 [只看该作者]

哈哈,贴子的页面还没有刷新,我就已经解决这个问题了。

回来准备报告一下解决方法,结果发现:方法与贺老六的一样哦!

可见:狐表的服务确实是快!
   我的学习有点点收获!

 回到顶部