以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自增长字段在保存时会变化?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3883)

--  作者:cpayinyuan
--  发布时间:2009/8/17 8:59:00
--  自增长字段在保存时会变化?
    我用的是狐表+SQL server,使用过程中发现一个小问题,就是增加载的空表,这时候用狐表的菜单增加多行,这时候狐表的表中自增长字段会自动编号,但在保存时,自增长字段的数值会发生变化,即表中保存的值与增加行时在表中看到的值不一样.这样一来,会造成很多麻烦,望改正一下!使表中显示的值与数据库表中的值一致.
    经进一步测试,出现错误的主要是两种情况:
(1)自增长字段,在狐表中用菜单增加多行时,首行是从0开始编号的,但SQl  server的首行是从1开始编号的,所以保存时会变化;
(2)自增长字段,在狐表中用菜单增加多行时,如果在保存前删除了刚增加的行的其中一行(例如第1行),或者其中的若干行,保存时编号会出现混乱.
--  作者:狐狸爸爸
--  发布时间:2009/8/17 9:23:00
--  
新增行生成的编号是临时的,保存时生成真正的编号,这个真正的编号并非Foxtable生成,而是SQL SERVER生成的,Foxtable只是从后台提取这个编号而已。
--  作者:cpayinyuan
--  发布时间:2009/8/17 9:48:00
--  
以下是引用狐狸爸爸在2009-8-17 9:23:00的发言:
新增行生成的编号是临时的,保存时生成真正的编号,这个真正的编号并非Foxtable生成,而是SQL SERVER生成的,Foxtable只是从后台提取这个编号而已。

     这个我理解,但是增加行后的行号有可能会被代码引用,这会造成错误,如果有关联,可能会更麻烦,如何解决这个矛盾呢?
     只不是添加行之后马上保存一下,就可以解决这个问题?

   补充:好像马上保存一下也不是很方便,设计代码的时候,一般的习惯是添加新行,在新行内添加数据,再保存.能否改一下程序,若有自增长字段,添加行号,自动保存一下自增长字段,同时把数据库中的字段值返回来,显示到表上,这样可以彻底避免错误.

[此贴子已经被作者于2009-8-17 9:49:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/8/17 10:00:00
--  

设置关联的时候,可以选择选项:同步修改关联列内容,你可解决你说的矛盾。

你的建议不可行,因为编号是一个资源,不可轻易浪费,保存的时候再生成是最合适的,如果新增行的编号等于实际的编号,只有在增加行后保存表。