以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]  我发现在关联列中运行计算代码,速度非常的慢!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1072)

--  作者:wcs
--  发布时间:2008/11/7 16:49:00
--  [讨论]  我发现在关联列中运行计算代码,速度非常的慢!

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

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

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

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


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

--  作者:wcs
--  发布时间:2008/11/7 21:30:00
--  

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

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

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

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

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


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2008/11/7 22:08:00
--  
哈哈,贴子的页面还没有刷新,我就已经解决这个问题了。

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

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