You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 11.2下32位Oracle ODBC连接异常问题求助

Delphi 11.2 ADO连接32位Oracle的ODBC异常问题

环境与连接配置

  • 操作系统:Windows 10
  • 开发环境:Delphi 11.2
  • 需求:保留旧程序使用的ODBC连接方式,建立32位Oracle连接

OLE DB连接字符串(可正常连接)

Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[HOST])(PORT=[PORT]))(CONNECT_DATA=(SID=[SID])(SERVER=DEDICATED)));User ID=[USERNAME];Password=[PASSWORD];

ODBC连接字符串(连接失败)

Driver={Microsoft ODBC for Oracle};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[HOST])(PORT=[PORT]))(CONNECT_DATA=(SID=[SID])(SERVER=DEDICATED)));User ID=[USERNAME];Password=[PASSWORD];

异常现象

  • 直接使用上述ODBC连接字符串时,报错:[Microsoft][ODBC driver for Oracle][Oracle]Error while trying to retrieve text for error ORA-01019.,且观察到ADO会将{Microsoft ODBC for Oracle}解析为MSDASQL提供程序
  • 临时规避方法:先通过OLE DB连接Oracle并断开后,再使用ODBC连接即可正常工作,但程序重启后问题复现
  • 反向操作触发另一个异常:先连接ODBC再连接OLE DB,会抛出*Catastrophic failure.*异常

所用Delphi ADO连接代码

ADO := TADOConnection.Create(Nil);
Try
  ADO.ConnectionString := ConnectionStr;
  ADO.LoginPrompt := False;
  Try
    Try
      ADO.Connected := True;
      if ADO.Connected then
        MessageBox(0, Pchar('Connected to Database.' + sLineBreak + sLineBreak + 'Using Provider: ' + ADO.Provider + sLineBreak + sLineBreak + 'Connection String:' + sLineBreak + ConnectionStr + sLineBreak + sLineBreak + 'Used Conncetions String:' + sLineBreak + ADO.ConnectionString), Pchar('Connected'), MB_OK+MB_ICONINFORMATION);
      Result := True;
    Except
      On E: Exception do
        raise Exception.Create('Failed to connect.' + sLineBreak + sLineBreak + 'Using Provider: ' + ADO.Provider + sLineBreak + sLineBreak + 'Connection String:' + sLineBreak + ConnectionStr + sLineBreak + sLineBreak + 'Used Conncetions String:' + sLineBreak + ADO.ConnectionString + sLineBreak + SLineBreak + 'Error:' + sLineBreak + E.Message);
    end;
  Finally
    if ADO.Connected then
      ADO.Connected := False;
  end;
Finally
  ADO.Free;
end;

求助

希望找到无需依赖OLE DB临时初始化的方案,彻底解决ODBC直接连接Oracle失败的问题。


内容的提问来源于stack exchange,提问作者Henrik Larsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:05:18