利用delphi压缩和修复

上传人:mg****85 文档编号:37174355 上传时间:2018-04-08 格式:DOC 页数:4 大小:26KB
返回 下载 相关 举报
利用delphi压缩和修复_第1页
第1页 / 共4页
利用delphi压缩和修复_第2页
第2页 / 共4页
利用delphi压缩和修复_第3页
第3页 / 共4页
利用delphi压缩和修复_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用delphi压缩和修复》由会员分享,可在线阅读,更多相关《利用delphi压缩和修复(4页珍藏版)》请在金锄头文库上搜索。

1、利用利用 DelphiDelphi 压缩和修复压缩和修复MS Access 2000 的数据库文件 武汉科技学院电信系 蔡晖 广州正泰商业数据有限公司 邢玉秀 在使用 MS Access 2000 的过程中,我们发现随着时间的推移,由于Access 会给数据库自动保留一份副本集,这样造成了数据库占用的空间越来越大。如果在 Access 环境中,我们可以通过点选菜单(工具-数据库实用工具-压缩和修复数据库) ,来将 Access 数据库压缩。那么通过 Delphi 能不能压缩和修复 Access 数据库呢?答案是肯定的。利用下面的这个函数,成功的实现了实现这个功能。代码如下:Function C

2、ompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean; const sProvider = Provider=Microsoft.Jet.OLEDB.4.0; var oJetEng : JetEngine; begin sOldMDB := sProvider + Data Source= + sOldMDB; sNewMDB := sProvider + Data Source= + sNewMDB; try oJetEng := CoJetEngine.Create; oJetEng.CompactDatabase(s

3、OldMDB, sNewMDB); oJetEng := Nil; Result := True; except oJetEng := Nil; Result := False; end; end; 使用该函数的例子如下: if CompactAndRepair(d:dbOld.mdb, d:dbNew.mdb) then ShowMessage(操作成功) else ShowMessage(操作失败); 应注意的是,在压缩和修复数据库的过程中,不能有其它的操作打开该数据库,否则操作会失败。 另外,要想上面的函数编译通过,你需要先把 Microsoft Jet and Replication

4、Objects 2.1 Library 导入到 Delphi 中,步骤如下: 1、在 Delphi 集成开发环境中,点选菜单(Project-Import Type Library)。 2、在弹出的对话框中,移动滚动条,找到 Microsoft Jet and Replication Objects 2.1 Library。 3、点击 Install 按钮。 然后把 JRO_TLB 单元添加到你的 Delphi 应用程序中的 Uses 单元。好了,运行程序试一下吧,数据库文件是不是小了好多呢? (以上程序在 Delphi5 Enterprise、Access2000、Windows98SE 下

5、调试通过)/*DELPHI 压缩 ACCESS 数据库 2009-04-03 11:06function TFrmDBRestore.CompactDatabase(const APassWord: string): Boolean;varstrConn,strConn1: string;STempFileName: string;JE: OleVariant;beginstrConn := Provider=Microsoft.Jet.OLEDB.4.0;+ password=“tsadminwho“; /用户工作组(*.mdw)密码+ User ID=adminwho; /用户工作组(*.

6、mdw)用户名+ Data Source=+GAppPath+DataTetraSys.mdb; +Persist Security Info=True;+ Jet OLEDB:System database=+GAppPath+ts6Secured.mdw; /用户工作组文件+ Jet OLEDB:Database Password=%s; /数据库密码+ Jet OLEDB:Engine Type=4 ;strConn1 := Provider=Microsoft.Jet.OLEDB.4.0;+ Data Source=%s;Result := False;STempFileName :=

7、 GAppPath+DataSysCompact.mdb;tryJE := CreateOleObject(JRO.JetEngine); /建立 OLE 对象,函数结束 OLE 对象超过作用域自动释放OleCheck(JE.CompactDatabase(Format(strConn, APassWord),Format(strConn1, STempFileName, APassWord); /压缩数据库/复制并覆盖源数据库文件,如果复制失败则函数返回假,压缩成功但没有到函数的功能/Result := CopyFile(PChar(STempFileName), PChar(TetraSys.mdb), true);DeleteFile(GAppPath+DataTetraSys.mdb);RenameFile(STempFileName,GAppPath+DataTetraSys.mdb);Result := true;Except/压缩失败on e:exception doBeginpromptDlg(数据库压缩失败!请查看下列信息代码+#13#10+e.Message,GApptitle,MB_OK+MB_ICONWARNING)End;End;end;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号