国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

如何給Table減肥

2019-11-17 05:33:37
字體:
供稿:網(wǎng)友

  用BCB進行多媒體數(shù)據(jù)庫開發(fā)時常會發(fā)現(xiàn)這樣一個現(xiàn)象,當(dāng)你把一條記錄從表中刪除時,表檔 大小并沒有相應(yīng)減小。這樣在進行多次插入刪除之后,表文件就會越來越龐大。之所以會出現(xiàn)這種現(xiàn)象,是因為TTable控件的 Delete Method并不真正從表中刪除記錄,而只是在記錄前加上一個刪除標(biāo)志。在DBase和FoXPRo中用Pack語句對表進行壓縮,但在TTable類中卻沒有相應(yīng)的函數(shù)。其實在BDE的API函數(shù)中已經(jīng)提供了DbipackTable來對DBase或Foxpro表進行壓縮,但是這個函數(shù)對Paradox的表不起作用。要想給Paradox 表減肥得用DbiDoRestrUCture函數(shù)來完成,以下例程完成Pack Paradox表的功能。

//This function Pack the Paradox table. write by zodiac
void __fastcall TForm1::PackParadoxTable(hDBIDb hDB, AnsiString TblName)
{
//Paradox table use a quite different way to be packed than
//DBase or Foxpro table, it use the DBiDoRestructure not the
// DBiPackTable
DBIResult rslt;
CRTblDesc TblDesc;
//filled the structure CRTbiDesc with 0
memset((void *)&TblDesc,0,sizeof(CRTblDesc));
//copy the table name and type to the structure
lstrcpy(TblDesc.szTblName,TblName.c_str());
lstrcpy(TblDesc.szTblType,szPARADOX);
//set bPack to true to specify Pack Function
TblDesc.bPack=true;
//Pack the table
rslt=DbiDoRestructure(hDB,1,&TblDesc,NULL,NULL,NULL,false);
if(rslt!=DBIERR_NONE)
application->MessageBox("不能壓縮表","壓縮數(shù)據(jù)表出錯",MB_ICONERROR);
}
注重,在Restructure之前,表必須處于關(guān)閉狀態(tài)。以下例程調(diào)用PackParadoxTable.

void __fastcall TForm1::PackTable(AnsiString table_name)
{
//Pack the table
TTable *temp_table=new TTable(Form1);
temp_table->DatabaseName="YourDatabaseAlias";
temp_table->TableName=table_name;
temp_table->Exclusive=true;
temp_table->Open();
//get the Database Handle
hDBIDb hDB=temp_table->DBHandle;
temp_table->Close();
PackParadoxTable(hDB,table_name);
temp_table->Close();
temp_table->Free();
}

對Foxpro和DBase的Pack參見BDE API Help的DbiPackTable函數(shù)說明。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 仪陇县| 库车县| 和顺县| 洞口县| 吉林市| 大洼县| 遂平县| 穆棱市| 波密县| 尉氏县| 周至县| 鄂托克前旗| 常山县| 南江县| 吉隆县| 宜城市| 二连浩特市| 伊通| 阆中市| 仪陇县| 焦作市| 吴旗县| 孟津县| 连南| 镇赉县| 曲水县| 蛟河市| 逊克县| 平舆县| 诏安县| 延庆县| 安溪县| 金秀| 巩义市| 新巴尔虎左旗| 如东县| 新竹市| 波密县| 樟树市| 定州市| 合阳县|