|
もしDirect Oracle AccessがOracle Net 8以降を検知すると、新しいNet8インターフェースが使われます。もしOracle Net 8以降が見つからなかったら、古いSQL*Net関数が、SQL*Net 1.x or 2.x, Oracle 7.x and all previous Direct Oracle Access releasesとの互換を保つために使われます。
理論上、Oracle Net 8は以前のバージョンのSQL*Net と100%互換があります。しかしもしアプリケーションでLOB'sやObjectsのような機能を使いたいとすれば、新しいOracle Net 8インターフェースを使わなくてはいけません。この新しいインターフェースの関係で、次の非互換が存在します:
| w | LongとLong Rawカラムは、TOracleQuery.GetLongFieldメソッドを使って、サーバーからランダムにそして区分的に読み込まれることはありません。 メソッドは機能します、しかし実行後直ぐにLong全体は読み込まれます。そしてGetLongFieldメソッドはメモリーから要求されたピースを取得します。 |
| w | ToracleQueryとToracleDataSetの ErrorPositionとErrorLine はNet8 8.0.3と8.0.4ではサポートされません。なぜならこの情報は失われているからです。 常に0を返します。Net8 8.0.5以降ではこれら関数は正しく実行されます。 |
Net8クライアントでDirect Oracle Accessに古いSQL*Netインターフェースを使わせるには、それによって上記の非互換を取り除き、TOracleSession.Preferences.UseOCI7 booleanをTrueに設定します。 この方法で、SQL*NetとOracle Net 8クライアントで100%の互換性を確保できます。 明らかにOracle Net 8の特別機能はアプリケーションで使用することが出来ません。それらの機能は:
| 次の機能はOracle Net 8.1以降が必要です |
| Oracle Net 9.0以降を必要とする機能は: |
| Oracle Net 9.2以降を必要とするのは: |
|