Delphi:操作ACCESS技巧集
来源:优易学  2011-10-10 10:06:01   【优易学:中国教育考试门户网】   资料下载   IT书店

  1.DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库)
  以下代码在WIN2K,D6,MDAC2.6下测试通过,
  编译好的程序在WIN98第二版无ACCESS环境下运行成功.
  //在之前uses ComObj,ActiveX
  //声明连接字符串
  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(PChar(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;
  //=============================================================================
  // Procedure: ChangeDatabasePassword
  // Author : ysai
  // Date : 2003-01-27
  // Arguments: AFileName,AOldPassWord,ANewPassWord:string
  // Result : boolean
  //=============================================================================
  function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
  //修改ACCESS数据库密码
  var
  STempFileName:string;
  vJE:OleVariant;
  begin
  STempFileName:=GetTempPathFileName;
  try
  vJE:=CreateOleObject(\'JRO.JetEngine\');
  vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
  format(SConnectionString,[STempFileName,ANewPassWord]));
  result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
  DeleteFile(STempFileName);
  except
  result:=false;
  end;
  end;

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训