access里有备注字段和old字段。以前保存了一些数据。使数据库有几十M,现在我已经把记录全部删了,但为什么文件的体积一点都没有小。
解决方案 »
- 数据库主键重复问题
- 请教ACCESS中的insert用法问题,在SQLSERVER中可以,在ACCESS中就报错,得怎么改?请教高手
- 动态生成的图标名称的获取,急等!急等!望诸位多定
- DateTimePicker中时间格式的问题??谢谢
- devexpress 控件组dxDBInspector或cxDBVerticalGrid的控制问题
- 哪有delphi5
- 请问如何获取url重定向后的网页内容??!!
- 请问如何在程序中判断sql server的库和表是否存在?
- 急急!在用TDatabase控件登陆SQL SERVER 2000数据库时,如何截取登陆时的出错信息
- 请问如何做软件的皮(skin)?
- 大虾们我用adoquery控件删除数据库记录时出现list index out of bounds(0),请问是何原因啊
- TstringGrid
unit AccessTools;interfaceuses Sysutils, ComObj, Dialogs, Variants;function DaoActive(var DaoObject:OleVariant):Boolean;
function CompactMDB(const FileName:string):Boolean;
function RepairMDB(const FileName:string):Boolean;
function CreateMDB(MDBName: string):Boolean;implementationfunction DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;//Compact Access MDB file
function CompactMDB(const FileName:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'~msaTemp.mdb';
db.CompactDatabase(FileName,TempFile);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;// Repair Access MDB file
function RepairMDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;// Create Access MDB file
function CreateMDB(MDBName:string):Boolean;
var
CreateAccess: OLEVariant;
begin
Result:=False;
try
CreateAccess:=CreateOleObject('ADOX.Catalog');
try
CreateAccess.Create(Format('Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s', [MDBName]));
finally
CreateAccess:=Unassigned;
end;
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end;
end; end.