程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> Access數據庫自動編號復位

Access數據庫自動編號復位

編輯:關於Access數據庫
一直都沒有去找解決的辦法,雖然知道肯定可以復位。。一個字“懶”
      先說一下復位的重要性,當我們在制作一個網站的時候,難免會對數據庫進行測試。這個過程中又不可避免的會產生一些垃圾數據,而且每個垃圾數據都占用了一個自動編號
     刪除這些垃圾的目的無非就是三個:1、為了數據的“純淨”;2、減少數據庫大小;3、恢復自動編號
     通常我們會利用兩種方式去刪除這些垃圾數據:1、直接在數據庫中對數據進行右鍵刪除數據;2、利用SQL語句“delete from [表名] where [條件]”來進行刪除相應的數據。這兩種方法達到的效果其實是一樣,前者是手動刪除的,後者就更為先進一點是利用了代碼刪除。
     一般的做到這步就結束了刪除工作,一般不清楚復位的重要性的人就會到這步了,在寫這文章之前本人也有這個現象。在前面我們提到了刪除垃圾數據的目的,當我們完成上面的步驟後,其實我們只達到了一個目的:“為了數據庫的‘純淨’”,而後面的兩個目的是達不到的。我們可以從數據庫大小就能很直觀的看出來。利用上面的方法刪除數據庫,無論我們刪除多少數據,數據庫大小始終是保持在數據未刪除狀態。這說明我們使用的方法只是刪除了表面現象,同時當我們在表中輸入新的字段,自動編號是從之前刪除的編號+1開始排列的。因此我們還得繼續往下走,下面的內容就是告訴大家如何達到後兩種目的的。
      在做完前面的步驟後,我們還必須做一個步驟,這個步驟也有兩種方法:
     最直接辦法是直接在數據庫中操作復位,具體步驟是:工具 — 數據庫實用工具 — 壓縮和修復數據庫
     還有一種就是利用代碼:

dim newfilestr as string
dim newfilestr1 as string
dim filenamestr as string filenamestr 被修復文件

newfilestr = "d:\new1.mdb" 臨時文件
deletefile newfilestr
newfilestr1 = "d:\new2.mdb" 臨時文件
deletefile newfilestr1

copyfile filenamestr, newfilestr, false
repairdatabase (newfilestr)
if password = "" then passWord 為數據庫密碼
dbengine.compactdatabase newfilestr, newfilestr1
else
dbengine.compactdatabase newfilestr, newfilestr1, , , ";pwd=" + trim(passWord)
end if

deletefile newfilestr
copyfile newfilestr1, filenamestr, false
deletefile newfilestr1

      用過開源CMS的人應該知道,程度後台都有一個壓縮數據庫,估計就是這個原理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved