计算机二级辅导:Delphi操作ACCESS技巧集计算机等级考试

文章作者 100test 发表时间 2010:01:01 09:34:21
来源 100Test.Com百考试题网


  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.

相关文章


2009年下半年全国计算机二级Delphi笔试答案计算机等级考试
2009年9月全国计算机二级Delphi笔试试题计算机等级考试
我能在共享软件或商业软件中使用Indy组件吗?计算机等级考试
计算机二级辅导:Delphi的消息处理计算机等级考试
计算机二级辅导:Delphi操作ACCESS技巧集计算机等级考试
编写的ActiveX控件全攻略计算机等级考试
计算机二级辅导:第三方控件使用方法计算机等级考试
在DELPHI中如何调用系统对话框计算机等级考试
计算机二级辅导:用Delphi编写VxD设备驱动程序计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛