回答
的整理表...
USE YourTable EXCLUSIVE
PACK
,如果你的表有任何備註字段做
PACK MEMO
如果表中有索引,包會自動重新索引它們。
正如Arnis所提到的,VFP中的大多數內容都基於表格,表格,類別,報表,儘管它們有不同的擴展名。所以,你可以做
use YourForm.scx exclusive
pack memo
use YourClassLib.vcx exclusive
pack memo
use YourReport.frx exclusive
pack memo
use YourProject.pjx exclusive
pack memo
此外,如果你經常的.dbf表,你想殺死單獨的索引...
use YourTable exclusive
delete tag MyIndexTag
,或者刪除所有索引
delete tag all
Reindexing and packing tables helps。即使是類庫(.vcx)也可以打包。但不幸的是我不記得確切的命令。
另一個要牢記的是,FoxPro數據庫只是服務器上文件的集合。因此,諸如服務器磁盤碎片以及確保從這些文件中排除反病毒等問題也可能會有所不同。
對於重新編排,你最好自己做一個像這樣的過程:REINDEX有時無法修復索引損壞。
procedure reindextable
lparameters cTable
local cDBC, nTagCount, cTag, nTag
local array arrTags[1]
if pcount() = 0
? "No parameter"
return -1
endif
close tables all
use (cTable) exclusive
? "Reindexing " + alltrim(alias())
nTagCount = tagcount()
if nTagCount = 0
? "No tags found"
return -1
endif
dimension arrTags[nTagCount, 7]
for nTag = 1 to nTagCount
arrTags[nTag, 1] = tag(nTag)
arrTags[nTag, 2] = key(nTag)
arrTags[nTag, 3] = for(nTag)
arrTags[nTag, 4] = unique(nTag)
arrTags[nTag, 5] = primary(nTag)
arrTags[nTag, 6] = candidate(nTag)
arrTags[nTag, 7] = descending(nTag)
endfor
* OK, we have the info to re-create the tags. Now delete the existing tags.
delete tag all
* Now re-create the tags
for nTag = 1 to nTagCount
if arrTags[nTag, 5]
* Primary key; need to use ALTER TABLE
cTag = "ALTER TABLE " + cTable + " ADD PRIMARY KEY " + arrTags[nTag, 2]
* Thanks to Anders Altberg for the info that you can add a filter to a PK, as long
* as the TAG appears *after* the filter.
if not empty (arrTags[nTag, 3])
cTag = cTag + " FOR " + arrTags[nTag, 3]
endif
cTag = cTag + " TAG " + arrTags[nTag, 1]
else
* Regular index (or possibly a Candidate)
cTag = "INDEX ON " + arrTags[nTag, 2] + " TAG " + arrTags[nTag, 1]
if not empty (arrTags[nTag, 3])
cTag = cTag + " FOR " + arrTags[nTag, 3]
endif
if arrTags[nTag, 4]
cTag = cTag + " UNIQUE "
endif
if arrTags[nTag, 6]
cTag = cTag + " CANDIDATE "
endif
if arrTags[nTag, 7]
cTag = cTag + " DESC "
endif
endif
* This will create the tag
&cTag
? cTag
endfor
? "Success."
return 0
+1好點斯圖爾特。我的老年人一定會變得健忘。 – kevinw 2009-10-17 21:23:12
如果你沒有創建重建索引過程中,跑出去並獲得斯通菲爾德數據庫工具包:
http://stonefield.com/sdt.aspx
一個它做的事情是建立有關索引的元數據。它有一個命令來重新索引所有表或一次一個表。您可以添加或刪除索引,不需要跟蹤索引或更改重新索引例程。驗證元數據(內置功能),並將更新後的元數據與您的DBC文件一起發貨並更新。生產表(結構和索引)已更新,以符合您在開發中的要求。
大多數使用數據庫包含DBF的VFP開發人員發現這個工具是不可或缺的。至於包裝你的源代碼(SCX,VCX,FRX,LBX,MNX,PJX),你所要做的就是在你構建項目時重建所有東西。 VFP將打包所有源代碼。這將減少生成的可執行文件的大小,而不是優化或調整數據庫。如果命令中有事(死機,停電等)
裏克
包可以dangerous-,該表可能被破壞。在包裝一張桌子之前,請始終進行備份。
我們很少在辦公室使用PACK,因爲我們很少刪除臨時表中的記錄以外的任何內容 - 其他所有內容都是爲了歷史目的而保留的。儘管如此,每隔一段時間肯定會使用REINDEX。
- 1. 轉換Visual FoxPro數據庫
- 2. FoxPro數據庫和asp.net
- 3. PHP odbc_connect Foxpro數據庫
- 4. 從.Net調用FoxPro代碼
- 5. 將Foxpro數據庫傳輸到SQL Server
- 6. visual foxpro數據庫連接問題
- 7. 如何清空foxpro數據庫表?
- 8. 用Java讀取FoxPro 2.6數據
- 9. 使用Foxpro將數據插入MYSQL
- 10. 在dbf-visual foxpro中搜索數據9
- 11. 檢索FoxPro 7.0數據庫架構
- 12. 從Java訪問Visual FoxPro數據庫
- 13. 調整大量數據幀
- 14. 數據庫調整通知:
- 15. 調整MySQL數據庫
- 16. 調整數據表訂貨
- 17. 將數據調整到ListView
- 18. Visual FoxPro數據庫,顯示數據中的空格
- 19. Visual Foxpro。將數據從網格插入數據庫
- 20. 從Glassfish服務器上的FoxPro數據更新sql數據庫
- 21. 如何將Visual Foxpro數據庫轉換爲SQL Server數據庫
- 22. 固定數據表調整例如:無法調整列寬
- 23. FoxPro中
- 24. FoxPro唯一隨機數
- 25. 計數有狀態的FoxPro
- 26. 限制數組在Visual FoxPro
- 27. Visual FoxPro 9動態數組
- 28. Visual FoxPro 9.0寫入FoxPro 2.6表
- 29. 如何根據數據調整角度數據表的高度
- 30. 數據透視表值調整
順便說一句,如果你做了一個PACK,備註字段仍然會打包以及刪除標記爲刪除的行。 PACK MEMO僅清除備註字段中的空格,但不刪除標記爲刪除的行。 – kevinw 2009-10-17 15:40:47