加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

macos – 使用FireDac和OSX Mavericks连接到远程Oracle XE11数据

发布时间:2021-01-18 01:21:09 所属栏目:站长百科 来源:网络整理
导读:我做了一个小应用程序,它应该连接到在虚拟机器内运行的远程Oracle数据库(W8.1). 在一个成功的连接上,应该弹出一个showmessage. 我完成了以下步骤以确保我的应用程序能够连接: installing Oracle Instantclient on Mac OS/X without setting environment var

我做了一个小应用程序,它应该连接到在虚拟机器内运行的远程Oracle数据库(W8.1).

在一个成功的连接上,应该弹出一个showmessage.

我完成了以下步骤以确保我的应用程序能够连接:
installing Oracle Instantclient on Mac OS/X without setting environment variables?

该应用程序使用FireDac的Oracle FireDAC.Phys.Oracle驱动程序进行连接,并使用TFDGUIxLoginDialog进行登录.

确实没什么特别的:

procedure TForm1.Button1Click(Sender: TObject);
begin
  FDConnection1.Connected := True;
end;

procedure TForm1.FDConnection1AfterConnect(Sender: TObject);
begin
  ShowMessage('Connected');
end;

procedure TForm1.FDConnection1Error(ASender: TObject;
  const AInitiator: IFDStanObject; var AException: Exception);
begin
  ShowMessage(AException.ToString);
end;

这在Windows 8.1和10中运行良好而且快速.

但是在Mavericks中我得到了OID生成失败错误,如图所示.

如果我使用VM的IP或DNS名称进行连接并不重要.根本不会连接.

通过Oracle的SQL Developer能够连接.

Oralce SQL Developer大约需要15到20秒才能建立与数据库的连接.

我的应用程序甚至没有尝试那么长的连接.它在约7秒后失败.

也许在稳定连接可用之前它会超时?

如果是这样,有没有办法在抛出错误之前延长登录过程的时间?

或许这是一个完全的其他问题?

请注意,我花了大约5个小时来解决这个问题已经没有成功.

任何帮助是极大的赞赏.

解决方法

好的,这就是出了什么问题.

我的OSX Mavericks来宾系统的主机文件不正确.

就像@whosrdaddy发布的那样,您必须更改您的主机文件,如以下链接中所述:http://chaos667.tumblr.com/post/20006357466/ora-21561-and-oracle-instant-client-11-2

我确实输入了可以在分享中找到的Devicename – > OSX控制面板中的Devicename.

所以我所做的是在主机文件中输入此名称.

但是我使用的名称不正确.

我使用echo“127.0.0.1 $(hostname)打印正确的名称得到了正确的名称:127.0.0.1 LionVM.local.

我很长一段时间没有使用这个VM,可能忘记了我在不久前升级到Mavericks后重命名了devicename.

现在我的应用程序能够连接.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读