以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  _Indentify 列 与 DatacolChanged事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75268)

--  作者:cpayinyuan
--  发布时间:2015/10/2 11:22:00
--  _Indentify 列 与 DatacolChanged事件

 

    关于 _Indentify 列 ,对系统中的两点限制不太理解:

1、目前的系统中,当_Indentify 列发值发生变化时(例如使用外部数据源时,保存时发生了变化),不会运行DataColChanged 事件。由于另一张表的某列需要与当前表的_Indentify 值保持相等,所以,这样的设计带来了很大的麻烦。为了保持其他列始终保持与当前表的_Identify相等,我不得不建立了很多没有用的关联,导致效率降低。实在不理解为什么要做此限制!

2、当我用代码建立关联时,如果父表用_Identify列关联,系统提示找不到_Indentify 列。实际上肯定是存在这个列的,并且在菜单中也允许用父表的_Indentify列 与子表建立关联。对这个限制,我也不理解为什么要这么做!

 

不知是我没有找到方法,还是系统中就是这样的设计的,如果确实如此,希望贺老师关注一下!

[此贴子已经被作者于2015/10/2 11:22:39编辑过]

--  作者:大红袍
--  发布时间:2015/10/4 11:42:00
--  

1、这个没办法;

 

2、这个是应该是add方法的bug,datacols是获取不了系统列的。


--  作者:yinyb36
--  发布时间:2015/10/6 21:11:00
--  
最好不要用_Identify作关联列
--  作者:cpayinyuan
--  发布时间:2015/10/7 13:16:00
--  

其实,帮助中是强烈建议用 _Identify 列作为主键列(自增长字段),并建议用 _Identify 列作为关联的。

 

其实,只要贺老师把这两个地方对 _Identify 列的限制取消,这个列与其他列就一样了,这两个问题自然就不存在了。不知以前为什么作此限制?


--  作者:大红袍
--  发布时间:2015/10/7 14:41:00
--  

_Identify做关联不好用的,因为它的值是随机的,管理或拓展起来麻烦。


--  作者:cpayinyuan
--  发布时间:2015/10/8 9:31:00
--  
以下是引用大红袍在2015/10/7 14:41:00的发言:

_Identify做关联不好用的,因为它的值是随机的,管理或拓展起来麻烦。

不用_Identify列做关联没问题,但我说的第1个问题如何解决?系统帮助中是一直推荐用 _Identify 作主键列的。


--  作者:大红袍
--  发布时间:2015/10/8 10:03:00
--  

_Identify做主键列,是为了foxtable的方便而已,跟你的系统设计无关。自动递增的列只做唯一标记,没有任何其它作用。


--  作者:cpayinyuan
--  发布时间:2015/10/8 12:05:00
--  
以下是引用大红袍在2015/10/8 10:03:00的发言:

_Identify做主键列,是为了foxtable的方便而已,跟你的系统设计无关。自动递增的列只做唯一标记,没有任何其它作用。

还是没解决我提出的第1个问题。


--  作者:大红袍
--  发布时间:2015/10/8 12:10:00
--  

不要用_Identify做任何操作啊,要用就先保存啊。


--  作者:cpayinyuan
--  发布时间:2015/10/8 13:06:00
--  
以下是引用大红袍在2015/10/8 12:10:00的发言:

不要用_Identify做任何操作啊,要用就先保存啊。

您说的方法、思路都没问题,但并不能解决根本问题。在实际工作中,的确有时候不方便。

 

目前的FoxTAble版本中,真正的解决方案只有1个,就是不要用 _Identify 自增长字段作为主键。但我现在的系统中,有许多表,有许多代码,把所有表的主键列改名称也不是一件小事情。

 

所以,我建议贺老师修改一下系统,DatacolChanged   事件中,不要限制 _Identify 列(即让 _Identify 列变动时也可以激发DatacolChanged  事件,这样,所有的问题就不存在了。 如果FoxTable稍做改进就可以解决所有问题,我希望FoxTable稍做改进,而不是让我想许多变通的、不太方便的方法。