delphi xe 10.2 中编译64位程序中连接ACCESS数据库的问题

目前,我在编写一个EXCEL的64位插件,是DELPHI XE10.2 作为编程环境的。在我编译到64位插件时,在IDE环境中已经测试通过的链接,提示出现'' 未找到提供程序,可能未安装"类似的错误 ,用到的还是TAdoConnection中的JET 驱动(oledb)方式。

系统环境是WIN10+X64,delphixe10.2,编译为64位的DLL插件。

因为在IDE中已经测试通过,在32位环境下也编译通过了,但在64下编译时出错,可以判断问题出在JET驱动方式连接不支持64位系统 。

经网上检索,确实是这样的,Jet方式不支持 64位,得换用64位的驱动程序。

=========

解决

1. 下载运行 AccessDatabaseEngine_x64.exe
(http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en)

2. 改变连接字符串:
Driver={Microsoft Access Driver (*.mdb,  *.accdb)};DBQ=mdb.mdb;uid=admin;pwd=password;//mdb和accdb中间有个空格
 

程序代码如下:

function OpenAccessX64(apath: string): tadoconnection;
var
  filename, PATH_name: WideString;
  CON: TADOConnection;
begin
  CON := TADOConnection.Create(nil);
  CON.LoginPrompt := false;

  filename := apath + 'SysData.mdb';
  CON.ConnectionString :=
    'Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=' + filename +
    ';Persist Security Info=False;' +
    'Mode=Share Deny Read|Share Deny Write;Extended Properties="";Jet OLEDB:System';
  CON.Connected := True;

  result := CON;
end;

到此,我在WIN10+64位+delphi xe中编译64位程序时,实现了64位的ACCESS数据连接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值