动态创建、压缩Access在引用部分加入
use ComObj;1、OLE方式创建数据库
procedure TOfficeForm.SpeedButton1Click(Sender:TObject);
var
CreateAccess:OleVariant;
begin
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess:=CreateOleObject('ADOX.Catalog');
//通过OLE方式创建Access97格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Access97.mdb');
//通过OLE方式创建Access2000格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000.mdb');
end;2、通过OLE方式压缩Access97及Access2000格式的数据库
procedure TOfficeForm.spOLECompactClick(Sender:TObject);
var
CompactAccess:OleVariant;
begin
//通过建立JRO(Microsoft Jet and Replication Objects)对象进行访问
CompactAccess:=CreateOleObject('JRO.JetEngine');
//通过OLE方式压缩Access97格式的数据库
CompactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Access97.mdb','Provider=Micosoft.Jet.OLEDB.3.51;Data Source=c:\Access97Back.mdb;Jet OLEDB:Encrypt Database=True');
//删除旧的数据库文件
DeleteFile('c:\Access97.mdb');
//将压缩后的数据库文件改回原名
RenameFile('c:\Access97Back.mdb','c:\Access97.mdb');
//通过OLE方式压缩Access2000格式的数据库
ComPactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000.mdb','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000Back.mdb;Jet OLEDB:Encrypt Database=True');
DeleteFile('c:\Access2000.mdb');
RenameFile('c:\Access2000Back.mdb','c:\Access2000.mdb');
end;
use ComObj;1、OLE方式创建数据库
procedure TOfficeForm.SpeedButton1Click(Sender:TObject);
var
CreateAccess:OleVariant;
begin
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess:=CreateOleObject('ADOX.Catalog');
//通过OLE方式创建Access97格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Access97.mdb');
//通过OLE方式创建Access2000格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000.mdb');
end;2、通过OLE方式压缩Access97及Access2000格式的数据库
procedure TOfficeForm.spOLECompactClick(Sender:TObject);
var
CompactAccess:OleVariant;
begin
//通过建立JRO(Microsoft Jet and Replication Objects)对象进行访问
CompactAccess:=CreateOleObject('JRO.JetEngine');
//通过OLE方式压缩Access97格式的数据库
CompactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Access97.mdb','Provider=Micosoft.Jet.OLEDB.3.51;Data Source=c:\Access97Back.mdb;Jet OLEDB:Encrypt Database=True');
//删除旧的数据库文件
DeleteFile('c:\Access97.mdb');
//将压缩后的数据库文件改回原名
RenameFile('c:\Access97Back.mdb','c:\Access97.mdb');
//通过OLE方式压缩Access2000格式的数据库
ComPactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000.mdb','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Access2000Back.mdb;Jet OLEDB:Encrypt Database=True');
DeleteFile('c:\Access2000.mdb');
RenameFile('c:\Access2000Back.mdb','c:\Access2000.mdb');
end;
解决方案 »
- Tstoredproc调用存储过程的问题
- 凑热闹,恭喜 cc 也祝:没有的赶快找,找到的赶紧办事,已经办事的 赶紧要孩子
- 请教窗体打开的顺序
- 解决远程连接数据库时获取数据的速度问题。(分不够再加)
- 我下载了一个16*16的字库,通过区位码怎样读里面的点阵内容
- 大虾们,帮我看看这个关于Parent Interface的问题好吗?
- 关于远程接口问题
- Oracle关于日期查询,怎么才能用到索引?
- 急求"程序开发文档"样板,Very,very,very 急需!
- 我在我的一个软件上用到下载的控件,通过TOOLS/Environment Options的/Labrary/labrary path添加路径,但是总是出现错误,怎么办?
- 请问哪个表格控件可以在表格里画图?
- 如何在delphi中实现SNMP?
Delphi需要事先登记有关的注册.
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;function TransData.DaoCompactDB(const FileName:string):Boolean;
var
accesssdb:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(accesssdb) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'Temp.mdb';
accesssdb.CompactDatabase(FileName,TempFile);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
accesssdb:=Unassigned;
end;
end;
Delphi需要事先登记有关的注册.
Delphi需要事先登记有关的注册.
Delphi需要事先登记有关的注册.