次の方法で共有


相互運用可能なアプリの作成

アプリケーションが複数のドライバーに対して同じコードを使用する場合は常に、そのコードをそれらのドライバー間で相互運用可能にする必要があります。 ほとんどの場合、これは簡単な作業です。 たとえば、前方専用カーソルを持つ行をフェッチするコードは、すべてのドライバーで同じです。 場合によっては、これはより困難な場合があります。 たとえば、SQL ステートメントで使用する識別子を構築するコードでは、識別子の大文字と小文字の区別、引用符、1 部構成、2 部構成、3 部構成の名前付け規則を考慮する必要があります。

一般に、相互運用可能なコードは、機能のサポートと機能の変動の問題に対処する必要があります。 機能のサポートとは、特定の機能がサポートされているかどうかを指します。 たとえば、すべての DBMS がトランザクションをサポートしているわけではないため、相互運用可能なコードはトランザクションのサポートに関係なく正しく動作する必要があります。 特徴の変動とは、特定の特徴がサポートされる方法の変動を指します。 たとえば、カタログ名は、一部の DBMS 内の識別子の先頭、および他の DBMS の識別子の末尾に配置されます。

アプリケーションは、設計時または実行時に機能のサポートと機能の変動に対処できます。 設計時の機能のサポートと変動に対処するために、開発者はターゲット DBMS とドライバーを調べ、同じコードがそれらの間で相互運用可能であることを確認します。 これは一般に、相互運用性が低いアプリケーションや限られたアプリケーションがこれらの問題に対処する方法です。

たとえば、開発者がバーティカル アプリケーションが 4 つの特定の DBMS でのみ動作することを保証し、それらの各 DBMS がトランザクションをサポートしている場合、アプリケーションは実行時にトランザクションのサポートを確認するコードを必要としません。 4 つの DBMS のみを使用する設計時の決定により、トランザクションが使用可能であると常に想定できます。各 DBMS は、それぞれトランザクションをサポートします。

実行時に機能のサポートと変動に対処するには、アプリケーションで実行時にさまざまな機能をテストし、それに応じて動作する必要があります。 これは一般に、高度に相互運用可能なアプリケーションがこれらの問題に対処する方法です。 機能サポートの問題の場合は、機能を省略可能にするコードを記述するか、機能が使用できない場合にエミュレートするコードを記述することを意味します。 機能変動の問題の場合は、考えられるすべてのバリエーションをサポートするコードを記述することを意味します。

このセクションでは、次のトピックを扱います。