【问题标题】:delphi mysql ado connectivitydelphi mysql ado 连接
【发布时间】:2013-01-22 22:19:39
【问题描述】:

我正在尝试让 ADO 连接在 Delphi XE3 中工作,但遇到了很大的困难。

我的机器 (Win7 x64) 上安装了 ODBC 驱动程序,该驱动程序在 ODBC 数据源下显示为“mySQL ODBC 5.1 驱动程序”。 mysql 5.5版。

我的理解是我应该能够在表单上放置一个 TadoConnection 组件,然后为它分配一个适当的连接字符串,如下所示:

var
  conn: TADOConnection;

procedure TForm1.Button1Click(Sender: TObject);
begin
  conn := conn.Create(nil);
  conn.ConnectionString := 'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=myserver; PORT=3306; DATABASE=mysql; UID=myuser; PASSWORD=mypassword;OPTION=3;';
  conn.Connected := true;
end;

当我运行应用程序并单击按钮时,我得到一个错误

Project Project1.exe 引发异常类 EOleException,并带有消息“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。

谁能帮帮我?我错过了什么?我已经尝试在网上寻找示例,但到目前为止没有任何乐趣。任何建议都非常受欢迎...

【问题讨论】:

  • 您很可能已经配置了 C:\Windows\System32\odbcad32.exe instedad of C:\Windows\SysWOW64\odbcad32.exe
  • 这通常是安装 64 位驱动程序然后尝试从 32 位代码访问它的问题(反之亦然)。驱动程序和您的可执行文件是否都具有相同的“位数”(例如,都是 32 位或都是 64 位)?如果是这样,您是否配置了 32 位 ODBC 驱动程序(如上面@bummi 所述)? (控制面板中的默认设置是 64 位 ODBC 管理员。)
  • 我认为你们俩都可以有所作为。我打开了 syswow64\odbcad32.exe 并且那里没有可用的驱动程序。这是否意味着我找错了司机?我应该拥有哪一个?我有一个 32 位代码库,所以我应该使用 32 位驱动程序 - 我假设我拥有的驱动程序是 32 位的,就好像我打开 system32\odbcad32.exe 驱动程序显示如果我单击添加(而不是在 syswow64\ odbcad32.exe)...谢谢
  • 供参考 - 原来留下的 cmets 是正确的。我不得不删除现有的驱动程序并安装 32 位版本的 mysql odbc 连接器(x86、32 位)。使用最新版本,因此连接字符串驱动程序读取 'DRIVER={MySQL ODBC 5.2a Driver}'。
  • 为什么要使用 ADO?看起来有点棘手的链:Delphi -> ADO -> ODBC ->mySQL。也许你可以得到 MySQL 的原生 OLEDB 驱动程序?或者也许你可以使用原生的 Delphi 工具,比如 DB Express、ZeosDB、AnyDAC、UniDAC?特别是考虑到微软正在弃用 ADO,用 ADO 开始新项目似乎是令人反感的方向。或者至少也许你可以通过 Torry 冲浪并为 Delphi 获得一些直接的 ODBC 连接组件。

标签: mysql delphi delphi-xe3


【解决方案1】:

您只需要检查您的 ODBC 驱动程序...转到控制面板...管理工具...并检查您拥有的 ODBC 驱动程序版本...然后使用正确的...例如,我正在使用MySQL ODBC 的最后一个版本。 Driver={MySQL ODBC 5.2 ANSI 驱动程序}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多