自增字段的问题(20分)

  • 主题发起人 主题发起人 pnljh
  • 开始时间 开始时间
P

pnljh

Unregistered / Unconfirmed
GUEST, unregistred user!
Access和 SQL Server中的自增字段使用以后,就不断增大,即使将整个表的记录全删除,
当新增记录时,自增字段仍然使用在原来基础上的最大值,
不知道有没有办法让其重新从最小值开始。
(除了删除此字段,再加回去的办法)
 
用 truncate table 来删除纪录
 
我有个笨方法。删一条记录后,就把大于些字段的记录全部-1;这样就行了。
如:(bh为自动增长字段)
delete from table where bh=7
update table set bh=hb-1 where bh>7
 
我用 ACCESS 也出现过 类似问题.

我把 最大的 记录 删 了, 也还是 从 最大的号后一个号开始

我一怒之下, 不这么用了. 在 每次打印 之前. 用 Query 给 他们编 号.
 
what is truncate table ??
 
在interbase中,可以设置generator的当前值,sql,access 没试过
 
truncate table 在Access中好像出错了。
 
sql server 中用
TRUNCATE TABLE tablename
Access中
把记录删除后,把数据库压缩一下就好了
 
把Access数据库压缩一下是好了,只是如何在程序中实现?
Truncate Table是肯定不行的了。在ADO中输入此命令,运行出错。
 
Access数据库的压缩
var
dao: OLEVariant;
begin
dao := CreateOleObject('DAO.DBEngine.35');
dao.CompactDatabase('d:/yourDatabaseName.mdb','d:/yourNewCompactedDatabaseName.mdb');
end;
 
谢谢lyq2276959的解答,现在都用office2000了,'DAO.DBEngine.35'应该是
'DAO.DBEngine.36'。不知道'DAO.DBEngine.35'这东西从哪找出来的,怎么不
见帮助里有?
另,为什么我的ADOConnection断开连接后,数据还处于被使用的状态,硬盘上还
有Access处于打开状态时的一个文件,当然此时也压缩不了了。但是如果在设计时
ADOConnection的active为False,就没事,设计时为true,程序运行后设为false却不行。
怎么回事?
 
多人接受答案了。
 

Similar threads

后退
顶部