Foxtable(狐表)用户栏目专家坐堂 → 奇怪的程序假死问题


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

主题:奇怪的程序假死问题

帅哥哟,离线,有人找我吗?
晕了快扶我
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/4 20:13:00 [只看该作者]

感谢楼上所有热心的朋友,谢谢你们

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/4 20:18:00 [只看该作者]

以下是引用lsy在2013-8-4 20:10:00的发言:

你用MessageBox测试,就知道了,你放在里面,增加不少负担。

测试了真不行的,因为我需要遍历所有主表和子表关联列..


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/8/4 20:40:00 [只看该作者]

以下是引用晕了快扶我在2013-8-4 20:18:00的发言:

测试了真不行的,因为我需要遍历所有主表和子表关联列..

负担到没关系,循环几万次也才差零点几秒。

 

我一直有个问题要问楼主,感觉论坛很多狐友都这么做,子表加载父表所有条件相关的行,这种多对多关系的加载,是做什么用处?


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/4 21:26:00 [只看该作者]

以下是引用jspta在2013-8-4 20:40:00的发言:

负担到没关系,循环几万次也才差零点几秒。

 

我一直有个问题要问楼主,感觉论坛很多狐友都这么做,子表加载父表所有条件相关的行,这种多对多关系的加载,是做什么用处?

动态加载啊,父表如果一次加载100行,相应的子表要加载进来才能保证信息的完整啊


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/8/4 21:38:00 [只看该作者]

以下是引用晕了快扶我在2013-8-4 21:26:00的发言:

动态加载啊,父表如果一次加载100行,相应的子表要加载进来才能保证信息的完整啊

然后那?子表几百行放在那里?主表点击一行然后子表在筛选?

 


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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/8/4 21:40:00 [只看该作者]

以下是引用jspta在2013-8-4 20:40:00的发言:

负担到没关系,循环几万次也才差零点几秒。

 

我一直有个问题要问楼主,感觉论坛很多狐友都这么做,子表加载父表所有条件相关的行,这种多对多关系的加载,是做什么用处?

我也有同感。

狐表我接触不久,在这里潜水学习。总感觉这里的数据库设置有一点不舒服。

就拿这个来说,你既然是主表和子表,子表中肯定有一列是主表ID,不明白为什么要这样去遍历。


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/4 21:51:00 [只看该作者]

以下是引用jspta在2013-8-4 21:38:00的发言:

然后那?子表几百行放在那里?主表点击一行然后子表在筛选?

 

可以选择在Afterload事件里,也可以选择在CurrentChanged里,看自己喜欢

我因为一次性加载主表的数据不过30条,所以无所谓放哪里,遍历也消耗不了多少资源的

如果只是加载的话,可以把那两行放外面,这样资源消耗就很少了

[此贴子已经被作者于2013-8-4 21:51:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/4 21:51:00 [只看该作者]

以下是引用逛逛在2013-8-4 21:40:00的发言:

我也有同感。

狐表我接触不久,在这里潜水学习。总感觉这里的数据库设置有一点不舒服。

就拿这个来说,你既然是主表和子表,子表中肯定有一列是主表ID,不明白为什么要这样去遍历。

我这个是属于查询的,比较特殊一点,要主表和子表同步查询,所以没办法要遍历一次


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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/8/4 22:51:00 [只看该作者]

以下是引用晕了快扶我在2013-8-4 21:51:00的发言:

我这个是属于查询的,比较特殊一点,要主表和子表同步查询,所以没办法要遍历一次

想问一下,你的子表里也包含了供应商信息吗?


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/8/5 7:52:00 [只看该作者]

楼主的写法 不死循环才怪,17楼的是对的.具体看看这个:


AfterLoad

如果还没有接触动态数据加载,可以暂时忽略本事件。

在重新加载数据后执行。
不管是通过加载树加载数据,还是自己编写代码执行Load方法加载数据,都会执行此事件。

e参数属性:

DataTable:触发事件的DataTable

示例一

假定有两个表,分别是订单和订单明细,两者通过"订单ID"列关联起来,订单是父表,订单明细是子表,因为每个订单对应有若干订单明细。
由于数据量比较大,决定采用动态加载,每次只加载一定数量的订单进行处理,显然作为一个合格的系统,应该同时加载这些订单的订单明细。

要完成这样的任务很简单,只需在订单表的AfterLoad事件中加入以下代码即可:

Dim ids As String
For
Each dr As DataRow In DataTables("订单").DataRows
    ids = ids &
"," & dr("订单ID")
Next

ids= ids.Trim(
",")
DataTables
("订单明细").LoadFilter = "订单ID In (" & ids & ")"
DataTables
("订单明细").Load()

上述代码会自动扫描已加载订单的订单ID,并合成订单明细表的加载条件,最后重新加载订单明细表。
假定订单表加载了6个订单,其订单ID分别为1、2、6、7、8、9,显然上述代码为订单明细表合成的加载条件为:订单ID In (1,2,6,7,8,9),这样重新加载订单明细表时,将只加载这6个订单的订单明细。

可见代码的关键在于In运算符,在学习SQL语句的时候,我们会介绍此运算符。



  注意这个写法是 数值列的写法.


 回到顶部
总数 33 上一页 1 2 3 4 下一页