Oracle サーバーに関する質問(FireDAC)

提供: RAD Studio
移動先: 案内検索

FAQ(FireDAC) への移動


このトピックでは、Oracle Server に関係する質問と回答の一覧を扱います。

Q1: 既に Oracle クライアントが動作している PC にアプリケーションを配置することを考えているので、レジストリ キーを使用したくありません。 自分のアプリケーション専用のパスと TNS_ADMIN 変数を作成したいと思います。

A: Oracle Instant Client のフォルダに tnsnames.ora ファイルをただ格納するだけです。 TNS_ADMIN や TNS_NAMES を指定するなど、それ以外のことは一切不要です。 TNS エイリアスを使用する必要がない場合は、空の tnsnames.ora ファイルを格納します。

Q2: D2009 アプリケーションで "Cannot initialize OCI environment"(OCI 環境を初期化できません)というエラーが発生します。 どこが間違っているのでしょうか。

A: FireDAC では、D2009 に必要な Unicode モードでは OCI を初期化できません。 おそらく、Oracle クライアントのバージョンが古いことが原因ではないかと思われます。 次のいずれかを行うことをお勧めします。

  • Oracle クライアント ソフトウェアをバージョン 9.0 以上にアップグレードする。
  • 非 Unicode 版の Delphi(D2007 以前)を引き続き使用する。

Q3: Oracle 8.0.5 サーバーに接続する必要があります。 それは可能ですか。

A: 以下の "ロードマップ" に従って、Oracle クライアントと Delphi の適切なバージョンを選択できます。

  • Delphi 2009 以降で FireDAC を使用するには、Oracle 8.1.5 以上のクライアントが必要です。Oracle 8.1.5 からはクライアントが Unicode で正常に動作するからです。
  • Delphi 2007 またはそれ以前で FireDAC を使用するには、Oracle 8.0.3 以上のクライアントが必要です。

Q4: Oracle でテーブルをロックするには、どうすればよいでしょうか。

A: そのような場合の一般的なスケルトンは次のようになります。

FDConnection1.StartTransaction;
try
FDConnection1.ExecSQL('LOCK TABLE ...');
.........
FDConnection1.Commit;
except
FDConnection1.Rollback;
raise;
end;

Q5: FireDAC のログイン ダイアログのように、Oracle サーバーのリストを取得するには、どうすればよいでしょうか。

A: 以下のものを使用します。

Q6: Oracle オブジェクト拡張機能はサポートされていますか。

A: 現時点では、サポートされていません。 回避策としては、PL/SQL をラップする手続きや関数を作成できます。 このアプローチを用いれば、Oracle Advanced Queuing を扱うことができます。