标题: DELPHI中操作ACCESS数据库
ljjk5
元帅
Rank: 1


荣誉会员奖章
UID 46706
精华 1
积分 99426
帖子 49690
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
DELPHI中操作ACCESS数据库

DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库)

  以下代码在WIN2K,D6,MDAC2.6下测试通过,

  编译好的程序在WIN98第二版无ACCESS环境下运行成功.

  //声明连接字符串

  Const

  SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'

   +'Jet OLEDB:Database Password=%s;';

  

  //=============================================================================

  // Procedure: GetTempPathFileName

  // Author : ysai

  // Date : 2003-01-27

  // Arguments: (None)

  // Result : string

  //=============================================================================

  function GetTempPathFileName():string;

  //取得临时文件名

  var

  SPath,Sfile&:array [0..254] of char;

  begin

  GetTempPath(254,SPath);

  GetTempFileName(SPath,'~SM',0,SFile);

  result:=SFile;

  DeleteFile(result);

  end;

  

  //=============================================================================

  // Procedure: CreateAccessFile

  // Author : ysai

  // Date : 2003-01-27

  // Arguments: FileName:String;PassWord:string=''

  // Result : boolean

  //=============================================================================

  function CreateAccessFile(FileName:String;PassWord:string=''):boolean;

  //建立Access文件,如果文件存在则失败

  var

  STempFileName:string;

  vCatalog:OleVariant;

  begin

  STempFileName:=GetTempPathFileName;

  try

   vCatalog:=CreateOleObject('ADOX.Catalog');

   vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));

   result:=CopyFile(PChar(STempFileName),PChar(FileName),True);

   DeleteFile(STempFileName);

  except

   result:=false;

  end;

  end;

  

  //=============================================================================

  // Procedure: CompactDatabase

  // Author : ysai

  // Date : 2003-01-27

  // Arguments: AFileName,APassWord:string

  // Result : boolean

  //=============================================================================

  function CompactDatabase(AFileName,APassWord:string):boolean;

  //压缩与修复数据库,覆盖源文件

  var

  STempFileName:string;

  vJE:OleVariant;

  begin

  STempFileName:=GetTempPathFileName;

  try

   vJE:=CreateOleObject('JRO.JetEngine');

   vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),

   format(SConnectionString,[STempFileName,APassWord]));

   result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);

   DeleteFile(STempFileName);

  except

   result:=false;

  end;

  end;

顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-8 17:43
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP