小 小雨天 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #1 有一张PARADOX表,有一字段NO,类型为(+),且为关键字段。 记录的添加删除变化很大,NO字段的值有增无减,请问NO字 段的值会不会到了一定的程度就溢出,该怎么处理?
X xin_kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #2 那是一个32位的数值,应当可以很够用的,应当是上亿了吧?! 如果不能够满足使用需要,可以不使用自增类型,而使用Integer 并且自己管理编号.
V Victortim Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #3 实现字段的自增,也可以不用自类型字段,只要在Table或query的Beforepost 事件设置NO的值自己管理该字段的自增。 可以参考一下, D:/Borland/Delphi4/Demos/Db/Mastapp 的MastData.Cust的BeforePose事件函数。
实现字段的自增,也可以不用自类型字段,只要在Table或query的Beforepost 事件设置NO的值自己管理该字段的自增。 可以参考一下, D:/Borland/Delphi4/Demos/Db/Mastapp 的MastData.Cust的BeforePose事件函数。
W wumeng Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #4 自动增量:SQL6.5,不知有用否? declare @conno int declare @str1 char(4) declare @str2 char(6) select @str1=(convert(char(4),coalesce(max(convert(integer,yourField)),0000)+1)) from yourTable select @str2=@str1+' E' select @conno=charindex('',@str2) select stuff('0000',6-@conno,@conno-1,@str1) //yourField should be char(4)
自动增量:SQL6.5,不知有用否? declare @conno int declare @str1 char(4) declare @str2 char(6) select @str1=(convert(char(4),coalesce(max(convert(integer,yourField)),0000)+1)) from yourTable select @str2=@str1+' E' select @conno=charindex('',@str2) select stuff('0000',6-@conno,@conno-1,@str1) //yourField should be char(4)
小 小雨天 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #5 其实我用此NO字段的用意只是给表提供一个关键字段。 表中有这么几个字段: NO------自动增量 关键字段 Name----A型 姓名 Sex-----A型 性别 等等。 建立两个二级索引:Index1和Index2 Index1的字段为Name, Index2的字段为Sex, 也就是说Name和Sex字段的值可以有相同的, (除了No字段外其余的字段的值都有可能相同) 所以我建立了No自动增量字段。表中的数据变化 很大很大。故我怕到时数据溢出。 感谢Victortim,wumeng和xin_kang的及时帮助。
其实我用此NO字段的用意只是给表提供一个关键字段。 表中有这么几个字段: NO------自动增量 关键字段 Name----A型 姓名 Sex-----A型 性别 等等。 建立两个二级索引:Index1和Index2 Index1的字段为Name, Index2的字段为Sex, 也就是说Name和Sex字段的值可以有相同的, (除了No字段外其余的字段的值都有可能相同) 所以我建立了No自动增量字段。表中的数据变化 很大很大。故我怕到时数据溢出。 感谢Victortim,wumeng和xin_kang的及时帮助。
千 千中元 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #6 1)没有担心益处的必要 2)如果担心溢出,你换成integer,做关键字段也可,删除记录的同时删除了No的值。
H Hjking Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #7 没有担心溢出的必要 不过你可以用integer,在增加一条记录时可这样: table1.last; UNo:=table1['no'].asinteger+1; 新增记录的No的值就为UNo的值,一样可实现自动增量。
没有担心溢出的必要 不过你可以用integer,在增加一条记录时可这样: table1.last; UNo:=table1['no'].asinteger+1; 新增记录的No的值就为UNo的值,一样可实现自动增量。
O OopsWare Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-15 #8 >wumeng MS SQL可用TUpdateSQL在int字段上实现AUTOINC字段,如下: INSERTSQL: INSERT INTO T1(C1,C2,C3) SELECT ISNULL(C1,0)+1, :C2, :C3) C1为T1的AUTOINC字段。
>wumeng MS SQL可用TUpdateSQL在int字段上实现AUTOINC字段,如下: INSERTSQL: INSERT INTO T1(C1,C2,C3) SELECT ISNULL(C1,0)+1, :C2, :C3) C1为T1的AUTOINC字段。
O OopsWare Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-16 #9 笔误!不好意思!! INSERT INTO T1(C1,C2,C3) SELECT ISNULL(MAX(C1),0)+1, :C2, :C3 FROM T1
黄 黄耀彰 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-16 #10 》“溢出”是不会的。 》“NO字段的值有增无减” 而且删除一些记录后,将不连续。 我以前的做法是用TBatchMove控件把数据转出。 得到的类型为(+)字段的值会变连续了!!! 再放回去!!!
小 小雨天 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-18 #13 TO 黄耀彰 我用TBatchMove控件将数据导出后,表结构发生了变化, 本来表结构中有以NO为主索引,两个二级索引,表是密 码保护的,结果导出后,主索引,二级索引,密码都没 有了,请问这是怎么回事?
TO 黄耀彰 我用TBatchMove控件将数据导出后,表结构发生了变化, 本来表结构中有以NO为主索引,两个二级索引,表是密 码保护的,结果导出后,主索引,二级索引,密码都没 有了,请问这是怎么回事?
Y youtoo Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-18 #14 主要是要注意删除中间某个纪录后,要有效的利用这个 空闲的编号. 在删除一条纪录后,把比它编号打的纪录的编号全部减一. 1.remember the number of the rocord being deleted 2.delete the record you want to delete 3.update table set number=number-1 where number>the deleted number
主要是要注意删除中间某个纪录后,要有效的利用这个 空闲的编号. 在删除一条纪录后,把比它编号打的纪录的编号全部减一. 1.remember the number of the rocord being deleted 2.delete the record you want to delete 3.update table set number=number-1 where number>the deleted number