(57)【特許請求の範囲】
【請求項１】
ソースプログラムから表名の記述部分を切り出す表名切出手段（１０）と、
ソースプログラムからホスト変数の記述部分を切り出し、該ホスト変数で示された列名を特定する列名特定手段（１２）と、
特定された列名のデータ参照に必要となる作業域の名称を生成する作業域名生成手段（１４）と、
切り出された表名の記述部分，特定された列名，生成された作業域の名称を用いて“ＳＥＬＥＣＴ  前記列名  ＦＲＯＭ  前記表名  ＩＮＴＯ  前記作業域の名称”なるデータ検索用のデータベース検索文を生成するデータベース検索文生成手段（１６）と、
を有する、
ことを特徴としたデータベース検索文作成装置。
【請求項２】
ソースプログラムから表名の記述部分を切り出し、該記述部分を用いてリレーショナルデータベースの表定義を参照し、使用可能なデータ形式の列名を決定する使用可能列決定手段（２０）と、
ソースプログラムからホスト変数の記述部分を切り出し、該ホスト変数にて示された列名であって使用可能と決定された列名を特定する列名特定手段（２２）と、
特定された列名のデータ参照に必要となる作業域の名称を生成する作業域名生成手段（２４）と、
切り出された表名の記述部分，特定された列名，生成された作業域の名称を用いて“ＳＥＬＥＣＴ  前記列名  ＦＲＯＭ  前記表名  ＩＮＴＯ  前記作業域の名称”なるデータ検索用のデータベース検索文を生成するデータベース検索文生成手段（２６）と、
を有する、
ことを特徴としたデータベース検索文作成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ソースプログラムからデータベース検索文を作成する装置に関するものである。
【０００２】
多くのリレーショナルデータベースマネジメントシステムでは、Ｓｔｒｕｃｔｕｒｅｄ ＱｕｅｒｙＬａｎｇｕａｇｅ（ＳＱＬ 構造化問い合わせ言語）がサポートされており、そのリレーショナルデータベースをアクセスするアプリケーションプログラムはＣＯＢＯＬ，Ｃなどのプログラム言語や専用の簡易言語で記述されたソースプログラムをコンパイルすることにより得られる。
【０００３】
【従来の技術】
図３（Ａ）で示されるように、データベース表の名称（表１：ビュー表であってもよい），カラム（列）の名称（カラム１，カラム２）が記述されたソースプログラム（例えば、４ＧＬで記述する）をユーザが作成し、そのファイルを専用のコンパイラに引き渡す。
【０００４】
この場合、コンパイラは”ＳＥＬＥＣＴ カラム１，カラム２ ＦＲＯＭ 表１ ＩＮＴＯ カラム１，カラム２の作業域”という内容のＳＱＬ文が含まれるアプリケーションプログラムを生成する。
【０００５】
データベースユーザは生成されたアプリケーションプログラムを起動し、起動されたアプリケーションプログラムはデータベース中の表１をアクセスしてそのカラム１，カラム２からユーザ業務に必要なデータを取り出し、データベースユーザに対して出力する（通常はデータベースユーザのネットワーク端末に画面表示させる）。
【０００６】
その後において、カラム１，カラム２の他にカラム３の出力が必要となった場合は、図３（Ｂ）のようにソースプログラムが修正されてカラム３の出力を指示する部分が追加され、また、カラム３の検索を指示する部分も追加される。
【０００７】
【発明が解決しようとする課題】
検索指示の部分に表名のみを記述してソースプログラムを簡略化する場合、カラム毎に作業域が自動的に用意されることから、アプリケーションプログラムで使用されないカラムの作業域が無駄なものとなる。
【０００８】
また、データベースマネジメントシステムがサポートするデータ形式の全てをアプリケーションプログラムが取り扱えるとは限らない。
【０００９】
このためソースプログラムの作成者は、アプリケーションプログラムが使用できるデータ形式（属性）に定義されたカラムのうち必要なものの名称をソースプログラムの出力指示部分と検索指示部分の双方へ図３（Ａ）のように全て記述し、あるいは、必要なカラムで形成したビュー表を定義する。
【００１０】
また、データベースユーザの要求に応じて出力指示部分と検索指示部分の双方へカラム名を図３（Ｂ）のように追加し、使用されなくなったものについてはその記述を双方から削除し、あるいは、ビュー表の再定義を行なう。
【００１１】
しかしながら、ソースプログラム内の出力指示部分に記述されたカラムの全てを検索指示の部分に記述したりビュー表を定義する作業は、ソースプログラムの作成者にとって大きな負担となる。
【００１２】
本発明は上記従来の事情に鑑みてなされたものであり、その目的は、プログラム作成者の負担を軽減してプログラムの生産性を高めることが可能となる装置を提供することにある。
【００１３】
【課題を解決するための手段】
図１において、第１発明にかかる装置は、ソースプログラムから表名の記述部分を切り出す表名切出手段１０と、ソースプログラムからホスト変数の記述部分を切り出し、該ホスト変数で示された列名を特定する列名特定手段１２と、特定された列名のデータ参照に必要となる作業域の名称を生成する作業域名生成手段１４と、切り出された表名の記述部分，特定された列名，生成された作業域の名称を用いて“ＳＥＬＥＣＴ  前記列名  ＦＲＯＭ  前記表名  ＩＮＴＯ  前記作業域の名称”なるデータ検索用のデータベース検索文を生成するデータベース検索文生成手段１６と、を有する。
【００１４】
また図２において、第２発明にかかる装置は、ソースプログラムから表名の記述部分を切り出し、該記述部分を用いてリレーショナルデータベースの表定義を参照し、使用可能なデータ形式の列名を決定する使用可能列決定手段２０と、ソースプログラムからホスト変数の記述部分を切り出し、該ホスト変数にて示された列名であって使用可能と決定された列名を特定する列名特定手段２２と、特定された列名のデータ参照に必要となる作業域の名称を生成する作業域名生成手段２４と、切り出された表名の記述部分，特定された列名，生成された作業域の名称を用いて“ＳＥＬＥＣＴ  前記列名  ＦＲＯＭ  前記表名  ＩＮＴＯ  前記作業域の名称”なるデータ検索用のデータベース検索文を生成するデータベース検索文生成手段２６と、を有する。
【００１５】
【作用】
第１発明の装置はアプリケーションプログラムで使用されるカラム（ソースプログラムに埋め込まれたホスト変数で示される）を特定し、それらについてのみ、作業域を自動的に用意する。
【００１６】
また第２発明の装置はアプリケーションプログラムが使用可能なカラムであって（使用可能か否かはデータベースの表定義を参照することにより判別できる）、アプリケーションプログラムで使用されるカラム（ソースプログラムに埋め込まれたホスト変数で示される）を特定し、それらについてのみ、作業域を自動的に用意する。
【００１７】
このように使用されるカラムまたは使用可能で実際に使用されるカラムについてのみ作業域が確保されるので、ソースプログラムの作成者は図４（Ａ）のように検索指示の部分で表名のみを記述し、ビュー表の定義は行なわない。
【００１８】
そして、図３の場合と同様に表１のカラム１，２に加えてカラム３からもデータを取り出すためには、図４（Ｂ）のようにソースプログラムの出力指示部分についてのみ、カラム３の記述を行なう。
【００１９】
以上の説明から理解されるように、ソースプログラム作成の作業（や変更作業）がきわめて容易なものとなる。したがって、プログラム作成者の負担を軽減し、ソースプログラムの生産性を大幅に高めることが可能となる。
【００２０】
【実施例】
図５では実施例の構成が説明されており、同図の装置は資源情報解析部５０，プログラム解析部５２，データ域生成部５４，ＳＱＬ文生成部５６で構成されている。
【００２１】
そして同図のＳＱＬデータベース５００は予め構築されており、ソースプログラム５０２（図６にその一例を示す）が作成されて装置に引き渡されると、資源情報解析部５０は図７の処理を開始する。
【００２２】
同図において資源情報解析部５０は、ソースプログラム５０２を読み込み（ステップ７００）、資源節（図６参照）を調べて表の名称（表１：ＴＡＢＬＥ１）を特定し（ステップ７０２）、その表名を用いてＳＱＬデータベース５００の表定義を参照する（ステップ７０４）。
【００２３】
図８ではＳＱＬデータベース５００における表１の定義内容が説明されており、アプリケーションプログラム（ソースプログラム５０２）はカラム１，２，３，４，５のうちカラム１，２，３を使用できるものの、カラム４，５は使用できない。
【００２４】
この表定義内容から資源情報解析部５０は図５のカラム管理テーブル５０４を作成する（ステップ７０６，７０８，７１０）。図９（Ａ）には表１の定義内容から作成したカラム管理テーブル５０４の内容が示されており、資源情報解析部５０はカラム１，２，３，４，５のうちアプリケーションプログラム（ソースプログラム５０２）が使用できるカラム１，２，３の名称とそれらがソースプログラム５０２で使用されているか否かをＯＮ，ＯＦＦで示す状態値とを対応させ、全ての状態値をＯＦＦに設定する（ステップ７０６，７０８，７１０）。
【００２５】
資源情報解析部５０がカラム管理テーブル５０４を作成すると、プログラム解析部５２は図１０の処理を開始し、資源情報解析部５０はソースプログラム５０２における処理部（図６参照）を調べてアプリケーションプログラム（ソースプログラム５０２）が使用するカラムの名称を全て特定し、これらカラムの名称とカラム管理テーブル５０４上で対応した全ての状態値をＯＮに設定する（ステップ１０００，１００２，１００４）。
【００２６】
図６のソースプログラム５０２が作成された場合で図８の表定義が行なわれていたときには、図９（Ｂ）のように、カラム１，２の状態値がＯＮとされ、カラム３の状態値はＯＦＦのままとされる。
【００２７】
またデータ域生成部５４は図１１の処理を行ない、プログラム解析部５２が状態値をＯＮとしたカラム名についてのみ、作業域５０６（データ域：変数）を用意する（ステップ１１００，１１０２，１１０４）。
【００２８】
例えば、図６のソースプログラム５０２が作成された場合で図８の表定義が行なわれており、かつ、図９（Ｂ）のようにカラム１，２の状態値がＯＮとされたときには、図９（Ｃ）のように作業域（データ域）の名称（変数）がカラム１，２についてのみ用意される。
【００２９】
そしてＳＱＬ文生成部５６は図１２の処理を行ない、上記のソースプログラム５０２及びカラム管理テーブル５０４の内容を参照しながら作業域の名称を用いてＳＱＬ文５０８を作成し（ステップ１２００，１２０２，１２０４，１２０６，１２０８，１２１０，１２１２，１２１４，１２１６，１２１８）、このＳＱＬ文５０８が埋め込まれたアプリケーションプログラム（例えばＣＯＢＯＬ言語のソースプログラム．オブジェクトプログラムであっても良い）を生成する。
【００３０】
以上のように、アプリケーションプログラムが使用可能なカラムであって、そのアプリケーションプログラムで使用されるカラムについてのみ、作業域５０６が自動的に用意される。
【００３１】
このため、ソースプログラム５０２の作成者はビュー表の定義を行なわず、図６のように検索を指示する処理部で表名のみを記述する。したがって、ソースプログラム５０２の作成作業がきわめて容易なものとなってプログラム作成者の負担が軽減され、その結果、ソースプログラム５０２の生産性を大幅に高められる。
【００３２】
また、図３の場合と同様に表１のカラム１，２に加えてカラム３からもデータを取り出すためには、ソースプログラム５０２の出力指示部分についてのみ、カラム３の記述を図４（Ｂ）のように追加すれば良く、ソースプログラム５０２の変更も容易となる。
【００３３】
【発明の効果】
以上説明したように本発明によれば、アプリケーションプログラムで使用されるカラムについてのみ、または、アプリケーションプログラムが使用可能なカラムであってそのアプリケーションプログラムで使用されるカラムについてのみ、作業域が用意されるので、ソースプログラムはビュー表の定義を行なわずにその検索指示部分に表名のみを記述して作成でき、このため、ソースプログラム作成の作業を容易化してその作成者の負担を軽減し、プログラム開発の生産効率を大幅に向上させことが可能となる。
【図面の簡単な説明】
【図１】  第１発明の原理説明図である。
【図２】  第２発明の原理説明図である。
【図３】  従来技術の説明図である。
【図４】  発明の作用説明図である。
【図５】  実施例の構成説明図である。
【図６】  実施例のソースプログラム説明図である。
【図７】  資源情報解析部の処理内容を説明するフローチャートである。
【図８】  実施例のデータベースにおける表定義の説明図である。
【図９】  実施例におけるカラム管理テーブル及びデータ域(作業域)の説明図である。
【図１０】  プログラム解析部の処理内容を説明するフローチャートである。
【図１１】  データ域生成部の処理内容を説明するフローチャートである。
【図１２】  ＳＱＬ文生成部の処理内容を説明するフローチャートである。
【符号の説明】
５０  資源情報解析部
５２  プログラム解析部
５４  データ域生成部
５６  ＳＱＬ文生成部
５００  ＳＱＬデータベース
５０２  ソースプログラム
５０４  カラム管理テーブル
５０６  データ域（作業域）
５０８  ＳＱＬ文
【図１】
0003670305.tif 000002
【図２】
0003670305.tif 000003
【図３】
0003670305.tif 000004
【図４】
0003670305.tif 000005
【図５】
0003670305.tif 000006
【図６】
0003670305.tif 000007
【図７】
0003670305.tif 000008
【図８】
0003670305.tif 000009
【図９】
0003670305.tif 000010
【図１０】
0003670305.tif 000011
【図１１】
0003670305.tif 000012
【図１２】
0003670305.tif 000013