我用的是狐表+SQL server,使用过程中发现一个小问题,就是增加载的空表,这时候用狐表的菜单增加多行,这时候狐表的表中自增长字段会自动编号,但在保存时,自增长字段的数值会发生变化,即表中保存的值与增加行时在表中看到的值不一样.这样一来,会造成很多麻烦,望改正一下!使表中显示的值与数据库表中的值一致.
经进一步测试,出现错误的主要是两种情况:
(1)自增长字段,在狐表中用菜单增加多行时,首行是从0开始编号的,但SQl server的首行是从1开始编号的,所以保存时会变化;
(2)自增长字段,在狐表中用菜单增加多行时,如果在保存前删除了刚增加的行的其中一行(例如第1行),或者其中的若干行,保存时编号会出现混乱.
新增行生成的编号是临时的,保存时生成真正的编号,这个真正的编号并非Foxtable生成,而是SQL SERVER生成的,Foxtable只是从后台提取这个编号而已。
以下是引用狐狸爸爸在2009-8-17 9:23:00的发言:
新增行生成的编号是临时的,保存时生成真正的编号,这个真正的编号并非Foxtable生成,而是SQL SERVER生成的,Foxtable只是从后台提取这个编号而已。
这个我理解,但是增加行后的行号有可能会被代码引用,这会造成错误,如果有关联,可能会更麻烦,如何解决这个矛盾呢?
只不是添加行之后马上保存一下,就可以解决这个问题?
补充:好像马上保存一下也不是很方便,设计代码的时候,一般的习惯是添加新行,在新行内添加数据,再保存.能否改一下程序,若有自增长字段,添加行号,自动保存一下自增长字段,同时把数据库中的字段值返回来,显示到表上,这样可以彻底避免错误.
[此贴子已经被作者于2009-8-17 9:49:59编辑过]
设置关联的时候,可以选择选项:同步修改关联列内容,你可解决你说的矛盾。
你的建议不可行,因为编号是一个资源,不可轻易浪费,保存的时候再生成是最合适的,如果新增行的编号等于实际的编号,只有在增加行后保存表。