Firedac和Oracle:在运行时工作,但在设计时不工作

时间:2018-01-18 02:25:33

标签: delphi oracle11g firedac

所有Stackoverflow读者都欢迎。

我正在尝试使用FireDac在我的网络上建立从Delphi应用程序到Oracle数据库的连接。

在运行时,“简单”:

procedure TForm1.Button1Click(Sender: TObject);
begin
    with FDConnection1.Params do
      begin
        DriverID := 'Ora';
        Database := '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.23)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBPROD)))';
        UserName := 'user';
        Password := 'password';
      end;

      FDConnection1.Open;
      FDQuery1.Open;
end;

工作正常,DBGrid显示数据(FDConnection断开未显示)。

但有人可以告诉我为什么,当我在设计时尝试设置和测试FDConnection时,我不断收到恼人的消息:

[FireDAC][Phys][Ora] ORA-12546: TNS:permission denied

我使用的参数完全相同,并且FDPhysOracleDriverLink位于具有正确oci.dll设置的表单上。

我还补充一点,我用32位编译,oci.dll是32位。

提前感谢您提供的任何建议

度过美好的一天

数学

1 个答案:

答案 0 :(得分:0)

检查在身份验证模式下是否没有问题。 在组件TFDConnection和TFDPhysOracleDriverLink中选择正确的选项

Oracle身份验证模式:

  • 普通-标准用户。默认值。
  • SysDBA -具有数据库管理员权限的用户。
  • SysOper -具有数据库操作员特权的用户。
  • SysASM –具有Oracle自动存储管理实例的数据库管理特权的用户。
  • SysBackup -具有对备份和恢复操作具有数据库管理特权的用户。
  • SysDG –具有对Oracle Data Guard操作具有数据库管理特权的用户。
  • SysKM –具有对透明数据加密密钥库操作具有数据库管理特权的用户。