1

以下のコードは Delphi 2007 では機能しますが、Delphi 2010 ではこのエラーが発生します。

---------------------------
Error
---------------------------
Cannot load oci.dll library (error code 127).
The oci.dll library may be missing from the system path
or you may have an incompatible version of the
library installed.
---------------------------
OK   Details >>   
---------------------------

「接続済み」を「真」に設定すると、例外が発生します。

「oci.dll」のコピーを .exe ファイルと同じフォルダに配置しようとしましたが、同じメッセージが表示されます。

フォーム デザイナと表示可能な TSQLConnection コンポーネントを使用している場合にも、このメッセージが表示されます。

何かご意見は?

function TDBExpressConnector.GetConnection(username, password, servername: string) : TSQLConnection;
begin
  //take a username, password, and server
  //return a connected TSQLConnection
  try
    FSqlDB := TSQLConnection.Create(nil);
    with FSqlDB do begin
      Connected := False;
      DriverName := 'Oracle';
      GetDriverFunc := 'getSQLDriverORACLE';
      KeepConnection := True;
      LibraryName := 'dbxora30.dll';
      ConnectionName := 'OracleConnection';;

      Params.Clear;
      Params.Add('DriverName=Oracle');
      Params.Add('DataBase=' + servername);
      Params.Add('User_Name=' + username);
      Params.Add('Password=' + password);
      Params.Add('RowsetSize=20');
      Params.Add('BlobSize=-1');
      Params.Add('ErrorResourceFile=');
      Params.Add('LocaleCode=0000');
      Params.Add('Oracle TransIsolation=ReadCommited');
      Params.Add('OS Authentication=False');
      Params.Add('Multiple Transaction=False');
      Params.Add('Trim Char=False');
      Params.Add('Decimal Separator=.');

      LoginPrompt := False;
      Connected := True;
    end;

    Result := FSqlDB;
  except on e:Exception do
    raise;
  end;  //try-except
end;
4

2 に答える 2

0

Delphi 2010 では、Oracle 用の dbExpress ドライバは dbxora.dll です。名前付き接続のライブラリ名は dbxora30.dll です。正しい名前で動作する可能性が高いです!

于 2009-09-18T19:19:13.747 に答える
-2

ここで問題と修正を参照してください:私のブログ

私の投稿で言及したものをあなたのdllに置き換えるだけです。同じディレクトリにあるはずです。

于 2010-11-25T18:06:54.210 に答える