JRO-CompactDataBase
2016-03-25 10:30
369 查看
{$R *.dfm}
uses Registry,ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var Reg:TRegistry;
Jro:OleVariant;
p,f:array[0..Max_Path] of Char;
ConnStr:String;
AccessComp:String;
begin
//使用JRO,必须确定安装了MDAC
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKey_Local_Machine;
if not Reg.OpenKey('\SoftWare\Microsoft\DataAccess',False) then
begin
MessageDlg('MDAC Not Installed.',mtError,[mbOK],0);
Reg.CloseKey;
Exit;
end;
Reg.CloseKey;
finally
Reg.Free;
end;
//ShowmessageFmt('%d,%d',[Length(p),Sizeof(p)]); {261,522}
Windows.GetTempPath(System.Length(p),p); //获取临时文件路径
//GetTempFileName(
// lpPathName: PChar; {路径}
// lpPrefixString: PChar; {前缀}
// uUnique: UINT; {指定生成文件名的数字, 文件名将根据参数2、参数3来生成}
// lpTempFileName: PChar {文件名需要的缓冲区}
//): UINT; {指定生成文件名的数字, 如果参数3是0, 则返回文件名长度}
Windows.GetTempFileName(p,'~My',20,f); //生成一个临时文件名
//Showmessage(f);
Jro:=ComObj.CreateOleObject('JRO.JetEngine'); //注意与使用CreateOleObject('DAO.DBEngine.36');的区别
AccessComp:='f:\mcmygs.mdb';
ConnStr:='Provider=Microsoft.Jet.OleDB.4.0;PassWord=;Data Source=%s';
Jro.CompactDataBase(Format(ConnStr,[AccessComp]),Format(ConnStr,[f])); //压缩和修复数据库
Windows.CopyFile(PChar(@f[0]),PChar(AccessComp),False);
SysUtils.DeleteFile(f); //删除临时文件名
//Unassigned与Null是有区别的:Null表示该值未知,Unassigned表示未赋值
Jro:=Unassigned; //释放
end;
uses Registry,ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var Reg:TRegistry;
Jro:OleVariant;
p,f:array[0..Max_Path] of Char;
ConnStr:String;
AccessComp:String;
begin
//使用JRO,必须确定安装了MDAC
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKey_Local_Machine;
if not Reg.OpenKey('\SoftWare\Microsoft\DataAccess',False) then
begin
MessageDlg('MDAC Not Installed.',mtError,[mbOK],0);
Reg.CloseKey;
Exit;
end;
Reg.CloseKey;
finally
Reg.Free;
end;
//ShowmessageFmt('%d,%d',[Length(p),Sizeof(p)]); {261,522}
Windows.GetTempPath(System.Length(p),p); //获取临时文件路径
//GetTempFileName(
// lpPathName: PChar; {路径}
// lpPrefixString: PChar; {前缀}
// uUnique: UINT; {指定生成文件名的数字, 文件名将根据参数2、参数3来生成}
// lpTempFileName: PChar {文件名需要的缓冲区}
//): UINT; {指定生成文件名的数字, 如果参数3是0, 则返回文件名长度}
Windows.GetTempFileName(p,'~My',20,f); //生成一个临时文件名
//Showmessage(f);
Jro:=ComObj.CreateOleObject('JRO.JetEngine'); //注意与使用CreateOleObject('DAO.DBEngine.36');的区别
AccessComp:='f:\mcmygs.mdb';
ConnStr:='Provider=Microsoft.Jet.OleDB.4.0;PassWord=;Data Source=%s';
Jro.CompactDataBase(Format(ConnStr,[AccessComp]),Format(ConnStr,[f])); //压缩和修复数据库
Windows.CopyFile(PChar(@f[0]),PChar(AccessComp),False);
SysUtils.DeleteFile(f); //删除临时文件名
//Unassigned与Null是有区别的:Null表示该值未知,Unassigned表示未赋值
Jro:=Unassigned; //释放
end;
相关文章推荐
- 背景透明,文字不透明(兼容个个浏览器)
- VS快捷键大全
- Dos窗口一闪而过,如何查看错误?
- Oracle复杂查询
- PHP - Iterator接口详解
- 扒一扒HTTPS网站的内幕
- C++三大函数(The Big Three)
- Windows Direct3D Intro - Device Lost
- MBProgressHUD实现加载动画效果
- 使用WinDbg调试Windows内核(二)
- linux下安装sqlite
- 【libav】libav的常用方法
- DAO-CompactDataBase
- 北京Uber优步司机奖励政策(3月25日)
- 批量SSH操作工具---OmniTTY安装
- 测试技术的一些概念
- pysproto bug修复
- 掘金 Android 导航改进过程
- opensips介绍
- select选中方法