Access 的自動編號欄位內部 counter 可否歸零? |
答題得分者是:wameng
|
jimmygump
一般會員 發表:8 回覆:12 積分:4 註冊:2003-09-09 發送簡訊給我 |
最近改用 Access 配合 Delphi 開發,用到不少的 "自動編號(autoincrement)" 型欄位。
在開發過程中,難免會產生一些測試記錄,自動編號的內部 counter 就會一直增加。
而當我要交件給客戶時,就算我把測試記錄都刪光了,這些自動編號欄位的內部 counter 仍然不會歸零。 過去在 SQL Server 時,總是在交件前產生一份 DDL(Data Definition Language) 的 SQL Script,然後再到客戶那邊重新執行那一份 DDL.SQL。這樣重建資料庫結構之後,所有的 IDENTITY 就歸零了。 請問,Access 裡面有類似的功能嗎?不會要我重新手動建立資料庫結構吧,或者要在 Delphi 中另外再寫一支一堆 CREATE TABLE 的程式呢? Access 不熟啊...請大家指點 Jimmy Gump
------
Jimmy Gump |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
使用 Access 資料庫(MDB) >就算我把測試記錄都刪光了,這些自動編號欄位的內部 counter 仍然不會歸零。 您必須壓縮修復 MDB 後,才會真正刪除資料並重整歸零。 Procedure Compact_Repair_ADODatabase(DbName,MDB_PSWD: string);
var
DAO: OLEVariant;
ConnectStr:Ansistring;
begin
DeleteFile(DBName '.bk');
DAO:=CreateOleObject('JRO.JetEngine');
ConnectStr := 'Provider=Microsoft.Jet.OLEDB.4.0;';
if MDB_PSWD<>'' then ConnectStr := ConnectStr 'Jet OLEDB:Database Password=' MDB_PSWD ';';
ConnectStr := ConnectStr 'Data Source=' DbName; DAO.CompactDatabase (ConnectStr,ConnectStr '.bk');
DeleteFile(DBName);
RenameFile(DbName '.bk',DbName);
end;
|
jimmygump
一般會員 發表:8 回覆:12 積分:4 註冊:2003-09-09 發送簡訊給我 |
|
johnber
一般會員 發表:2 回覆:9 積分:2 註冊:2003-09-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |