(57)【特許請求の範囲】
【請求項１】
複数のパラメータのうち一部又は全部のパラメータに対応する入力値を保持する入力値保持手段と、
上記複数のパラメータのうち上記入力値保持手段が入力値を保持したパラメータについては当該入力値を設定可能であり、上記複数のパラメータのうち上記入力値保持手段が入力値を保持しなかったパラメータについては所定の値が設定された構文を保持する構文保持手段と、
上記入力値保持手段が保持した入力値を、上記構文保持手段が保持した構文にバインド処理を行うバインド手段と、
上記バインド手段がバインド処理した構文をデータベースサーバに送信してデータ処理依頼するデータ処理依頼手段と
を有することを特徴とするデータベースクライアント装置。
【請求項２】
上記構文保持手段が保持する構文は、１又は複数の構文リストから選択したことを特徴とする請求項１に記載のデータベースクライアント装置。
【請求項３】
上記構文は、ＳＱＬ構文であり、
上記所定の値は、入力値が文字情報の場合には、ＮＵＬＬであり、数値情報の場合には、
数値の零であって、
Ｃ言語により記述された言語により設計されたことを特徴とする請求項１又は２に記載のデータベースクライアント装置。
【請求項４】
データベースクライアント装置に搭載されたコンピュータを、
複数のパラメータのうち一部又は全部のパラメータに対応する入力値を保持する入力値保持手段と、
上記複数のパラメータのうち上記入力値保持手段が入力値を保持したパラメータについては当該入力値を設定可能であり、上記複数のパラメータのうち上記入力値保持手段が入力値を保持しなかったパラメータについては所定の値が設定された構文を保持する構文保持手段と、
上記入力値保持手段が保持した入力値を、上記構文保持手段が保持した構文にバインド処理を行うバインド手段と、
上記バインド手段がバインド処理した構文をデータベースサーバに送信してデータ処理依頼するデータ処理依頼手段と
して機能させることを有することを特徴とするデータベースクライアントプログラム。
【請求項５】
データベースクライアント装置と、データベースクライアントサーバとを備えるデータベースシステムにおいて、
データベースクライアント装置として請求項１〜３のいずれかに記載のデータベースクライアント装置を適用したことを特徴とするデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースクライアント装置、データベースクライアントプログラム、及びデータベースシステムに関する。
【背景技術】
【０００２】
従来、ＯＲＡＣＬＥ（登録商標）データベースクライアントにおいて、アプリケーション（以下、「ＡＰＬ」とも呼ぶ）は、データベースアクセス機能を実装するために、ＯＣＩ（Ｏｒａｃｌｅ  Ｃａｌｌ  Ｉｎｔｅｒｆａｃｅ）を使用することが可能である。ＯＣＩは、リレーショナルデータベース管理システム（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ、以下、「ＲＤＢＭＳ」とも呼ぶ）向けの汎用インタフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ、以下、「ＡＰＩ」とも呼ぶ）である。例えば、ＯＣＩは、Ｃ又はＣ＋＋言語で作成するアプリケーションからデータベース操作を実行することができる。
【０００３】
ＯＣＩを用いたデータベースアクセスについて、以下の第１から第５の手順に沿って説明する。
【０００４】
第１に、データベースクライアントのＡＰＬは、データベースの検索例として以下のＳＱＬ構文を選択する。
【０００５】
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝ｘｘｘ  ＡＮＤ  項目ＣＢ＝ｙｙｙ  ＡＮＤ  項目ＣＣ＝ｚｚｚ」（以降、このＳＱＬ構文を、「ＳＱＬ構文Ｗ１」と呼ぶ）。
【０００６】
また、ＡＰＬは、データベース検索結果の受け渡しが必要となる変数及びデータベース検索条件を設定する変数を用意する。例えば、検索結果取得用の変数は、変数ｖａ、ｖｂ及びｖｃとし、検索条件を設定する変数は、変数ｖｄ、ｖｅ及びｖｆとする。
【０００７】
第２に、ＡＰＬは、ＳＱＬ構文Ｗ１の項目ＣＡ〜ＣＣのいずれかに設定する条件値を変数ｖｄ、ｖｅ、ｖｆに設定する。
【０００８】
第３に、ＡＰＬは、ＳＱＬ構文Ｗ１と変数ｖａ〜ｖｆの関連付けを行う。この関連付けは、ＡＰＬにＳＱＬ構文を埋め込んでＳＱＬ構文に変数を設定する際に必要な手続きであり、種々のデータベースシステムが提供するＡＰＩにより行う。ＯＲＡＣＬＥクライアントライブラリが提供するＯＣＩを用いて行うこの操作は、「変数のバインド」と呼ばれている。
【０００９】
第４に、ＡＰＬは、ＯＣＩによりＳＱＬ構文Ｗ１の実行を要求し、ＯＲＡＣＬＥクライアントライブラリが提供するＯＣＩは、データベースサーバにトランザクションを発行する。
【００１０】
第５に、ＯＣＩは、データベース検索結果を受信し、バインドされた変数（ｖａ、ｖｂ、ｖｃ）に検索結果を設定して、ＡＰＬに応答を返す。
【００１１】
以上が、従来のデータベースアクセスの一例である（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１３−２５４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、ＡＰＬの実装要件によっては、このデータベースに対する検索がＳＱＬ構文Ｗ１とは異なる検索条件の機能が必要となる可能性がある。この場合、ＳＱＬ構文及び変数のバインドは、先に示した動作とは異なることになる。
【００１４】
例えば、検索条件が項目ＣＡの指定のみ（つまり、ＳＱＬ構文Ｗ１よりも絞込みが必要でない場合）で検索する場合、ＳＱＬ構文は、以下となるはずである。
【００１５】
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝ｘｘｘ」（以降、このＳＱＬ構文を、「ＳＱＬ構文Ｗ２」と呼ぶ）。
【００１６】
また、データベースの検索条件がさらに追加（つまり、ＳＱＬ構文Ｗ１よりも絞込みが必要な場合）して、検索する場合、ＳＱＬ構文は、以下のような項目ＣＤの条件が追加されるかもしれない。
【００１７】
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝ｘｘｘ  ＡＮＤ  項目ＣＢ＝ｙｙｙ  ＡＮＤ  項目ＣＣ＝ｚｚｚ  ＡＮＤ  項目ＣＤ＝ｉｉｉ」（以降、この検索構文を、「ＳＱＬ構文Ｗ３」とする）。
【００１８】
このように、ＡＰＬは、検索条件の要件毎に合致するＳＱＬ構文を有するインタフェースを実装することになるが、検索条件毎に条件分岐（ＩＦ文）によりインタフェースを実装することになれば、開発及びデバッグの工数が増大することになる。図８は、条件分岐（ＩＦ文）により呼び出すインタフェース（関数）を示す説明図である。図８（ａ）〜（ｃ）では、検索項目に対する条件値（入力変数）の個数とバインドする変数の数が異なっていることを示している。
【００１９】
また、ＯＣＩのバインド操作、つまり、バインドする変数の個数や、変数の型（例えば、ｉｎｔ型やｃｈａｒ型）に対応したプログラム設計は、多くのバグを発生させる要因となり得る。
【００２０】
このため、簡易な手段によりデータベースへ操作要求することができるデータベースクライアント装置、データベースクライアントプログラム、及びデータベースシステムが望まれている。
【課題を解決するための手段】
【００２１】
第１の本発明のデータベースクライアント装置は、（１）複数のパラメータのうち一部又は全部のパラメータに対応する入力値を保持する入力値保持手段と、（２）上記複数のパラメータのうち上記入力値保持手段が入力値を保持したパラメータについては当該入力値を設定可能であり、上記複数のパラメータのうち上記入力値保持手段が入力値を保持しなかったパラメータについては所定の値が設定された構文を保持する構文保持手段と、（３）上記入力値保持手段が保持した入力値を、上記構文保持手段が保持した構文にバインド処理を行うバインド手段と、（４）上記バインド手段がバインド処理した構文をデータベースサーバに送信してデータ処理依頼するデータ処理依頼手段とを有することを特徴とする。
【００２２】
第２の本発明のデータベースクライアントプログラムは、データベースクライアント装置に搭載されたコンピュータを、（１）複数のパラメータのうち一部又は全部のパラメータに対応する入力値を保持する入力値保持手段と、（２）上記複数のパラメータのうち上記入力値保持手段が入力値を保持したパラメータについては当該入力値を設定可能であり、上記複数のパラメータのうち上記入力値保持手段が入力値を保持しなかったパラメータについては所定の値が設定された構文を保持する構文保持手段と、（３）上記入力値保持手段が保持した入力値を、上記構文保持手段が保持した構文にバインド処理を行うバインド手段と、（４）上記バインド手段がバインド処理した構文をデータベースサーバに送信してデータ処理依頼するデータ処理依頼手段として機能させることを有することを特徴とする。
【００２３】
第３の本発明は、データベースクライアント装置と、データベースクライアントサーバとを備えるデータベースシステムにおいて、データベースクライアント装置として第１の本発明を適用したことを特徴とするデータベースシステム。
【発明の効果】
【００２４】
本発明によれば、データベースへの操作要求を簡易な手段により実装することにより、プログラム開発及びデバッグ工数の削減をすることができる。
【図面の簡単な説明】
【００２５】
【図１】実施形態に係るデータベースクライアントアプリケーションの動作を示すフローチャートである。
【図２】実施形態に係るデータベースシステムの全体構成を示すブロック図である。
【図３】データベース表Ｔの構成を示す説明図である。
【図４】既存の方式と本発明の方式について、比較を示す説明図である。
【図５】検索条件から導き出される従来のＳＱＬ構文の定義を示す説明図である。
【図６】従来のＳＱＬ定義と本方式のＳＱＬ定義の比較を示す説明図である。
【図７】実施形態に係るデータベースクライアントアプリケーションの動作の具体例を示す説明図である。
【図８】従来のプログラム設計において、検索条件の要件毎に呼び出すインタフェース（アプリケーション）を示した説明図である。
【発明を実施するための形態】
【００２６】
（Ａ）主たる実施形態
以下、本発明によるデータベースクライアント装置、データベースクライアントプログラム、及びデータベースシステムの一実施形態を、図面を参照しながら詳述する。
【００２７】
（Ａ−１）実施形態の構成
図２は、この実施形態のデータベースシステム１の全体構成を示すブロック図である。
【００２８】
データベースシステム１は、データベースクライアント１０、データベースサーバ２０を有している。また、データベースクライアント１０、データベースサーバ２０は、それぞれネットワークＮに接続しているものとする。なお、データベースシステム１は、ネットワークＮを有さず、独立で構築（スタンドアローン）しても良い。
【００２９】
データベースシステム１は、データベースクライアント１０から、データベースサーバ
２０にデータベースのデータ更新や参照などのトランザクションが与えられ、処理が行われる環境である。
【００３０】
データベースクライアント１０は、データベースサーバ２０にデータベースに係るトランザクションを与えるものである。図２においては、データベースクライアント１０は１つとなっているが、その数は限定されないものである。データベースクライアント１０は、例えば、パソコン等の情報処理装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）上に、データベースクライアントアプリケーション１０Ａをインストールすることにより、構築される。
【００３１】
クライアントライブラリ１１は、データベースクライアント１０が、データベース２０にアクセスする機能を提供するためのライブラリである。データベースクライアント１０には、種々のデータベースシステムに応じて、ライブラリが提供されている。この実施形態では、クライアントライブラリ１１は、ＯＲＣＬＥデータベースクライントが提供するライブラリを適用した例を示している。
【００３２】
ＳＱＬ定義テーブル１２は、データベース２２にアクセスするＳＱＬ構文のひな形が記憶されている。
【００３３】
ＯＣＩ１３は、クライアントライブラリ１１が提供するＡＰＩを用いて、データベース２２２にアクセスするものである。
【００３４】
データベースサーバ２０は、データベースクライアント１０から与えられたトランザクションの処理を行うものであり、ＲＤＢＭＳ２１とデータベース２２を有している。
【００３５】
ＲＤＢＭＳ２１は、リレーショナルデータベース管理システムの機能を担っており、例えば、データベースクライアント１０から受けた取ったトランザクションの処理を行うものである。
【００３６】
データベース２２は、データ（レコード）の記憶部である。図３は、データベース２２に記憶されるデータベース表Ｔを示す説明図である。表Ｔにおける項目Ｃ１、Ｃ３、ＣＡ及びＣＣは、整数型（ＩＮＴＥＧＥＲ型）であり、項目Ｃ２、Ｃ４、ＣＢ及びＣＤは、文字列型（ＶＡＲＣＨＡＲ型）である。なお、データベース表Ｔのデータは、データベース２２に記憶される一例であり、データベース２２は、種々の表に対応したデータが記憶されることは言うまでもない。
【００３７】
データベースクライアントアプリケーション１０Ａは、入力条件からデータベース２２へ問い合わせるＳＱＬ構文を定義するインタフェースである。データベースクライアントアプリケーション１０Ａは、検索条件毎のＳＱＬ構文と必要となる変数の関係を明確にするため、以下の条件で機能実装の仕様が決定される。なお、データベースクライアントアプリケーション１０Ａは、種々のプログラミング言語により実装されるが、この実施形態では、Ｃ言語により実装した例を示している。
【００３８】
データベースクライアントアプリケーション１０Ａは、要件定義から必要となるデータベース検索機能の条件を抽出し、ＳＱＬ構文を定義する。このとき、検索条件で指定される項目数は明確になるようにする。例えば、先述の検索条件であるＳＱＬ構文Ｗ１〜Ｗ３の３種類の検索構文を例に説明する。ＳＱＬ構文Ｗ１は、「項目ＣＡの指定」、ＳＱＬ構文Ｗ２は、「項目ＣＡ、ＣＢ、ＣＣの指定」、ＳＱＬ構文Ｗ３は、「項目ＣＡ、ＣＢ、ＣＣ、ＣＤの指定」となっていた。つまり、ここでの作業において、要件定義上の最大指定項目数は、４項目ということになる。
【００３９】
次に、データベースクライアントアプリケーション１０Ａは、検索条件指定に必要な変数を定義し、検索項目と固定的に結びつける。先に述べた従来の方式では、引数と条件指定項目の関係がインタフェース毎に異なっていた。インタフェースＡでは、検索条件の項目ＣＡに変数ｖｄがバインドされているが、インタフェースＢでは、変数ｖｄは、検索条件の項目ＣＢにバインドされている。データベース表Ｔの項目ＣＡが整数型（ＩＮＴＥＧＥＲ型）、項目ＣＢが文字列型（ＶＡＲＣＨＡＲ）のため、インタフェースＡの引数ｖｄは、整数型（ｉｎｔ型）、インタフェースＢの引数ｖｄは、文字型（ｃｈａｒ型）と使い分けて使用する必要があった。
【００４０】
一方、データベースクライアントアプリケーション１０Ａは、検索条件に指定される項目と変数を固定的な関係にする。つまり、上記で検索条件の指定項目が求まり、これらの項目に対して、必要な変数を１対１で定義することを意味し、定義する変数と条件項目を１対１とすることで、条件項目の型に合致した変数として定義できる。結果として、検索で指定する項目数の最大４に対して、指定項目ＣＡへのバインド変数はｖｄ、項目ＣＢへのバインド変数はｖｅ、項目ＣＣへのバインド変数はｖｆ、項目ＣＤへのバインド変数はｖｇとなる。これにより、検索条件毎のＳＱＬ構文へのバインドは全て統一される。
【００４１】
以上をまとめると、インタフェースの実装について、図４で示す事項を導き出すことができる。図４は、既存の方式と本発明の方式とについて、インタフェース（関数）、インタフェース引数、変数のバインド及びＳＱＬ構文の定義数の観点から比較を示す説明図である。
【００４２】
図４では、ＳＱＬ構文の定義数は、両方式に差異は存在しないが、その他の項目については、差異が存在することが読み取れる。
【００４３】
次に、データベースクライアントアプリケーション１０Ａは、ＳＱＬ構文のパターン定義を行う。定義したＳＱＬ構文は、ＳＱＬ定義テーブル１２に記憶される。まず、データベースクライアントアプリケーション１０Ａは、検索条件で指定する項目の最大数は４であるため、最小１、最大４の検索条件パターンを列挙する。検索条件のパターン総数は、以下の（１）式で求められる。
検索条件のパターン総数＝4C0＋4C1＋4C2＋4C3＋4C4＝１６…（１）
【００４４】
図５は、検索条件から導き出される従来のＳＱＬ構文の定義を示す説明図である。図５（ａ）は、検索項目指定数が０の場合のＳＱＬ構文を１つ示している。図５（ｂ）は、検索項目指定数が１の場合のＳＱＬ構文を４つ示している。図５（ｃ）は、検索項目指定数が２の場合のＳＱＬ構文を６つ示している。図５（ｄ）は、検索項目指定数が３の場合のＳＱＬ構文を４つ示している。図５（ｅ）は、検索項目指定数が４の場合のＳＱＬ構文を１つ示している。
【００４５】
但し、この従来のＳＱＬ定義は、必要な検索条件のみを付与する定義であり、これをプログラムで実装することは、結局、検索条件毎にバインドする変数が異なる従来の方式となってしまう。
【００４６】
データベースクライアントアプリケーション１０Ａは、このＳＱＬ定義をさらに図６のように展開する。図６は、従来の一般的なＳＱＬ定義（図５）と本方式のＳＱＬ定義の比較を示す説明図である。図６の(ａ)〜(ｄ)は図５の(ａ)〜(ｄ)と同一の関係であって、先に説明した検索項目指定数に対するＳＱＬ構文の数が同じグループを示している。以下に、図６の具体例を説明する。
【００４７】
本方式のＳＱＬ定義は、バインド変数の値を項目指定条件に使用しない場合には、検索条件として利用されないような宣言をしている。例えば、検索条件に項目ＣＣ、項目ＣＤが指定されない場合、通常であればＳＱＬ定義は以下となる。
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝バインド変数ｖｄ  ＡＮＤ  項目ＣＢ＝バインド変数ｖｅ」
【００４８】
これに対し、本方式のＳＱＬ定義は以下である。
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝バインド変数ｖｄ  ＡＮＤ  項目ＣＢ＝バインド変数ｖｅ  ＡＮＤ  バインド変数ｖｆ＝０  ＡＮＤ  バインド変数ｖｇ  ｉｓ  ＮＵＬＬ」
【００４９】
データベース表Ｔを構成する項目ＣＡ及び項目ＣＣの型は、整数型（ＩＮＴＥＧＥＲ型）であることから、バインド変数ｖｄは、Ｃ言語のプログラム上、整数型（ｉｎｔ型）となるはずであり、項目ＣＢ及び項目ＣＤの型は、ＶＡＲＣＨＡＲ型であることから、Ｃ言語のプログラム上、文字型（ｃｈａｒ型）となるはずである。
【００５０】
ここで、本方式における項目ＣＣ、項目ＣＤが指定されない場合のＳＱＬ定義として、バインド変数ｖｆ＝０が意味するところは、項目ＣＣへの条件ではなく、「バインド変数ｖｆの値が０である」という条件になることである。Ｃ言語のプログラム上で、項目ＣＣへの条件指定がない場合は、バインド変数ｖｆには初期値を設定する実装になっていれば、バインド変数ｖｆの値は０となるべきである。このとき、「バインド変数ｖｆの値が０である」という条件は「真」となり、ＳＱＬ構文を解析するデータベースサーバ２０は、エラー検出をしない。
【００５１】
同様に、バインド変数ｖｆ＝０  ＡＮＤ  バインド変数ｖｇ  ｉｓ  ＮＵＬＬが意味するところは、項目ＣＤへの条件ではなく、「バインド変数ｖｇの値がＮＵＬＬである」という条件になることである。Ｃ言語のプログラム上で、項目ＣＤへの条件指定がない場合は、バインド変数ｖｇに渡される文字列ポインタにＮＵＬＬが設定する実装になっていれば、「バインド変数ｖｇの値がＮＵＬＬである」という条件は「真」となり、ＳＱＬ構文を解析するデータベースサーバ２０は、エラー検出はしない。
【００５２】
よって、このＳＱＬ定義により各検索条件において、必ず全てのバインド変数を使用することになり、Ｃ言語のプログラムにおいて、変数をバインドする処理は、使用するＳＱＬ定義に関係なく統一される。つまり、条件分岐（ＩＦ文）を実装する上で、検索条件を指定するための変数ｖｄ、ｖｅ、ｖｆ、ｖｇを受け取り、ＳＱＬ定義に対して、必ずｖｅ、ｖｄ、ｖｆ、ｖｇをバインドし、ＳＱＬの発行処理を実行することで、検索結果を正常に受け取る事ができるということである。
【００５３】
なお、本方式のＳＱＬ定義は、以下である。
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝バインド変数ｄ  ＡＮＤ  項目ＣＢ＝バインド変数ｅ  ＡＮＤ  バインド変数ｖｆ＝０  ＡＮＤ  バインド変数ｖｇ  ｉｓ  ＮＵＬＬ」
【００５４】
上記のＳＱＬ定義で得られる検索結果は、以下のＳＱＬ定義と同等なものとなる。
「ＳＥＬＥＣＴ  項目Ｃ１、項目Ｃ２、項目Ｃ３  ＦＲＯＭ  表Ｔ  ＷＨＥＲＥ  項目ＣＡ＝バインド変数ｖｄ  ＡＮＤ  項目ＣＢ＝バインド変数ｖｅ」
【００５５】
（Ａ−２）実施形態の動作
図１は、実施形態のデータベースクライアントアプリケーション１０Ａの動作を示すフローチャートである。
【００５６】
データベースクライアントアプリケーション１０Ａは、入力された検索条件のパラメータ変数の設定の有無をチェックする（Ｓ１０１）。なお、値が設定されていない変数は、初期値となる。例えば、初期値は、項目が整数型（ＩＮＴＥＧＥＲ型）の場合には０、文字型の場合にはＮＵＬＬを設定する。
【００５７】
データベースクライアントアプリケーション１０Ａは、検索の条件に合致するＳＱＬ定義をＳＱＬ定義テーブル１２から取得し、メモリ上に展開する（Ｓ１０２）。
【００５８】
データベースクライアントアプリケーション１０Ａは、検索条件変数及び検索結果取得変数を全てバインドする（Ｓ１０３）。
【００５９】
データベースクライアントアプリケーション１０Ａは、クライアントライブラリ１１が提供するＯＣＩ１３によりＳＱＬの実行を要求する。ＯＣＩ１３は、ネットワークＮを介してデータベースサーバ２０にトランザクションを発行する（Ｓ１０４）。
【００６０】
データベースクライアントアプリケーション１０Ａは、ネットワークＮを介してデータベースサーバ２０から検索結果を取得する（Ｓ１０５）。
【００６１】
図７は、実施形態のデータベースクライアントアプリケーション１０ＡがＯＣＩ１３を用いてデータベースアクセスする基本動作を示す説明図である。図７では、データベース表Ｔの検索対象は、項目Ｃ１、項目Ｃ２、項目Ｃ３であり、条件として、項目ＣＡに変数ｖd、項目ＣＢに変数ｖe、項目ＣＣに変数ｖｆ、項目ＣＤに変数ｖｇを設定した場合を示している。仮に、項目ＣＤ（文字列型）に条件が付されない場合には、変数ｖｇはＮＵＬＬであるという条件を付加することなる。いずれにしも、発行するＳＱＬに関わらず変数のバインド処理は一定となる。
【００６２】
（Ａ−３）実施形態の効果
データベース表の検索条件に対して、条件指定項目の最大数分のバインド変数、及び検索パターン毎のＳＱＬ定義を用意することにより、プログラムにおける入力パラメータ、変数バインド処理は統一される。その結果、検索用インタフェースの実装が単一のインタフェースで実現できるため、プログラム開発及びデバッグ工数の削減が可能となる。
【００６３】
（Ｂ）他の実施形態
上記の実施形態に加えて、さらに、以下に例示するような変形実施形態も挙げることができる。
【００６４】
（Ｂ−１）上記の実施形態では、データベースクライアントアプリケーション１０Ａが定義したＳＱＬ構文は検索（ＳＥＬＥＣＴ）のみを示したが、更新（ＵＰＤＡＴＥ）や、削除（ＤＥＬＥＴＥ）において、対象となるレコードを指定するためのカラム指定条件に対して、同様のＳＱＬ構文に置き換えて本発明を適用しても良い。
【００６５】
（Ｂ−２）上記の実施形態では、データベースクライアントアプリケーション１０Ａは、予め定義したＳＱＬ構文テーブル１２から、検索条件に合致したＳＱＬ構文を当該テーブルから選択する処理を示したが、検索条件に合致したＳＱＬ構文を処理の度に動的に作成しても良い。
【００６６】
（Ｂ−３）上記の実施形態では、データベースシステム１としてＯＲＡＣＬＥデータベースシステムを適用した例を示したが、他のデータベースシステムを利用して、本発明を適用しても良い。
【符号の説明】
【００６７】
１…データベースシステム、１０…データベースクライアント、１０Ａ…データベースクライアントアプリケーション、１１…クライアントライブラリ、１２…ＳＱＬ定義テーブル、１３…ＯＣＩ、２０…データベースサーバ、２１…ＲＤＢＭＳ、２２…データベース、Ｎ…ネットワーク、Ｘ…データベース表
【図１】
0006350071.tif 000002
【図２】
0006350071.tif 000003
【図３】
0006350071.tif 000004
【図４】
0006350071.tif 000005
【図５】
0006350071.tif 000006
【図６】
0006350071.tif 000007
【図７】
0006350071.tif 000008
【図８】
0006350071.tif 000009