[go: up one dir, main page]

JP7484033B1 - Method, program and information processing device for changing a database management system - Google Patents

Method, program and information processing device for changing a database management system Download PDF

Info

Publication number
JP7484033B1
JP7484033B1 JP2023183515A JP2023183515A JP7484033B1 JP 7484033 B1 JP7484033 B1 JP 7484033B1 JP 2023183515 A JP2023183515 A JP 2023183515A JP 2023183515 A JP2023183515 A JP 2023183515A JP 7484033 B1 JP7484033 B1 JP 7484033B1
Authority
JP
Japan
Prior art keywords
sql statement
field
database
called
sql
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023183515A
Other languages
Japanese (ja)
Other versions
JP2025072990A (en
Inventor
章一郎 ▲柳▼田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inforce Co Ltd
Original Assignee
Inforce Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inforce Co Ltd filed Critical Inforce Co Ltd
Priority to JP2023183515A priority Critical patent/JP7484033B1/en
Application granted granted Critical
Publication of JP7484033B1 publication Critical patent/JP7484033B1/en
Publication of JP2025072990A publication Critical patent/JP2025072990A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】SQL文の記述によりパラメータ取得用のユーザインターフェースを提供する機能を持つ既存のデータベース管理システム(DBMS)を、そのような機能のない別のDBMSへ変更する方法、プログラム及び情報処理装置を提供する。【解決手段】変更先のDBMSの第2SQL文を作成する工程(ST110)は、変更元のDBMSの第1SQL文で用いられるパラメータを特定することと、特定されたパラメータを用いる第2SQL文を作成することと、ユーザが操作する端末装置で実行されるモジュールを作成することとを含む。モジュールは、パラメータ入力用のユーザインターフェースを提供する第1プログラムコードと、変更先のDBMSが、当該第1SQL文について作成した第2SQL文を、ユーザインターフェースにより入力されるパラメータを用いて実行するように指示する第2プログラムコードとを含む。【選択図】図2[Problem] To provide a method, program, and information processing device for changing an existing database management system (DBMS) having a function of providing a user interface for parameter acquisition by writing an SQL statement to another DBMS without such a function. [Solution] A step (ST110) of creating a second SQL statement for the destination DBMS includes identifying parameters used in a first SQL statement of the source DBMS, creating a second SQL statement using the identified parameters, and creating a module to be executed on a terminal device operated by a user. The module includes a first program code that provides a user interface for inputting parameters, and a second program code that instructs the destination DBMS to execute the second SQL statement created for the first SQL statement using parameters input by the user interface. [Selected Figure] Figure 2

Description

本発明は、データベースの管理を行うシステムを変更する方法、プログラム及び情報処理装置に関するものである。 The present invention relates to a method, program, and information processing device for changing a system that manages a database.

データベース管理システム(database management system:DBMS)には様々な種類があり、データベースの規模や利用状況などに応じて適切なDBMSが選択される。例えば米国マイクロソフト社のACCESS(登録商標)は、プログラミングのスキルを持たない初心者でも簡単に業務用のデータベースを構築することが可能なため、比較的小規模の事業者向けのDBMSとして広く利用されている。一方、事業規模が拡大するにつれてより規模の大きいデータベースが必要になったり、多人数での同時実行制御が必要になったりすると、ACCESSなどの小規模事業者向けのDBMSではこれらの要求に応えられなくなる。そのような場合に、既存のデータベースのDBMSを別のDBMSへ変更する技術が知られている。下記の引用文献には、移行元のDBMSで用いられるクエリを移行先のDBMSのフォーマットに適合したクエリへ変換するデータ変換方法が開示されている。 There are various types of database management systems (DBMS), and the appropriate DBMS is selected depending on the size of the database and the usage status. For example, ACCESS (registered trademark) from Microsoft Corporation in the United States is widely used as a DBMS for relatively small businesses because even beginners with no programming skills can easily build business databases. On the other hand, as the business scale expands, a larger database becomes necessary, and simultaneous execution control for multiple people becomes necessary, and DBMSs for small businesses such as ACCESS cannot meet these demands. In such cases, a technology is known that changes the DBMS of an existing database to a different DBMS. The following cited document discloses a data conversion method that converts queries used in the source DBMS into queries that fit the format of the destination DBMS.

特開2011-248507号公報JP 2011-248507 A

ところで、ACCESSのクエリの記述に用いられるSQL(structured query language)は、初心者でも簡単にクエリを作成できるように、一般的なSQLに比べて制約の少ない平易な構文を持つ。例えばACCESSのSQLでは、SELECT句やUPDATE句の操作対象となるレコードの条件を定めるWHERE句に簡易な記述を加えるだけで、その条件に含まれるパラメータを入力ダイアログから入力させることができる。 The SQL (structured query language) used to write ACCESS queries has a simpler syntax with fewer restrictions than general SQL, so that even beginners can easily create queries. For example, with ACCESS SQL, you can simply add a simple statement to the WHERE clause, which defines the conditions for the records that are the target of operations in the SELECT or UPDATE clause, and the parameters included in the conditions can be entered from an input dialog.

[商品コード]のフィールド値が入力ダイアログにより入力される値に一致することを絞り込み条件とする場合、ACCESSのSQLでは、WHERE句を次のように記述すればよい。
WHERE
商品コード = [商品コードを入力して下さい]
ここで[商品コードを入力して下さい]はパラメータであり、入力ダイアログのタイトルにはこのパラメータが表示される。
If the narrowing condition is that the field value of [Product Code] matches the value entered in the input dialog, the WHERE clause in the ACCESS SQL can be written as follows:
WHERE
Product code = [Please enter the product code]
Here, [Please enter the product code] is a parameter, and this parameter is displayed in the title of the input dialog.

しかしながら、例えば米国マイクロソフト社のAzure SQL Database(登録商標)など、比較的規模の大きいデータベースを扱うDBMSに用いられる一般的なSQLでは、パラメータ取得用のユーザインターフェース(入力ダイアログなど)を提供する機能がない。そのため、SQL文の記述のみでパラメータ取得用のユーザインターフェースを簡単に提供できる機能を持つDBMSの場合、そのような機能を持たないDBMSへの変更が難しいという問題がある。 However, typical SQL used in DBMSs that handle relatively large databases, such as Microsoft's Azure SQL Database (registered trademark), does not have a function to provide a user interface (such as an input dialog) for acquiring parameters. Therefore, in the case of a DBMS that has a function that allows a user interface for acquiring parameters to be easily provided simply by writing SQL statements, there is a problem in that it is difficult to change to a DBMS that does not have such a function.

本発明はかかる事情に鑑みてなされたものであり、その目的は、SQL文の記述によりパラメータ取得用のユーザインターフェースを提供する機能を持つ既存のDBMSを、そのような機能のない別のDBMSへ変更することが可能な方法、プログラム及び情報処理装置を提供することにある。 The present invention has been made in consideration of the above circumstances, and its purpose is to provide a method, program, and information processing device that can change an existing DBMS that has the function of providing a user interface for obtaining parameters by writing SQL statements to another DBMS that does not have such a function.

本発明の第1の態様は、データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する方法であって、第1管理システムが管理するデータベースを第1データベースと呼び、第2管理システムが管理するデータベースを第2データベースと呼び、第1管理システムが第1データベースを操作するために実行するSQL文を第1SQL文と呼び、第2管理システムが第2データベースを操作するために実行するSQL文を第2SQL文と呼び、情報処理装置が、第1データベースに対応した第2データベースを作成するデータベース作成工程と、情報処理装置が、第1データベースについて作成された1以上の第1SQL文を解析し、当該解析の結果に基づいて、1以上の第1SQL文による第1データベースの操作に対応した第2データベースの操作を第2管理システムに行わせる1以上の第2SQL文を作成するSQL文作成工程とを有し、SQL文作成工程は、第1SQL文において用いられるパラメータであって、ユーザにより入力され得る1以上のパラメータを特定することと、第1SQL文による第1データベースの操作に対応した第2データベースの操作を行わせる第2SQL文として、特定された1以上のパラメータを用いる第2SQL文を作成することと、ユーザが操作する端末装置において実行されるモジュールであって、第1SQL文について特定された1以上のパラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、第2管理システムが、当該第1SQL文について作成した第2SQL文を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとを含んだモジュールを作成することとを有する、方法である。 A first aspect of the present invention is a method for changing a system that manages a database from a first management system to a second management system, the method comprising: a database managed by the first management system is called the first database; a database managed by the second management system is called the second database; an SQL statement executed by the first management system to operate the first database is called the first SQL statement; and an SQL statement executed by the second management system to operate the second database is called the second SQL statement; the method comprises a database creation step in which an information processing device creates a second database corresponding to the first database; and an information processing device analyzes one or more first SQL statements created for the first database and, based on the results of the analysis, creates one or more second SQL statements that cause the second management system to operate the second database corresponding to the operation of the first database by the one or more first SQL statements. The method includes a step of creating an SQL statement, the step of creating an SQL statement includes the steps of: identifying one or more parameters to be used in a first SQL statement and input by a user; creating a second SQL statement using the identified one or more parameters as a second SQL statement for operating a second database corresponding to the operation of the first database by the first SQL statement; and creating a module to be executed on a terminal device operated by a user, the module including one or more first program codes each providing a user interface for inputting the one or more parameters identified for the first SQL statement, and a second program code for instructing a second management system to execute the second SQL statement created for the first SQL statement using one or more parameters input by the user interface.

本発明の第2の態様は、データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する処理を情報処理装置に行わせる命令を含んだプログラムであって、第1管理システムが管理するデータベースを第1データベースと呼び、第2管理システムが管理するデータベースを第2データベースと呼び、第1管理システムが第1データベースを操作するために実行するSQL文を第1SQL文と呼び、第2管理システムが第2データベースを操作するために実行するSQL文を第2SQL文と呼び、情報処理装置が命令に従って行う処理は、第1データベースに対応した第2データベースを作成するデータベース作成工程と、第1データベースについて作成された1以上の第1SQL文を解析し、当該解析の結果に基づいて、1以上の第1SQL文による第1データベースの操作に対応した第2データベースの操作を第2管理システムに行わせる1以上の第2SQL文を作成するSQL文作成工程とを有し、SQL文作成工程は、第1SQL文において用いられるパラメータであって、ユーザにより入力され得る1以上のパラメータを特定することと、第1SQL文による第1データベースの操作に対応した第2データベースの操作を行わせる第2SQL文として、特定された1以上のパラメータを用いる第2SQL文を作成することと、ユーザが操作する端末装置において実行されるモジュールであって、第1SQL文について特定された1以上のパラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、第2管理システムが、当該第1SQL文について作成した第2SQL文を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとを含んだモジュールを作成することとを有する、プログラムである。 A second aspect of the present invention is a program including instructions for causing an information processing device to perform a process of changing a system that manages a database from a first management system to a second management system, the database managed by the first management system being called the first database, the database managed by the second management system being called the second database, an SQL statement executed by the first management system to operate the first database being called the first SQL statement, and an SQL statement executed by the second management system to operate the second database being called the second SQL statement, and the process performed by the information processing device in accordance with the instructions includes a database creation process for creating a second database corresponding to the first database, and one or more first SQL statements for analyzing one or more first SQL statements created for the first database and, based on the results of the analysis, causing the second management system to operate the second database corresponding to the operation of the first database by the one or more first SQL statements. The program includes an SQL statement creation step of creating a second SQL statement, the SQL statement creation step being a step of identifying one or more parameters that can be input by a user as parameters used in a first SQL statement, creating a second SQL statement using the identified one or more parameters as a second SQL statement that operates a second database corresponding to the operation of the first database by the first SQL statement, and creating a module that is executed on a terminal device operated by a user and includes one or more first program codes that each provide a user interface for inputting the one or more parameters identified for the first SQL statement, and a second program code that instructs the second management system to execute the second SQL statement created for the first SQL statement using one or more parameters input by the user interface.

本発明の第3の態様は、データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する処理を行う情報処理装置であって、処理部と、処理部に実行される命令を記憶した記憶部とを有し、第1管理システムが管理するデータベースを第1データベースと呼び、第2管理システムが管理するデータベースを第2データベースと呼び、第1管理システムが第1データベースを操作するために実行するSQL文を第1SQL文と呼び、第2管理システムが第2データベースを操作するために実行するSQL文を第2SQL文と呼び、処理部が命令に従って行う処理は、第1データベースに対応した第2データベースを作成するデータベース作成工程と、第1データベースについて作成された1以上の第1SQL文を解析し、当該解析の結果に基づいて、1以上の第1SQL文による第1データベースの操作に対応した第2データベースの操作を第2管理システムに行わせる1以上の第2SQL文を作成するSQL文作成工程とを有し、SQL文作成工程は、第1SQL文において用いられるパラメータであって、ユーザにより入力され得る1以上のパラメータを特定することと、第1SQL文による第1データベースの操作に対応した第2データベースの操作を行わせる第2SQL文として、特定された1以上のパラメータを用いる第2SQL文を作成することと、ユーザが操作する端末装置において実行されるモジュールであって、第1SQL文について特定された1以上のパラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、第2管理システムが、当該第1SQL文について作成した第2SQL文を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとを含んだモジュールを作成することとを有する、情報処理装置である。 A third aspect of the present invention is an information processing device that performs processing to change a system that manages a database from a first management system to a second management system, the information processing device having a processing unit and a memory unit that stores instructions to be executed by the processing unit, the database managed by the first management system is called the first database, the database managed by the second management system is called the second database, an SQL statement executed by the first management system to operate the first database is called the first SQL statement, and an SQL statement executed by the second management system to operate the second database is called the second SQL statement, and the processing performed by the processing unit in accordance with the instructions includes a database creation process that creates a second database corresponding to the first database, and analyzing one or more first SQL statements created for the first database and, based on the results of the analysis, causing the second management system to perform an operation of the second database corresponding to the operation of the first database by the one or more first SQL statements. The information processing device has an SQL statement creation process for creating one or more second SQL statements for executing the first SQL statement, the SQL statement creation process comprising: identifying one or more parameters that can be input by a user as parameters used in the first SQL statement; creating a second SQL statement using the identified one or more parameters as a second SQL statement for operating a second database corresponding to the operation of the first database by the first SQL statement; and creating a module that is executed on a terminal device operated by a user and includes one or more first program codes that each provide a user interface for inputting the one or more parameters identified for the first SQL statement, and a second program code that instructs the second management system to execute the second SQL statement created for the first SQL statement using one or more parameters input by the user interface.

本発明の第4の態様は、データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する処理を行う情報処理装置であって、第1管理システムが管理するデータベースを第1データベースと呼び、第2管理システムが管理するデータベースを第2データベースと呼び、第1管理システムが第1データベースを操作するために実行するSQL文を第1SQL文と呼び、第2管理システムが第2データベースを操作するために実行するSQL文を第2SQL文と呼び、第1データベースに対応した第2データベースを作成するデータベース作成手段と、第1データベースについて作成された1以上の第1SQL文を解析し、当該解析の結果に基づいて、1以上の第1SQL文による第1データベースの操作に対応した第2データベースの操作を第2管理システムに行わせる1以上の第2SQL文を作成するSQL文作成手段とを有し、SQL文作成手段は、第1SQL文において用いられるパラメータであって、ユーザにより入力され得る1以上のパラメータを特定する手段と、第1SQL文による第1データベースの操作に対応した第2データベースの操作を行わせる第2SQL文として、特定された1以上のパラメータを用いる第2SQL文を作成する手段と、ユーザが操作する端末装置において実行されるモジュールであって、第1SQL文について特定された1以上のパラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、第2管理システムが、当該第1SQL文について作成した第2SQL文を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとを含んだモジュールを作成する手段とを有する、情報処理装置である。 A fourth aspect of the present invention is an information processing device that performs processing to change a system that manages a database from a first management system to a second management system, the database managed by the first management system being called the first database, the database managed by the second management system being called the second database, an SQL statement executed by the first management system to operate the first database being called the first SQL statement, and an SQL statement executed by the second management system to operate the second database being called the second SQL statement, the information processing device including: a database creation means that creates a second database corresponding to the first database; and an SQL statement creation means that analyzes one or more first SQL statements created for the first database and, based on the results of the analysis, creates one or more second SQL statements that cause the second management system to operate the second database corresponding to the operation of the first database by the one or more first SQL statements. The information processing device has a means for creating a SQL statement, the SQL statement creation means having a means for identifying one or more parameters used in a first SQL statement that can be input by a user, a means for creating a second SQL statement using the identified one or more parameters as a second SQL statement that operates a second database corresponding to the operation of the first database by the first SQL statement, and a means for creating a module that is executed on a terminal device operated by a user and includes one or more first program codes that each provide a user interface for inputting the one or more parameters identified for the first SQL statement, and a second program code that instructs the second management system to execute the second SQL statement created for the first SQL statement using one or more parameters input by the user interface.

本発明によれば、SQL文の記述によりパラメータ取得用のユーザインターフェースを提供する機能を持つ既存のDBMSを、そのような機能のない別のDBMSへ変更することが可能な方法、プログラム及び情報処理装置を提供できる。 The present invention provides a method, program, and information processing device that can change an existing DBMS that has a function of providing a user interface for obtaining parameters by writing SQL statements to another DBMS that does not have such a function.

図1は、本実施形態に係るシステムの構成の一例を示す図である。FIG. 1 is a diagram showing an example of the configuration of a system according to the present embodiment. 図2は、本実施形態に係る情報処理装置による処理の一例を説明するためのフローチャートである。FIG. 2 is a flowchart for explaining an example of processing by the information processing device according to the present embodiment. 図3Aは第2SQL文を作成する処理の一例を説明するためのフローチャートであり、図3Bは第1SQL文のパラメータを特定する処理の一例を説明するためのフローチャートである。FIG. 3A is a flowchart illustrating an example of a process for creating a second SQL statement, and FIG. 3B is a flowchart illustrating an example of a process for specifying parameters of a first SQL statement. 図4Aは第1テーブルの構造の一例を示す図であり、図4Bは第1SQL文の一例を示す図である。図4C及び図4Dは、第1SQL文の実行により表示される入力ダイアログの一例を示す図であるFig. 4A is a diagram showing an example of the structure of a first table, Fig. 4B is a diagram showing an example of a first SQL statement, and Fig. 4C and Fig. 4D are diagrams showing examples of an input dialog displayed by executing the first SQL statement. 図5A及び図5Bは、図4Bに示す第1SQL文において特定されるパラメータとそのタイプを示す図である。図5Cは、図4Bに示す第1SQL文に対応する第2SQL文の一例を示す図である。Figures 5A and 5B are diagrams showing parameters and their types specified in the first SQL statement shown in Figure 4B, and Figure 5C is a diagram showing an example of a second SQL statement corresponding to the first SQL statement shown in Figure 4B. 図6は、パラメータを取得して第2SQL文の実行するためのモジュールの一例を示す第1の図である。FIG. 6 is a first diagram illustrating an example of a module for obtaining parameters and executing a second SQL statement. 図7は、パラメータを取得して第2SQL文の実行するためのモジュールの一例を示す第2の図である。FIG. 7 is a second diagram illustrating an example of a module for obtaining parameters and executing a second SQL statement. 図8は、パラメータを取得して第2SQL文の実行するためのモジュールの一例を示す第3の図である。FIG. 8 is a third diagram illustrating an example of a module for obtaining parameters and executing a second SQL statement. 図9は、パラメータを取得して第2SQL文の実行するためのモジュールの一例を示す第4の図である。FIG. 9 is a fourth diagram illustrating an example of a module for obtaining parameters and executing a second SQL statement. 図10は、端末装置において図6~図9に示すモジュールを実行した場合の処理を説明するためのフローチャートである。FIG. 10 is a flowchart for explaining the processing when the modules shown in FIGS. 6 to 9 are executed in the terminal device. 図11は、第1タイプのパラメータを入力する処理の一例を説明するためのフローチャートである。FIG. 11 is a flowchart illustrating an example of a process for inputting a first type parameter. 図12は、第2タイプのパラメータを入力する処理の一例を説明するためのフローチャートである。FIG. 12 is a flowchart illustrating an example of a process for inputting a second type parameter. 図13Aは第1テーブルの構造の一例を示す図であり、図13Bは第1SQL文の一例を示す図であり、図13Cは第2SQL文の一例を示す図である。FIG. 13A is a diagram showing an example of the structure of a first table, FIG. 13B is a diagram showing an example of a first SQL statement, and FIG. 13C is a diagram showing an example of a second SQL statement. 図14Aは第1テーブルの構造の一例を示す図であり、図14Bは第1SQL文の一例を示す図であり、図14Cは第2SQL文の一例を示す図である。FIG. 14A is a diagram showing an example of the structure of a first table, FIG. 14B is a diagram showing an example of a first SQL statement, and FIG. 14C is a diagram showing an example of a second SQL statement. 図15Aは第1テーブルの構造の一例を示す図であり、図15Bは第1テーブルに含まれるデータの一例を示す図であり、図15Cは第1SQL文の一例を示す図であり、図15Dは第1SQL文が示すクエリの結果の一例を示す図であり、図15Eは第2SQL文の一例を示す図である。FIG. 15A is a diagram showing an example of the structure of the first table, FIG. 15B is a diagram showing an example of data contained in the first table, FIG. 15C is a diagram showing an example of a first SQL statement, FIG. 15D is a diagram showing an example of the results of a query indicated by the first SQL statement, and FIG. 15E is a diagram showing an example of a second SQL statement. 図16Aは第1テーブルの構造の一例を示す図であり、図16Bは第1テーブルに含まれるデータの一例を示す図であり、図16Cは第1SQL文の一例を示す図であり、図16Dは第1SQL文が示すクエリの結果の一例を示す図であり、図16Eは第2SQL文の一例を示す図である。FIG. 16A is a diagram showing an example of the structure of the first table, FIG. 16B is a diagram showing an example of data contained in the first table, FIG. 16C is a diagram showing an example of a first SQL statement, FIG. 16D is a diagram showing an example of the results of a query indicated by the first SQL statement, and FIG. 16E is a diagram showing an example of a second SQL statement. 図17Aは第1テーブルの構造の一例を示す図であり、図17Bは第1テーブルに含まれるデータの一例を示す図であり、図17Cは第1SQL文の一例を示す図であり、図17Dは第1SQL文が示すクエリの結果の一例を示す図であり、図17Eは第2SQL文の一例を示す図である。FIG. 17A is a diagram showing an example of the structure of the first table, FIG. 17B is a diagram showing an example of data contained in the first table, FIG. 17C is a diagram showing an example of a first SQL statement, FIG. 17D is a diagram showing an example of the results of a query indicated by the first SQL statement, and FIG. 17E is a diagram showing an example of a second SQL statement. 図18Aは第1テーブルの構造の一例を示す図であり、図18Bは第1テーブルに含まれるデータの一例を示す図であり、図18Cは第1SQL文の一例を示す図であり、図18Dは第1SQL文が示すクエリの結果の一例を示す図であり、図18Eは比較例のSQL文の示す図であり、図18Fは第2SQL文の一例を示す図である。FIG. 18A is a diagram showing an example of the structure of the first table, FIG. 18B is a diagram showing an example of data contained in the first table, FIG. 18C is a diagram showing an example of a first SQL statement, FIG. 18D is a diagram showing an example of a query result indicated by the first SQL statement, FIG. 18E is a diagram showing an SQL statement of a comparative example, and FIG. 18F is a diagram showing an example of a second SQL statement. 図19Aは第1テーブルの構造の一例を示す図であり、図19Bは第1SQL文の一例を示す図であり、図19Cは第2SQL文の一例を示す図である。FIG. 19A is a diagram showing an example of the structure of a first table, FIG. 19B is a diagram showing an example of a first SQL statement, and FIG. 19C is a diagram showing an example of a second SQL statement. 図20Aは第1テーブルの構造の一例を示す図であり、図20Bは第1SQL文の一例を示す図であり、図20Cは第2SQL文の一例を示す図である。FIG. 20A is a diagram showing an example of the structure of a first table, FIG. 20B is a diagram showing an example of a first SQL statement, and FIG. 20C is a diagram showing an example of a second SQL statement. 図21Aは第1テーブルの構造の一例を示す図であり、図21Bは第1SQL文の一例を示す図であり、図21Cは第1SQL文に含まれるフィールド部とその別名を示す図であり、図21Dは第2SQL文の一例を示す図である。FIG. 21A is a diagram showing an example of the structure of the first table, FIG. 21B is a diagram showing an example of the first SQL statement, FIG. 21C is a diagram showing a field section and its alias included in the first SQL statement, and FIG. 21D is a diagram showing an example of the second SQL statement. 図22Aは第1テーブルの構造の一例を示す図であり、図22Bは第1SQL文の一例を示す図であり、図22Cは第2SQL文の一例を示す図である。FIG. 22A is a diagram showing an example of the structure of a first table, FIG. 22B is a diagram showing an example of a first SQL statement, and FIG. 22C is a diagram showing an example of a second SQL statement.

図1は、本実施形態に係るシステムの一例を示す図である。図1に示すシステムは、インターネット等の通信ネットワーク9を介して互いに通信可能な情報処理装置1と第2管理システム3を有する。図1に示すシステムにおいて、情報処理装置1は、データベースの管理を行うシステムを既存のDBMSから別のDBMSへ変更する処理を行う。情報処理装置1は、変更元の既存のDBMSとして動作するとともに、DBMSの変更に関わる処理を行う。第2管理システム3は、変更先の別のDBMSとして動作する。DBMSの変更が行われたあと、情報処理装置1は、第2管理システム3にアクセスする端末装置としても動作する。 Figure 1 is a diagram showing an example of a system according to this embodiment. The system shown in Figure 1 has an information processing device 1 and a second management system 3 that can communicate with each other via a communication network 9 such as the Internet. In the system shown in Figure 1, the information processing device 1 performs processing to change the system that manages the database from an existing DBMS to another DBMS. The information processing device 1 operates as the existing DBMS that is the source of the change, and also performs processing related to the change of the DBMS. The second management system 3 operates as the other DBMS that is the destination of the change. After the DBMS is changed, the information processing device 1 also operates as a terminal device that accesses the second management system 3.

[情報処理装置1]
情報処理装置1は、インストールされたプログラム(アプリケーションソフトウェアなど)によって様々な情報処理を行うパーソナルコンピュータなどの装置である。情報処理装置1は、既存のDBMS(以下「第1管理システム」と呼ぶ場合がある。)として第1データベース200の管理を行う。例えば情報処理装置1は、ACCESS(登録商標)のアプリケーションソフトウェアを実行することにより第1管理システムとして動作する。
[Information processing device 1]
The information processing device 1 is a device such as a personal computer that performs various information processing by installed programs (such as application software). The information processing device 1 manages a first database 200 as an existing DBMS (hereinafter, sometimes referred to as a "first management system"). For example, the information processing device 1 operates as the first management system by executing ACCESS (registered trademark) application software.

また情報処理装置1は、この第1データベース200と同じデータが登録された第2データベース400を第2管理システム3に作成し、第1データベース200について用意された第1管理システム用のクエリと同様のクエリを第2管理システム3の第2データベース400に対しても実行できるようにする処理(以下「DBMS変更処理」と呼ぶ場合がある。)を行う。 The information processing device 1 also creates a second database 400 in the second management system 3 in which the same data as that in the first database 200 is registered, and performs a process (hereinafter sometimes referred to as "DBMS change process") that enables queries similar to the queries prepared for the first management system for the first database 200 to be executed on the second database 400 in the second management system 3.

更に情報処理装置1は、DBMS変更処理により作成された第2データベース400を利用するユーザの操作する端末装置として、第2管理システム3にアクセスする。この場合、情報処理装置1(端末装置)は、DBMS変更処理において作成されたSQL文のクエリの実行を第2管理システム3に指示する処理や、第2管理システム3によるクエリの実行結果を取得して表示する処理などを行う。第1管理システムがACCESSの場合、情報処理装置1(端末装置)は、ACCESSの一部の機能(フォーム、レポート、マクロ、モジュールなど)を利用することにより第2管理システム3のフロントエンドとして動作してもよい。 Furthermore, the information processing device 1 accesses the second management system 3 as a terminal device operated by a user who uses the second database 400 created by the DBMS change process. In this case, the information processing device 1 (terminal device) performs processes such as instructing the second management system 3 to execute a query of an SQL statement created in the DBMS change process, and obtaining and displaying the results of the query executed by the second management system 3. If the first management system is ACCESS, the information processing device 1 (terminal device) may operate as a front end of the second management system 3 by using some of the functions of ACCESS (forms, reports, macros, modules, etc.).

図1の例に示す情報処理装置1は、通信部11と、入力部12と、表示部13と、記憶部14と、処理部15を有する。 The information processing device 1 shown in the example of FIG. 1 has a communication unit 11, an input unit 12, a display unit 13, a memory unit 14, and a processing unit 15.

通信部11は、通信ネットワーク9を介して他の装置(第2管理システム3など)と通信を行う。通信部11は、例えばイーサネット(登録商標)や無線LAN等の所定の通信規格に準拠して通信を行う装置(ネットワークインターフェースカード等)を含む。 The communication unit 11 communicates with other devices (such as the second management system 3) via the communication network 9. The communication unit 11 includes a device (such as a network interface card) that communicates in accordance with a specific communication standard, such as Ethernet (registered trademark) or wireless LAN.

入力部12は、ユーザの操作に応じた指示やその他の情報を処理部15に入力する。例えば、入力部12は、キーボード、マウス、タッチパネル、タッチパッド、ボタン、スイッチ、マイク、カメラなどの入力機能を備えた機器を少なくとも1つ含む。 The input unit 12 inputs instructions and other information according to user operations to the processing unit 15. For example, the input unit 12 includes at least one device equipped with an input function such as a keyboard, a mouse, a touch panel, a touch pad, a button, a switch, a microphone, or a camera.

表示部13は、処理部15において生成される映像信号に応じた映像を表示する装置であり、例えば液晶ディスプレイ、有機ELディスプレイ、プロジェクタなどの表示機器を含む。 The display unit 13 is a device that displays an image corresponding to the video signal generated by the processing unit 15, and includes display devices such as a liquid crystal display, an organic EL display, and a projector.

記憶部14は、処理部15において実行可能な命令を含む1以上のプログラム141や、処理部15による処理の過程で一時的に保存されるデータ、処理部15の処理に利用されるデータ、処理部15の処理の結果として得られたデータなどを記憶する。記憶部14は、例えば、主記憶装置(RAM、ROM等)と補助記憶装置(フラッシュメモリ、SSD、ハードディスク、メモリカード、光ディスクなど)を含んでよい。記憶部14は、1つの記憶装置から構成されてもよいし、複数の記憶装置から構成されてもよい。記憶部14が複数の記憶装置から構成される場合、各記憶装置は、コンピュータのバスや他の任意の通信手段を介して処理部15と接続される。 The storage unit 14 stores one or more programs 141 including instructions executable by the processing unit 15, data temporarily stored during processing by the processing unit 15, data used in the processing of the processing unit 15, data obtained as a result of the processing of the processing unit 15, and the like. The storage unit 14 may include, for example, a main storage device (RAM, ROM, etc.) and an auxiliary storage device (flash memory, SSD, hard disk, memory card, optical disk, etc.). The storage unit 14 may be composed of one storage device or multiple storage devices. When the storage unit 14 is composed of multiple storage devices, each storage device is connected to the processing unit 15 via a computer bus or any other communication means.

処理部15は、情報処理装置1の全体的な動作を統括的に司り、所定の情報処理を実行する。処理部15は、例えば、記憶部14に格納された1以上のプログラム141の命令に応じて処理を実行する1以上のプロセッサ(CPU(central processing unit)、MPU(micro-processing unit)、DSP(digital signal processor)等)を含む。処理部15は、記憶部14に記憶される1以上のプログラム141の命令を1以上のプロセッサが実行することにより、コンピュータとして動作する。情報処理装置1は、このような複数のコンピュータを含んでもよく、これらのコンピュータが任意の通信ネットワークを介して通信を行うことにより連携して処理を実行してもよい。 The processing unit 15 is responsible for overall operation of the information processing device 1 and executes predetermined information processing. The processing unit 15 includes, for example, one or more processors (such as a central processing unit (CPU), micro-processing unit (MPU), digital signal processor (DSP)) that execute processing in accordance with instructions of one or more programs 141 stored in the memory unit 14. The processing unit 15 operates as a computer by the one or more processors executing instructions of one or more programs 141 stored in the memory unit 14. The information processing device 1 may include multiple such computers, and these computers may communicate via any communication network to cooperate and execute processing.

処理部15は、特定の機能を実現するように構成された1つ以上の専用のハードウェア(ASIC(application specific integrated circuit)、FPGA(field-programmable gate array)等)を含んでもよい。この場合、処理部15は、本実施形態において説明する全ての処理をコンピュータにおいて実行してもよいし、少なくとも一部の処理を専用のハードウェアにおいて実行してもよい。 The processing unit 15 may include one or more dedicated hardware (such as an application specific integrated circuit (ASIC), field programmable gate array (FPGA)) configured to realize a specific function. In this case, the processing unit 15 may execute all of the processing described in this embodiment in a computer, or may execute at least some of the processing in dedicated hardware.

プログラム141は、例えばコンピュータ読み取り可能な記録媒体(光ディスク、メモリカード、USBメモリ、その他の非一時的な有形の媒体)に記録されていてもよい。処理部15は、そのような記録媒体に記録された1以上のプログラム141の少なくとも一部を不図示の記録媒体読み取り装置(光ディスク装置等)やインターフェース装置(USBインターフェース等)により読み込んで、記憶部14に書き込んでもよい。あるいは処理部15は、通信ネットワーク9に接続される他の装置から通信部11により1以上のプログラム141の少なくとも一部をダウンロードして、記憶部14に書き込んでもよい。プログラム141は、後述する本実施形態に係る処理の少なくとも一部を処理部15に行わせる命令を含んでよい。 The program 141 may be recorded, for example, on a computer-readable recording medium (optical disk, memory card, USB memory, or other non-transitory tangible medium). The processing unit 15 may read at least a portion of the one or more programs 141 recorded on such a recording medium using a recording medium reading device (optical disk device, etc.) or an interface device (USB interface, etc.) not shown, and write the program to the storage unit 14. Alternatively, the processing unit 15 may download at least a portion of the one or more programs 141 from another device connected to the communication network 9 using the communication unit 11, and write the program to the storage unit 14. The program 141 may include an instruction that causes the processing unit 15 to perform at least a portion of the processing according to this embodiment described below.

[記憶装置2]
記憶装置2は、情報処理装置1の処理において使用される種々の情報を記憶する。情報処理装置1と記憶装置2は、任意の通信路(LAN、専用回線網、インターネットなど)介して通信可能である。例えば記憶装置2は、複数の装置からのアクセスを受け付けるファイルサーバやデータベースサーバなどに含まれていてもよいし、情報処理装置1のみアクセス可能な専用の記憶装置でもよい。
[Storage device 2]
The storage device 2 stores various information used in the processing of the information processing device 1. The information processing device 1 and the storage device 2 can communicate with each other via any communication path (such as a LAN, a dedicated line network, or the Internet). For example, the storage device 2 may be included in a file server or a database server that accepts access from multiple devices, or may be a dedicated storage device that is accessible only to the information processing device 1.

図1の例において、記憶装置2は、情報処理装置1が第1管理システムとして動作する場合に用いられる情報(第1データベース用情報)と、情報処理装置1が第2管理システム3の端末装置として動作する場合に用いられる情報(第2データベース用情報)を記憶する。 In the example of FIG. 1, the storage device 2 stores information (information for the first database) used when the information processing device 1 operates as a first management system, and information (information for the second database) used when the information processing device 1 operates as a terminal device of the second management system 3.

第1データベース用情報は、例えば図1に示すように、第1管理システム(情報処理装置1)が管理するデータベースである第1データベース200と、第1管理システムが第1データベース200を操作するために実行するSQL文である第1SQL文202と、第1SQL文202のクエリの内容に関連するクエリ情報203と、第1管理システムにより実行される種々の処理のプログラムコードを含んだモジュール204と、フォームやレポートなどのユーザインターフェースに関するフォーム・レポート情報205とを含む。第1データベース200は、データが登録される1以上の第1テーブル201を含む。 As shown in FIG. 1, the information for the first database includes, for example, a first database 200 that is a database managed by a first management system (information processing device 1), a first SQL statement 202 that is an SQL statement executed by the first management system to operate the first database 200, query information 203 related to the contents of the query in the first SQL statement 202, a module 204 that includes program code for various processes executed by the first management system, and form/report information 205 related to user interfaces such as forms and reports. The first database 200 includes one or more first tables 201 in which data is registered.

第2データベース情報は、例えば図1に示すように、第2管理システム3が第2データベース400を操作するために実行するSQL文である第2SQL文212と、第2管理システム3にアクセスする端末装置(情報処理装置1)において実行される種々の処理(ユーザインターフェースを提供する処理、第2管理システム3に第2SQL文を実行させる処理など)のプログラムコードを含んだモジュール214と、フォームやレポートなどのユーザインターフェースに関するフォーム・レポート情報215とを含む。端末装置(情報処理装置1)の画面に所定のオブジェクト(フォーム、レポートなど)を表示させる場合に実行されるモジュール214を、以下では「オブジェクト用モジュール」と呼ぶ場合がある。 1, the second database information includes a second SQL statement 212 which is an SQL statement executed by the second management system 3 to operate the second database 400, a module 214 including program code for various processes (such as a process for providing a user interface and a process for causing the second management system 3 to execute the second SQL statement) executed in a terminal device (information processing device 1) that accesses the second management system 3, and form/report information 215 relating to user interfaces such as forms and reports. The module 214 executed when a specific object (such as a form or report) is displayed on the screen of the terminal device (information processing device 1) may be referred to below as an "object module."

[第2管理システム3]
第2管理システム3は、第2データベース400の管理を行うDBMSである。第2管理システム3は、情報処理装置1による端末装置からの指示に応じて第2SQL文(212、412)のクエリを実行し、第2データベース400に対する操作を行う。また第2管理システム3は、クエリの実行結果(第1データベース200から抽出したデータなど)を端末装置に提供する。
[Second Management System 3]
The second management system 3 is a DBMS that manages the second database 400. The second management system 3 executes a query of the second SQL statement (212, 412) in response to an instruction from the terminal device of the information processing device 1, and performs an operation on the second database 400. The second management system 3 also provides the query execution result (such as data extracted from the first database 200) to the terminal device.

第2管理システム3は、例えばAzure SQL Database(登録商標)などのクラウド型のデータベースシステムでもよく、上述した情報処理装置1と同様な通信部、記憶部、処理部を備える1以上のコンピュータを含んでいてもよい。 The second management system 3 may be, for example, a cloud-based database system such as Azure SQL Database (registered trademark), and may include one or more computers equipped with a communication unit, a memory unit, and a processing unit similar to those of the information processing device 1 described above.

[記憶装置4]
記憶装置4は、第2管理システム3の処理において使用される種々の情報を記憶する。第2管理システム3と記憶装置4は、任意の通信路(LAN、専用回線網、インターネットなど)介して通信可能である。例えば記憶装置4は、複数の装置からのアクセスを受け付けるファイルサーバやデータベースサーバなどに含まれていてもよいし、記憶装置4のみアクセス可能な専用の記憶装置でもよい。
[Storage device 4]
The storage device 4 stores various information used in the processing of the second management system 3. The second management system 3 and the storage device 4 can communicate with each other via any communication path (such as a LAN, a dedicated line network, or the Internet). For example, the storage device 4 may be included in a file server or a database server that accepts access from multiple devices, or may be a dedicated storage device that is accessible only to the storage device 4.

図1の例において、記憶装置4は、第2管理システム3が管理するデータベースである第2データベース400を記憶する。第2データベース400は、データが登録される1以上の第2テーブル401を含む。また記憶装置4は、第2管理システム3が第2データベース400を操作するために実行する第2SQL文412として、ストアド・プロシージャ402と、関数403と、ビュー404を記憶する。第2管理システム3は、端末装置(情報処理装置1)からの指示に応じて、記憶装置4に格納されたSQL文(ストアド・プロシージャ402、関数403、ビュー404)を実行することができる。 In the example of FIG. 1, the storage device 4 stores a second database 400, which is a database managed by the second management system 3. The second database 400 includes one or more second tables 401 in which data is registered. The storage device 4 also stores a stored procedure 402, a function 403, and a view 404 as a second SQL statement 412 that the second management system 3 executes to operate the second database 400. The second management system 3 can execute the SQL statements (stored procedure 402, function 403, view 404) stored in the storage device 4 in response to an instruction from the terminal device (information processing device 1).

次に、上述した構成を有するシステムにおいて情報処理装置1により行われるDBMS変更処理について説明する。図2は、情報処理装置1によるDBMS変更処理の一例を説明するためのフローチャートである。 Next, we will explain the DBMS change processing performed by the information processing device 1 in the system having the above-mentioned configuration. Figure 2 is a flowchart for explaining an example of the DBMS change processing performed by the information processing device 1.

まず情報処理装置1は、第1データベース200に対応した第2データベース400を第2管理システム3において作成する(ST100)。例えば情報処理装置1は、第1データベース200の第1テーブル201と同様なフィールドを持つ第2テーブル401を第2管理システム3に作成する。 First, the information processing device 1 creates a second database 400 corresponding to the first database 200 in the second management system 3 (ST100). For example, the information processing device 1 creates a second table 401 in the second management system 3 that has fields similar to those of the first table 201 in the first database 200.

次に情報処理装置1は、第1データベース200について作成された1つの第1SQL文202を選択する(ST105)。情報処理装置1は、選択した第1SQL文202を解析し、その解析結果に基づいて、第1SQL文202による第1データベース200の操作に対応した第2データベース400の操作を第2管理システム3に行わせる第2SQL文212又は412を作成する(ST110)。例えば情報処理装置1は、第1SQL文202について構文解析を行い、解析した構文と同等の構文を持つ第2SQL文(212、412)を作成する。 Next, the information processing device 1 selects one of the first SQL statements 202 created for the first database 200 (ST105). The information processing device 1 analyzes the selected first SQL statement 202, and based on the analysis result, creates a second SQL statement 212 or 412 that causes the second management system 3 to perform an operation on the second database 400 corresponding to the operation on the first database 200 by the first SQL statement 202 (ST110). For example, the information processing device 1 performs syntax analysis on the first SQL statement 202, and creates a second SQL statement (212, 412) that has a syntax equivalent to the analyzed syntax.

情報処理装置1は、1つの第1SQL文202について第2SQL文212又は412を作成すると、まだ解析していない第1SQL文202がある場合には(ST115のYes)、その第1SQL文202を選択して(ST120)、上述したステップST110の処理を行う。これにより情報処理装置1は、第1データベース200について作成された全ての第1SQL文202についてそれぞれ第2SQL文(212、412)を作成する。 When the information processing device 1 creates the second SQL statement 212 or 412 for one first SQL statement 202, if there is a first SQL statement 202 that has not yet been analyzed (Yes in ST115), it selects that first SQL statement 202 (ST120) and performs the processing of step ST110 described above. As a result, the information processing device 1 creates second SQL statements (212, 412) for each of all first SQL statements 202 created for the first database 200.

情報処理装置1は、第1管理システムにおいて第1データベース200のために用意されたユーザインターフェースのオブジェクト(フォーム、レポートなど)を、第2管理システム3の端末装置において利用可能なオブジェクトに変換し、記憶装置2に第2データベース情報(モジュール214、フォーム・レポート情報215)として保存する(ST120)。第1管理システムがACCESSであり、情報処理装置1が端末装置としてACCESSのユーザインターフェース機能(フォーム、レポートなど)を利用する場合、第1データベース200のために用意されたオブジェクト(フォーム、レポートなど)の少なくとも一部をそのまま第2データベース情報として流用してもよい。 The information processing device 1 converts user interface objects (forms, reports, etc.) prepared for the first database 200 in the first management system into objects usable in the terminal device of the second management system 3, and stores them in the storage device 2 as second database information (module 214, form/report information 215) (ST120). When the first management system is ACCESS and the information processing device 1 uses the user interface functions (forms, reports, etc.) of ACCESS as a terminal device, at least some of the objects (forms, reports, etc.) prepared for the first database 200 may be used as the second database information as is.

次に、第2SQL文(212、412)を作成するステップST110(図2)の処理の詳細について説明する。ステップST110において、情報処理装置1は処理対象の第1SQL文202の内容に応じた種々の処理を行う。ここでは、第1SQL文202の内容に応じたステップST110の処理をそれぞれ説明する。以下の説明では、一例として、第1管理システムがACCESSであり、第2管理システム3がAzure SQL Databaseであるものとする。 Next, the details of the process of step ST110 (FIG. 2) in which the second SQL statement (212, 412) is created will be described. In step ST110, the information processing device 1 performs various processes according to the contents of the first SQL statement 202 to be processed. Here, the processes of step ST110 according to the contents of the first SQL statement 202 will be described. In the following description, as an example, the first management system is ACCESS and the second management system 3 is Azure SQL Database.

<1.ユーザによるパラメータの入力を受け付けるクエリの場合>
図3Aは、第1SQL文202に対応した第2SQL文(212、412)を作成する処理の一例を説明するためのフローチャートであり、第1SQL文202のクエリがユーザによるパラメータの入力を受け付けるクエリである場合の処理を示す。
<1. Query that accepts parameter input by the user>
FIG. 3A is a flowchart illustrating an example of a process for creating a second SQL statement (212, 412) corresponding to the first SQL statement 202, and illustrates the process when the query of the first SQL statement 202 is a query that accepts parameter input by the user.

この場合、情報処理装置1は、第1SQL文202において用いられるパラメータであって、ユーザにより入力され得る1以上のパラメータを特定する(ST200)。次に情報処理装置1は、第1SQL文202による第1データベース200の操作に対応した第2データベース400の操作を行わせる第2SQL文412として、この特定された1以上のパラメータを用いる第2SQL文412を作成する(ST205)。第2管理システム3がAzure SQL Database(登録商標)の場合、情報処理装置1は、パラメータの値を引数として渡すことが可能なストアド・プロシージャ402又は関数403を第2SQL文412として作成する。 In this case, the information processing device 1 identifies one or more parameters used in the first SQL statement 202 that can be input by the user (ST200). Next, the information processing device 1 creates a second SQL statement 412 that uses the identified one or more parameters as a second SQL statement 412 that operates the second database 400 corresponding to the operation of the first database 200 by the first SQL statement 202 (ST205). If the second management system 3 is Azure SQL Database (registered trademark), the information processing device 1 creates a stored procedure 402 or function 403 that can pass the parameter value as an argument as the second SQL statement 412.

また情報処理装置1は、端末装置として第2管理システム3にアクセスする場合に実行されるモジュール214を作成する(ST210)。このモジュール214は、ステップST200において特定された1以上のパラメータを入力するためのユーザインターフェースを提供する1以上の第1プログラムコードと、第2管理システム3が、第1SQL文202について作成した第2SQL文412を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとを含む。第1管理システムがACCESSの場合、モジュール214はVBA(Visual Basic for Applications )により記述されたプログラムコードを含む。端末装置(情報処理装置1)がこのモジュール214を実行することにより、第1プログラムコードが提供するユーザインターフェースにおいて必要なパラメータを入力することが可能になるとともに、入力したパラメータを第2SQL文412の引数に設定して、第2SQL文412を第2管理システム3に実行させることが可能になる。 The information processing device 1 also creates a module 214 that is executed when accessing the second management system 3 as a terminal device (ST210). This module 214 includes one or more first program codes that provide a user interface for inputting one or more parameters identified in step ST200, and a second program code that instructs the second management system 3 to execute the second SQL statement 412 created for the first SQL statement 202 using one or more parameters inputted by the user interface. When the first management system is ACCESS, the module 214 includes program code written in VBA (Visual Basic for Applications). By the terminal device (information processing device 1) executing this module 214, it becomes possible to input necessary parameters in the user interface provided by the first program code, and to set the input parameters as arguments of the second SQL statement 412, thereby making it possible to have the second management system 3 execute the second SQL statement 412.

図3Bは、第1SQL文202のパラメータを特定する処理(ST200:図3A)の一例を説明するためのフローチャートである。
この例において、まず情報処理装置1は、第1SQL文202のクエリ情報203に含まれたパラメータ情報を取得する(ST300)。パラメータ情報は、第1SQL文202のクエリにおいて用いられる1以上のパラメータに関する情報であり、第1管理システムがACCESSの場合、クエリの定義情報を保持するQueryDefオブジェクトにおいてパラメータを保持する配列(QueryDef.Parameters)から取得することができる。
FIG. 3B is a flowchart for explaining an example of the process of identifying parameters of the first SQL statement 202 (ST200: FIG. 3A).
In this example, first, the information processing device 1 acquires parameter information included in the query information 203 of the first SQL statement 202 (ST300). The parameter information is information about one or more parameters used in the query of the first SQL statement 202, and when the first management system is ACCESS, the parameter information can be acquired from an array (QueryDef.Parameters) that holds parameters in a QueryDef object that holds definition information of the query.

情報処理装置1は、第1SQL文202を構成する複数のトークン(SQLにおいて意味を持った字句を表す文字列)から順に1つのトークンを選択し(ST305)、この選択したトークンが、パラメータ情報が示すパラメータを表したトークン(以下「パラメータトークン」と呼ぶ場合がある。)であるか判定する(ST310)。例えば情報処理装置1は、パラメータ情報が示すパラメータの名称とトークンの文字列とを照合し、その照合結果に基づいて、このトークンがパラメータトークンであるか判定する。 The information processing device 1 sequentially selects one token from among multiple tokens (character strings representing meaningful words in SQL) constituting the first SQL statement 202 (ST305), and determines whether the selected token is a token representing a parameter indicated by the parameter information (hereinafter, may be referred to as a "parameter token") (ST310). For example, the information processing device 1 compares the name of the parameter indicated by the parameter information with the character string of the token, and determines whether the token is a parameter token based on the comparison result.

選択したトークンがパラメータトークンである場合(ST310のYes)、情報処理装置1は、そのパラメータトークンに対応するパラメータのタイプを判別する(ST315)。本実施形態において、パラメータには、ユーザによるパラメータの入力方法が異なる複数のタイプが存在する。パラメータのタイプは、例えば、第1SQL文202におけるパラメータトークンと他のトークンとの関係や、パラメータトークンに含まれる文字列などに基づいて識別することができる。情報処理装置1は、パラメータトークンと他のトークンとが所定の関係にあることや、パラメータトークンに所定の文字列が含まれることなどを判別基準として、そのパラメータトークンに対応するパラメータのタイプを判別する。 If the selected token is a parameter token (Yes in ST310), the information processing device 1 determines the type of parameter corresponding to the parameter token (ST315). In this embodiment, there are multiple types of parameters that differ in the way the user inputs the parameter. The type of parameter can be identified, for example, based on the relationship between the parameter token and other tokens in the first SQL statement 202, the character string contained in the parameter token, etc. The information processing device 1 determines the type of parameter corresponding to the parameter token based on criteria such as the parameter token having a specified relationship with other tokens and the parameter token containing a specified character string.

情報処理装置1は、1つのトークンについてステップST310、ST315の処理を行うと、まだこれらの処理を行っていないトークンがある場合には(ST320のYes)、そのトークンを選択して(ST325)、上述したステップST310、ST315の処理を行う。これにより情報処理装置1は、第1SQL文202に含まれる全てのトークンについてステップST310、ST315の処理を行う。 When the information processing device 1 performs the processes of steps ST310 and ST315 for one token, if there is a token for which these processes have not yet been performed (Yes in ST320), the information processing device 1 selects that token (ST325) and performs the processes of steps ST310 and ST315 described above. As a result, the information processing device 1 performs the processes of steps ST310 and ST315 for all tokens included in the first SQL statement 202.

情報処理装置1は、上述したステップST210(図3A)の処理においてモジュール204を作成する場合、ステップST215で判定されたパラメータのタイプにおける入力方法に適合したユーザインターフェースを提供する第1プログラムを作成する。すなわち、ステップST210(図3A)において一の第1SQL文202について作成される一の第1プログラムは、当該一の第1SQL文202に用いられる一のパラメータを入力するためのユーザインターフェースであって、当該一のパラメータについて判別されたタイプにおける入力方法に適合したユーザインターフェースを提供する。これにより、パラメータを用いる第2SQL文412のクエリを実行した場合、第1SQL文202のパラメータのタイプ(入力方法)に適合した適切なユーザインターフェースにより第2SQL文412のパラメータを入力することが可能となる。 When the information processing device 1 creates the module 204 in the process of step ST210 (FIG. 3A) described above, it creates a first program that provides a user interface that is compatible with the input method for the type of parameter determined in step ST215. That is, a first program created for a first SQL statement 202 in step ST210 (FIG. 3A) is a user interface for inputting a parameter used in the first SQL statement 202, and provides a user interface that is compatible with the input method for the type determined for the parameter. As a result, when a query of a second SQL statement 412 that uses a parameter is executed, it becomes possible to input the parameter of the second SQL statement 412 through an appropriate user interface that is compatible with the type (input method) of the parameter of the first SQL statement 202.

本実施形態において、第1SQL文202のパラメータのタイプには例えば2つのタイプ(第1タイプ、第2タイプ)が存在する。第1タイプのパラメータは、第1SQL文202に従って第1管理システムの画面に表示される入力用オブジェクト(入力ダイアログなど)により入力される。第2タイプのパラメータは、第1管理システムの画面に表示される所定のオブジェクト(フォーム、レポートなど)において入力若しくは提示されるデータに基づいて取得される。 In this embodiment, there are, for example, two types of parameters (first type and second type) of the first SQL statement 202. The first type parameters are input by an input object (such as an input dialog) displayed on the screen of the first management system according to the first SQL statement 202. The second type parameters are obtained based on data input or presented in a specific object (such as a form or report) displayed on the screen of the first management system.

第1タイプのパラメータを入力するためのユーザインターフェースを提供する第1プログラムは、端末装置(情報処理装置1)において、入力用オブジェクト(入力ダイアログなど)を表示部13の画面に表示する処理と、入力用オブジェクトにおいて入力されたデータを当該第1タイプのパラメータとして取得する処理とを実行させる。 The first program, which provides a user interface for inputting a first type of parameter, causes a terminal device (information processing device 1) to execute a process of displaying an input object (such as an input dialog) on the screen of the display unit 13, and a process of acquiring data input in the input object as the first type of parameter.

また第2タイプのパラメータを入力するためのユーザインターフェースを提供する第1プログラムは、端末装置(情報処理装置1)において、モジュール214(オブジェクト用モジュール)を実行することにより表示部13の画面に表示される所定のオブジェクト(フォーム、レポートなど)において入力若しくは提示されるデータに基づいて、当該第2タイプのパラメータを取得することができるか判定する処理と、当該第2タイプのパラメータを取得できないと判定した場合、当該第2タイプのパラメータを入力するための入力用オブジェクト(入力ダイアログなど)を表示部13の画面に表示させる処理と、入力用オブジェクトにおいて入力されたデータを当該第2タイプのパラメータとして取得する処理とを実行させる。 The first program, which provides a user interface for inputting a second type parameter, executes module 214 (object module) in the terminal device (information processing device 1) to determine whether the second type parameter can be acquired based on data input or presented in a specific object (form, report, etc.) displayed on the screen of the display unit 13, and if it is determined that the second type parameter cannot be acquired, executes a process of displaying an input object (input dialog, etc.) for inputting the second type parameter on the screen of the display unit 13, and a process of acquiring the data input in the input object as the second type parameter.

以下、第1SQL文202のクエリがパラメータの入力を受け付ける場合におけるステップST110(図2)の処理の具体例について説明する。 Below, we will explain a specific example of the processing of step ST110 (Figure 2) when the query of the first SQL statement 202 accepts parameter input.

図4Bは変更元の第1SQL文202の一例を示し、図4Aは第1SQL文202において操作対象となる第1テーブル201の構造の一例を示す。図4Bに示す第1SQL文202のクエリでは、第1テーブル201であるテーブル“T_明細”において、フィールド“商品CD”がパラメータ“[prm商品CD]”と等しく、かつ、フィールド“顧客CD”がパラメータ“Forms!F_割引一括設定!cbo顧客”と等しく、かつ、フィールド“単価”がパラメータ“[最低単価を入力してください]”以上である条件を満たしたレコードが抽出され、抽出されたレコードにおけるフィールド“割引額”のデータ値が“150”に更新される。 Figure 4B shows an example of the first SQL statement 202 to be changed, and Figure 4A shows an example of the structure of the first table 201 to be operated on by the first SQL statement 202. In the query of the first SQL statement 202 shown in Figure 4B, records are extracted from the table "T_details", which is the first table 201, that satisfy the conditions that the field "Product CD" is equal to the parameter "[prm Product CD]", the field "Customer CD" is equal to the parameter "[Forms!F_Discount bulk setting!cbo Customer", and the field "Unit price" is equal to or greater than the parameter "[Enter the minimum unit price]", and the data value of the field "Discount amount" in the extracted records is updated to "150".

第1管理システム(情報処理装置1)は、図4Bに示す第1SQL文202を実行すると、図4C、図4Dに示すような入力ダイアログを表示部13の画面に表示し、これらの入力ダイアログにおいてパラメータ“[prm商品CD]”、“[最低単価を入力してください]”を入力する。また第1管理システム(情報処理装置1)は、図示しないフォーム“F_割引一括設定”におけるコントロール“cbo顧客”に設定された値を、パラメータ“Forms!F_割引一括設定!cbo顧客”の値として取得する。 When the first management system (information processing device 1) executes the first SQL statement 202 shown in FIG. 4B, it displays input dialogs such as those shown in FIG. 4C and FIG. 4D on the screen of the display unit 13, and the parameters "[prm product CD]" and "[Please enter the minimum unit price]" are entered in these input dialogs. The first management system (information processing device 1) also obtains the value set in the control "cbo customer" in the form "F_bulk discount setting" (not shown) as the value of the parameter "Forms!F_bulk discount setting!cbo customer".

ステップST110(図2)において図4Bに示す第1SQL文202を解析する場合、情報処理装置1は、第1SQL文202におけるパラメータを特定する処理を行う(ST200:図3A)。まず情報処理装置1は、QueryDefオブジェクトに含まれるパラメータのオブジェクト(QueryDef.Parameters)から、第1SQL文202におけるパラメータのリストを生成する。図5Aは、パラメータのリストの例を示す。このリストにおいて、各パラメータのタイプは未だ不明である。 When analyzing the first SQL statement 202 shown in FIG. 4B in step ST110 (FIG. 2), the information processing device 1 performs a process of identifying parameters in the first SQL statement 202 (ST200: FIG. 3A). First, the information processing device 1 generates a list of parameters in the first SQL statement 202 from the parameter object (QueryDef.Parameters) included in the QueryDef object. FIG. 5A shows an example of the parameter list. In this list, the type of each parameter is still unknown.

次に情報処理装置1は、第1SQL文202に含まれる各トークンとリスト(図5A)に含まれるパラメータとを照合することにより、第1SQL文202に含まれるパラメータトークンを特定する(ST310:図3B)。情報処理装置1は、パラメータトークンを特定すると、そのパラメータトークンのタイプを判別する(ST315:図3B)。 Next, the information processing device 1 identifies parameter tokens included in the first SQL statement 202 by comparing each token included in the first SQL statement 202 with the parameters included in the list (FIG. 5A) (ST310: FIG. 3B). When the information processing device 1 identifies a parameter token, it determines the type of the parameter token (ST315: FIG. 3B).

例えば情報処理装置1は、PARAMETERS句によって明示的に定義されたパラメータを第1タイプと判定する。また情報処理装置1は、パラメータトークンの先頭の文字列に“Forms”や“Reports”が含まれている場合、そのパラメータを第2タイプと判定する。パラメータトークンがこれらの条件のいずれにも該当しない場合、情報処理装置1は、そのパラメータを第1タイプと判定する。
この判定基準よると、図5Bに示すように、パラメータ“[prm商品CD]”は第1タイプと判定され、パラメータ“Forms!F_割引一括設定!cbo顧客”は第2タイプと判定され、パラメータ“[最低単価を入力してください]”は第1タイプと判定される。
For example, the information processing device 1 determines that a parameter explicitly defined by a PARAMETERS phrase is the first type. Also, if the first character string of a parameter token contains "Forms" or "Reports", the information processing device 1 determines that the parameter is the second type. If the parameter token does not meet any of these conditions, the information processing device 1 determines that the parameter is the first type.
According to this judgment criterion, as shown in FIG. 5B, the parameter "[prm Product CD]" is judged to be the first type, the parameter "[Forms!F_Discount Bulk Setting!cbo Customer" is judged to be the second type, and the parameter "[Please enter the minimum unit price]" is judged to be the first type.

図5Cは、図4Bに示す第1SQL文202について情報処理装置1が作成する第2SQL文412の例を示す。図5Cの例において、第2SQL文412はストアド・プロシージャ402である。このストアド・プロシージャ402は、ステップST200において特定された3つのパラメータ“[prm商品CD]”、“[最低単価を入力してください]”、“Forms!F_割引一括設定!cbo顧客”に対応する3つの引数“@p_1”、“@p_2”、“@p_3”を持つ。 Figure 5C shows an example of a second SQL statement 412 created by the information processing device 1 for the first SQL statement 202 shown in Figure 4B. In the example of Figure 5C, the second SQL statement 412 is a stored procedure 402. This stored procedure 402 has three arguments "@p_1", "@p_2", and "@p_3" corresponding to the three parameters "[prm product CD]", "[enter minimum unit price]", and "Forms!F_discount lump sum setting!cbo customer" identified in step ST200.

図6~図9は、図5Cに示すストアド・プロシージャ402(第2SQL文412)について情報処理装置1が作成するモジュール214の一例を示す図であり、VBAで記述されたファンクション・プロシージャを示す。 Figures 6 to 9 are diagrams showing an example of a module 214 created by the information processing device 1 for the stored procedure 402 (second SQL statement 412) shown in Figure 5C, and show a function procedure written in VBA.

図6~図9の例に示すモジュール214は、第1プログラムコードP1及びP2と、第2プログラムコードP3を含む。第1プログラムコードP1(図7)は、第1タイプのパラメータ“[prm商品CD]”を入力するためのユーザインターフェースを提供し、第1プログラムコードP2(図8)は、第2タイプのパラメータ“Forms!F_割引一括設定!cbo顧客”を入力するためのユーザインターフェースを提供する。なお、第1タイプのパラメータ“[最低単価を入力してください]”を入力するためのユーザインターフェースを提供する第1プログラムコードは、図7に示す第1プログラムコードP1と概ね同じのため、図示を省略している。第2プログラムコードP3(図9)は、第2管理システム3が、図5Cに示すストアド・プロシージャ402(第2SQL文412)を、ユーザインターフェースによって入力される3つのパラメータを用いて実行するように指示する。 The module 214 shown in the examples of Figures 6 to 9 includes first program codes P1 and P2 and second program code P3. The first program code P1 (Figure 7) provides a user interface for inputting the first type parameter "prm product CD", and the first program code P2 (Figure 8) provides a user interface for inputting the second type parameter "Forms!F_discount lump sum setting!cbo customer". The first program code that provides a user interface for inputting the first type parameter "[Enter minimum unit price]" is generally the same as the first program code P1 shown in Figure 7, so it is not shown. The second program code P3 (Figure 9) instructs the second management system 3 to execute the stored procedure 402 (second SQL statement 412) shown in Figure 5C using three parameters input by the user interface.

図10は、端末装置(情報処理装置1)において図6~図9に示すモジュール214を実行した場合の処理を説明するためのフローチャートである。 Figure 10 is a flowchart for explaining the processing when module 214 shown in Figures 6 to 9 is executed on a terminal device (information processing device 1).

端末装置(情報処理装置1)は、表示部13の画面において、図5Cに示すストアド・プロシージャ402(第2SQL文412)を実行する前の確認メッセージ「更新クエリを実行すると、テーブルのデータが変更されます。このアクションクエリを実行してもよいですか?」をメッセージ・ボックスにより表示する(ST400)。このメッセージ・ボックスにおいて「いいえ」ボタンが押下されると(ST405のNo)、端末装置は処理を終了する。メッセージ・ボックスにおいて「はい」ボタンが押下されると(ST405のYes)、端末装置は3つのパラメータをそれぞれ取得する処理を行う(ST410)。 The terminal device (information processing device 1) displays a confirmation message "Executing an update query will change the data in the table. Are you sure you want to execute this action query?" in a message box on the screen of the display unit 13 before executing the stored procedure 402 (second SQL statement 412) shown in FIG. 5C (ST400). If the "No" button is pressed in this message box (No in ST405), the terminal device ends the processing. If the "Yes" button is pressed in the message box (Yes in ST405), the terminal device performs processing to obtain each of the three parameters (ST410).

図11は、ステップST410(図10)において第1タイプのパラメータ(“[prm商品CD]”、“[最低単価を入力してください]”)を入力する処理の一例を説明するためのフローチャートである。この場合、端末装置(情報処理装置1)は、図4Cに示すような入力ダイアログを表示部13の画面に表示して、ユーザに値を入力させる(ST510)。入力ダイアログにおいて値が入力されない場合(ST515のNo)、端末装置は処理を終了する。入力ダイアログにおいて値が入力された場合(ST515のYes)、端末装置は、入力された値をストアド・プロシージャ402のパラメータに設定した後(ST520)、ストアド・プロシージャ402に設定した当該パラメータの値を読み出して、パラメータに値が設定されているか判定する(ST525)。パラメータの値が正常に設定されている場合(ST525のYes)、端末装置は処理を終了する。パラメータに値が設定されていない場合(ST525のNo)、端末装置はエラーメッセージ「このフィールドに入力した値が正しくありません。例えば数値型のフィールドに文字列を入力しました。」をメッセージ・ボックスにより表示する(ST530)。メッセージ・ボックスにおいて「はい」ボタンが押下されると、端末装置はステップST510に戻り、ステップST510以降の処理を繰り返す。 Figure 11 is a flowchart for explaining an example of the process of inputting the first type of parameter ("[prm product CD]", "[Please enter the minimum unit price]") in step ST410 (Figure 10). In this case, the terminal device (information processing device 1) displays an input dialog as shown in Figure 4C on the screen of the display unit 13, and allows the user to input a value (ST510). If a value is not input in the input dialog (No in ST515), the terminal device ends the process. If a value is input in the input dialog (Yes in ST515), the terminal device sets the input value to the parameter of the stored procedure 402 (ST520), and then reads the value of the parameter set in the stored procedure 402 and determines whether a value is set in the parameter (ST525). If the parameter value is set correctly (Yes in ST525), the terminal device ends the process. If a value is not set in the parameter (No in ST525), the terminal device displays an error message "The value entered in this field is incorrect. For example, a character string was entered in a numeric field" in a message box (ST530). When the "Yes" button is pressed in the message box, the terminal device returns to step ST510 and repeats the process from step ST510 onwards.

図12は、ステップST410(図10)において第2タイプのパラメータ(“Forms!F_割引一括設定!cbo顧客”)を入力する処理の一例を説明するためのフローチャートである。図12に示すフローチャートは、図11に示すフローチャートにステップST500及びST505を追加したものであり、他の処理は図11に示すフローチャートと同じである。図12に示す処理において、まず端末装置(情報処理装置1)は、第2タイプのパラメータが示すオブジェクト(フォーム“F_割引一括設定”におけるコントロール“cbo顧客”)に設定された値を取得する(ST500)。このオブジェクトの値を正常に取得できた場合(ST505のYes)、端末装置は上述したステップST520に移行し、取得した値がストアド・プロシージャ402のパラメータに正しく設定できるか判定する(ST525)。オブジェクトの値を正常に取得できない場合(ST505のNo)、端末装置はステップST510に移行し、入力ダイアログからパラメータの値を入力させる。 Figure 12 is a flowchart for explaining an example of the process of inputting a second type parameter ("Forms! F_discount bulk setting! cbo customer") in step ST410 (Figure 10). The flowchart shown in Figure 12 is the flowchart shown in Figure 11 with steps ST500 and ST505 added, and the other processes are the same as those in the flowchart shown in Figure 11. In the process shown in Figure 12, the terminal device (information processing device 1) first acquires the value set in the object indicated by the second type parameter (control "cbo customer" in form "F_discount bulk setting") (ST500). If the value of this object can be acquired normally (Yes in ST505), the terminal device proceeds to the above-mentioned step ST520 and determines whether the acquired value can be correctly set as a parameter of the stored procedure 402 (ST525). If the value of the object cannot be acquired normally (No in ST505), the terminal device proceeds to step ST510 and causes the user to input the value of the parameter from the input dialog.

図10に戻る。
ステップST410において3つのパラメータの値を全て取得できなかった場合(ST415のNo)、端末装置(情報処理装置1)は処理を終了する。ステップST410において3つのパラメータの値を取得できた場合(ST415のYes)、端末装置は、第2管理システム3においてストアド・プロシージャ402(図5C)を仮実行させ、当該仮実行によってロールバック可能に変更された第2データベース400のデータに関する仮実行情報を取得する(ST420)。例えば端末装置は、仮実行によってロールバック可能に変更された第2データベース400のレコードの数を仮実行情報として取得する。そして端末装置は、仮実行情報を含んだ最終確認のメッセージ「xx件のレコードが更新されます。[はい]をクリックするとレコードは更新され、元に戻すことはできなくなります。」をメッセージ・ボックスにより表示する(ST425)。この確認用のメッセージ・ボックスにおいて「いいえ」ボタンが押下されると(ST430のNo)、端末装置は仮実行を取り消して(ST440)処理を終了する。メッセージ・ボックスにおいて「はい」ボタンが押下されると(ST430のYes)、端末装置は、ストアド・プロシージャ402の仮実行(ST420)による第2データベース400のデータの変更を第2管理システム3において確定させる(ST435)。
Return to Figure 10.
If all the three parameter values cannot be obtained in step ST410 (No in ST415), the terminal device (information processing device 1) ends the process. If the three parameter values can be obtained in step ST410 (Yes in ST415), the terminal device tentatively executes the stored procedure 402 (FIG. 5C) in the second management system 3, and obtains tentative execution information regarding the data of the second database 400 that has been changed to be rolled back by the tentative execution (ST420). For example, the terminal device obtains the number of records in the second database 400 that have been changed to be rolled back by the tentative execution as tentative execution information. Then, the terminal device displays a final confirmation message including the tentative execution information, "xx records will be updated. If you click [Yes], the records will be updated and cannot be restored," in a message box (ST425). If the "No" button is pressed in this confirmation message box (No in ST430), the terminal device cancels the tentative execution (ST440) and ends the process. When the "Yes" button in the message box is pressed (Yes in ST430), the terminal device confirms the changes to the data in the second database 400 made by the provisional execution of the stored procedure 402 (ST420) in the second management system 3 (ST435).

このように、本実施形態によれば、変更元の第1SQL文202において用いられるパラメータが特定され(ST200:図3A)、第1SQL文202による第1データベース200の操作に対応した第2データベース400の操作を行わせる第2SQL文(212、412)が作成される(ST205:図3A)。この第2SQL文(212、412)では、第1SQL文202について特定された1以上のパラメータが用いられる。また、パラメータを用いる第2SQL文(212、412)が作成される場合、端末装置において実行されるモジュール204が作成される(ST210:図3A)。このモジュール204には、変更元の第1SQL文202について特定された1以上のパラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、第2管理システム3が、当該第1SQL文202について作成された第2SQL文(212、412)を、ユーザインターフェースによって入力される1以上のパラメータを用いて実行するように指示する第2プログラムコードとが含まれる。端末装置(情報処理装置1)においてこのモジュール204が実行されることにより、第2SQL文(212、412)のクエリに必要なパラメータがユーザインターフェースにより入力され、入力されたパラメータを用いて第2SQL文(212、412)のクエリが実行される。
従って、SQL文の記述によりパラメータ取得用のユーザインターフェースを提供する機能を持つACCESSなどの既存のDBMSを、そのような機能のない別のDBMSへ変更することが可能となる。
Thus, according to this embodiment, the parameters used in the original first SQL statement 202 are identified (ST200: FIG. 3A), and a second SQL statement (212, 412) that operates the second database 400 corresponding to the operation of the first database 200 by the first SQL statement 202 is created (ST205: FIG. 3A). In this second SQL statement (212, 412), one or more parameters identified for the first SQL statement 202 are used. In addition, when the second SQL statement (212, 412) that uses parameters is created, a module 204 that is executed on the terminal device is created (ST210: FIG. 3A). This module 204 includes one or more first program codes each providing a user interface for inputting one or more parameters specified for the original first SQL statement 202, and a second program code for instructing the second management system 3 to execute a second SQL statement (212, 412) created for the first SQL statement 202 using one or more parameters inputted through the user interface. When this module 204 is executed in the terminal device (information processing device 1), parameters required for the query of the second SQL statement (212, 412) are inputted through the user interface, and the query of the second SQL statement (212, 412) is executed using the inputted parameters.
Therefore, it is possible to change an existing DBMS such as ACCESS, which has a function of providing a user interface for acquiring parameters by writing SQL statements, to another DBMS that does not have such a function.

また、本実施形態によれば、第1SQL文202に含まれる各パラメータについて、入力方法に関するパラメータのタイプが判別される。モジュール204において一のパラメータを入力するためのユーザインターフェースを提供する第1プログラムコードでは、判別されたタイプにおける入力方法に適合したユーザインターフェースが提供される。これにより、第1SQL文202のパラメータのタイプ(入力方法)に適合した適切なユーザインターフェースにより第2SQL文412のパラメータを入力することが可能となる。 Furthermore, according to this embodiment, for each parameter included in the first SQL statement 202, the type of the parameter related to the input method is determined. In the first program code that provides a user interface for inputting a parameter in the module 204, a user interface that is compatible with the input method of the determined type is provided. This makes it possible to input the parameter of the second SQL statement 412 using an appropriate user interface that is compatible with the type (input method) of the parameter of the first SQL statement 202.

また、本実施形態によれば、変更元の第1SQL文202が第1データベース200に変更を加える作用型のSQL文(例えばACCESSにおけるアクションクエリなど)の場合、作用型のSQL文(第1SQL文202)について作成された作用型の第2SQL文(ストアド・プロシージャ402など)の実行を指示する第2プログラムコードによる処理において、まず第2SQL文が仮実行され(ST420:図10)、ユーザによる指示があった場合、当該仮実行による第2データベース400のデータの変更が確定される(ST435:図10)。これにより、第2SQL文(ストアド・プロシージャ402など)による第2データベース400のデータの変更を適切に確定させることができる。 Furthermore, according to this embodiment, when the first SQL statement 202 that is the source of change is an action-type SQL statement (such as an action query in ACCESS) that makes a change to the first database 200, in the processing by the second program code that instructs the execution of an action-type second SQL statement (such as stored procedure 402) created for the action-type SQL statement (first SQL statement 202), the second SQL statement is first tentatively executed (ST420: FIG. 10), and when instructed by the user, the change to the data in the second database 400 by the tentative execution is confirmed (ST435: FIG. 10). This allows the change to the data in the second database 400 by the second SQL statement (such as stored procedure 402) to be properly confirmed.

<2.複数のテーブルのデータを変更するクエリの場合>
ACCESSのSQLでは、データベースに変更を加えるアクションクエリにおいて、複数のテーブルに対するデータの変更(更新、削除)の命令を1つの命令文(UPDATE文、DELETE文)に含めることが許容されている。一方、一般的なSQLでは、複数のテーブルに対する更新や削除の命令を1つの命令文に含めることができない。
<2. Queries that change data in multiple tables>
In ACCESS SQL, in an action query that modifies a database, it is permitted to include commands to change (update, delete) data in multiple tables in a single command statement (UPDATE statement, DELETE statement). On the other hand, in general SQL, it is not possible to include commands to update or delete data in multiple tables in a single command statement.

そこで、情報処理装置1は、複数の第1テーブル201のデータに変更を加える作用型の第1SQL文202の場合、これに対応する作用型の第2SQL文(例えばストアド・プロシージャ402)として、複数の第2テーブルに対して個別に変更(更新、削除)を加えるSQL文を作成する。
例えば、情報処理装置1は、作用型の第1SQL文202において、操作対象となっている第1テーブル201を特定する処理を行う。作用型の第1SQL文202の操作対象として複数の第1テーブル201が特定された場合、情報処理装置1は、当該作用型の第1SQL文202による第1データベース200の変更に対応した第2データベース400の変更を行わせる第2SQL文(例えばストアド・プロシージャ402)として、特定された複数の第1テーブル201に対応する複数の第2テーブル401に対して個別に変更を加える第2SQL文を作成する。
Therefore, in the case of an action-type first SQL statement 202 that makes changes to data in multiple first tables 201, the information processing device 1 creates a corresponding action-type second SQL statement (e.g., a stored procedure 402) that is an SQL statement that makes changes (updates, deletes) to multiple second tables individually.
For example, the information processing device 1 performs a process of identifying the first table 201 that is the operation target in the action type first SQL statement 202. When multiple first tables 201 are identified as operation targets of the action type first SQL statement 202, the information processing device 1 creates a second SQL statement (e.g., stored procedure 402) that changes the second database 400 corresponding to the change in the first database 200 by the action type first SQL statement 202, the second SQL statement making individual changes to multiple second tables 401 corresponding to the identified multiple first tables 201.

図13A~図13Cは、複数のテーブルのデータを1つのUPDATE文で更新する第1SQL文202についての例を示す。図13Bは作用型の第1SQL文202の一例を示し、図13Aはこの第1SQL文202において更新の対象となる2つの第1テーブル201の構造を示す。図13Bに示す作用型の第1SQL文202のクエリでは、1つのUPDATE文の中で2つの第1テーブル201(“Table_1”、“Table_2”)が連結され、連結された2つの第1テーブル201における所定のフィールド(“Field_12”、“Field_12”)が所定の値(“aaa”、“bbb”)に更新される。 Figures 13A to 13C show an example of a first SQL statement 202 that updates data in multiple tables with a single UPDATE statement. Figure 13B shows an example of an action-type first SQL statement 202, and Figure 13A shows the structure of two first tables 201 that are the target of updates in this first SQL statement 202. In the query of the action-type first SQL statement 202 shown in Figure 13B, two first tables 201 ("Table_1", "Table_2") are linked in a single UPDATE statement, and specific fields ("Field_12", "Field_12") in the two linked first tables 201 are updated to specific values ("aaa", "bbb").

図13Cは、図13Bに示す第1SQL文202に対して情報処理装置1が作成する第2SQL文(ストアド・プロシージャ402)の一例を示す。このストアド・プロシージャ402では、連結された2つの第1テーブル201における一方の第1テーブル201についての更新クエリと他方の第1テーブル201についての更新クエリとが、それぞれ個別のUPDATE文によって実行される。 Fig. 13C shows an example of a second SQL statement (stored procedure 402) that the information processing device 1 creates for the first SQL statement 202 shown in Fig. 13B. In this stored procedure 402, an update query for one of two linked first tables 201 and an update query for the other first table 201 are each executed by a separate UPDATE statement.

図14A~図14Cは、複数のテーブルのデータを1つのDELETE文で削除する第1SQL文202についての例を示す。図14Bは作用型の第1SQL文202の一例を示し、図14Aはこの第1SQL文202において削除の対象となる2つの第1テーブル201の構造を示す。図14Bに示す作用型の第1SQL文202のクエリでは、1つのDELETE文の中で2つの第1テーブル201(“Table_1”、“Table_2”)が連結され、連結された2つの第1テーブル201における所定のフィールド(“Field_12”、“Field_12”)が削除される。 Figures 14A to 14C show an example of a first SQL statement 202 that deletes data from multiple tables with a single DELETE statement. Figure 14B shows an example of an action-type first SQL statement 202, and Figure 14A shows the structure of two first tables 201 that are the targets of deletion in this first SQL statement 202. In the query of the action-type first SQL statement 202 shown in Figure 14B, two first tables 201 ("Table_1", "Table_2") are concatenated in a single DELETE statement, and specific fields ("Field_12", "Field_12") in the two concatenated first tables 201 are deleted.

図14Cは、図14Bに示す第1SQL文202に対して情報処理装置1が作成する第2SQL文(ストアド・プロシージャ402)の一例を示す。このストアド・プロシージャ402では、連結された2つの第1テーブル201における一方の第1テーブル201についての削除クエリと他方の第1テーブル201についての削除クエリとが、それぞれ個別のDELETE文によって実行される。 Fig. 14C shows an example of a second SQL statement (stored procedure 402) that the information processing device 1 creates for the first SQL statement 202 shown in Fig. 14B. In this stored procedure 402, a delete query for one first table 201 and a delete query for the other first table 201 in two linked first tables 201 are each executed by a separate DELETE statement.

このように、本実施形態によれば、複数のテーブルに対して1つの命令文により一括して変更を加える特殊なSQL文を、複数のテーブルに対して個別の命令文により変更を加える一般的なSQL文に置き換えることができる。 In this way, according to this embodiment, a special SQL statement that makes changes to multiple tables at once using a single command statement can be replaced with a general SQL statement that makes changes to multiple tables using individual command statements.

<3.フィールド部に対して自動的に別名が与えられている場合>
ACCESSのSQLでは、異なるテーブルにおける同一の名称のフィールドを別名の指定なしに使用することが許容されている。これに対して、一般的なSQLでは、異なるテーブルにおける同一の名称のフィールドに対してそれぞれ別名を指定することが要求される。
またACCESSのSQLでは、同じテーブルにおける同一のフィールドを別名の指定なしに複数回使用することが許容されているが、一般的なSQLでは、別名指定のない同一のフィールドの使用はエラーになる。
更にACCESSのSQLでは、フィールドを用いた計算式を別名指定なしに使用することが許容されているが、一般的なSQLでは、フィールドを用いた計算式に別名が指定されていないとエラーになる。
ACCESSの場合、別名の指定のないフィールド部(フィールド若しくはフィールドを含む計算式)に対して自動的に別名が指定され、その別名がクエリ定義用のオブジェクト(QueryDef.Fields)に格納されるため、フィールド部に対する明示的な別名の指定を省略したSQL文が許容されている。しかしながら、一般的なSQLにはそのような機能がないため、別名の指定が省略されるとエラーになる。
<3. When an alias is automatically assigned to the field>
In ACCESS SQL, it is permitted to use fields with the same name in different tables without specifying an alias, whereas in general SQL, it is required to specify an alias for each field with the same name in different tables.
In addition, in ACCESS SQL, it is permitted to use the same field in the same table multiple times without specifying an alias, but in general SQL, using the same field without specifying an alias results in an error.
Furthermore, in ACCESS SQL, it is permitted to use a formula that uses a field without specifying an alias, but in general SQL, an error occurs if an alias is not specified for a formula that uses a field.
In the case of ACCESS, an alias is automatically assigned to a field part (a field or a calculation formula including a field) that does not have an alias assigned, and the alias is stored in the query definition object (QueryDef.Fields), so SQL statements that omit explicit alias assignment for a field part are permitted. However, since general SQL does not have such a function, an error occurs if the alias assignment is omitted.

そこで、情報処理装置1は、第1SQL文202において別名の指定のないフィールド部が使用されている場合、これに対応する第2SQL文(212、412)として、各フィールド部に必要な別名を指定したSQL文を作成する。 Therefore, when a field part without an alias specified is used in the first SQL statement 202, the information processing device 1 creates a corresponding second SQL statement (212, 412) in which the necessary alias is specified for each field part.

以下では、第1テーブル201におけるフィールドを第1フィールドと呼び、第1SQL文202において第1フィールド又は第1フィールドを含む計算式を表す部分を第1フィールド部と呼ぶ。また、第2テーブル401におけるフィールドを第2フィールドと呼び、第2SQL文(212、412)において第2フィールド又は第2フィールドを含む計算式を表す部分を第2フィールド部と呼ぶ。更に、クエリ情報203に含まれるフィールドに関する情報(例えばACCESSにおけるQueryDef.Fields)をフィールド情報と呼ぶ。 In the following, the field in the first table 201 is referred to as the first field, and the part of the first SQL statement 202 that represents the first field or a formula including the first field is referred to as the first field portion. In addition, the field in the second table 401 is referred to as the second field, and the part of the second SQL statement (212, 412) that represents the second field or a formula including the second field is referred to as the second field portion. Furthermore, information about the field included in the query information 203 (for example, QueryDef.Fields in ACCESS) is referred to as field information.

例えば情報処理装置1は、一の第1SQL文202における1以上の第1フィールド部のうち、別名が指定されていない第1フィールド部を構文解析などにより特定する。次いで情報処理装置1は、特定した第1フィールド部の名称をフィールド情報(QueryDef.Fieldsなど)から取得する。そして情報処理装置1は、一の第1SQL文202について作成する第2SQL文(212、412)において、特定した第1フィールド部に対応する第2フィールド部の別名として、フィールド情報に含まれた名称を指定する。 For example, the information processing device 1 identifies, among one or more first field parts in a first SQL statement 202, a first field part for which no alias is specified, by syntax analysis or the like. Next, the information processing device 1 obtains the name of the identified first field part from the field information (QueryDef.Fields, etc.). Then, in a second SQL statement (212, 412) created for the first SQL statement 202, the information processing device 1 specifies the name included in the field information as an alias for the second field part corresponding to the identified first field part.

図15A~図15Eは、異なる第1テーブル201に属する同一名称の第1フィールドが別名指定なしに使用された第1SQL文202についての例を示す。図15Cは第1SQL文202の一例を示し、図15Aはこの第1SQL文202の操作対象となる2つの第1テーブル201の構造を示し、図15Bは2つの第1テーブル201に格納されるデータの例を示す。図15Cに示す第1SQL文202では、SELECT句において、異なる第1テーブル201に属する同一名称の第1フィールドが別名指定なしに使用されている。図15Cに示す第1SQL文202のクエリを図15Bに示す第1テーブルに対して実行すると、図15Dに示すようなクエリの結果が得られる。図15Dに示すクエリの結果における“Table_1.Field_A”、“Table_1.Field_A”は、それぞれ第1管理システムが自動的に付与した別名であり、フィールド情報(QueryDef.Fieldsなど)に格納される。 Figures 15A to 15E show examples of a first SQL statement 202 in which first fields with the same name that belong to different first tables 201 are used without specifying an alias. Figure 15C shows an example of a first SQL statement 202, Figure 15A shows the structures of two first tables 201 that are the objects of operation of this first SQL statement 202, and Figure 15B shows an example of data stored in the two first tables 201. In the first SQL statement 202 shown in Figure 15C, first fields with the same name that belong to different first tables 201 are used in the SELECT clause without specifying an alias. When the query of the first SQL statement 202 shown in Figure 15C is executed on the first table shown in Figure 15B, the query result shown in Figure 15D is obtained. In the query results shown in FIG. 15D, "Table_1.Field_A" and "Table_1.Field_A" are aliases automatically assigned by the first management system and are stored in the field information (such as QueryDef.Fields).

図15Eは、図15Cの第1SQL文202に対して情報処理装置1が作成する第2SQL文(212、412)の例を示す。図15Eに示す第2SQL文(212、412)では、SELECT句に記載される各第2フィールドに対して、フィールド情報(QueryDef.Fieldsなど)から取得された別名が指定されている。 Figure 15E shows an example of a second SQL statement (212, 412) that the information processing device 1 creates for the first SQL statement 202 in Figure 15C. In the second SQL statement (212, 412) shown in Figure 15E, an alias obtained from field information (such as QueryDef.Fields) is specified for each second field listed in the SELECT clause.

図16A~図16Eは、同一の第1フィールドが別名指定なしに複数回使用された第1SQL文202についての例を示す。図16Cは第1SQL文202の一例を示し、図16Aはこの第1SQL文202の操作対象となる第1テーブル201の構造を示し、図16Bは第1テーブル201に格納されるデータの例を示す。図16Cに示す第1SQL文202では、SELECT句において、同一の第1フィールドが別名指定なしに3回使用されている。図16Cに示す第1SQL文202のクエリを図16Bに示す第1テーブルに対して実行すると、図16Dに示すようなクエリの結果が得られる。図16Dに示すクエリの結果における“Expr1001”、“Expr1002”は、それぞれ第1管理システムが自動的に付与した別名であり、フィールド情報(QueryDef.Fieldsなど)に格納される。 Figures 16A to 16E show an example of a first SQL statement 202 in which the same first field is used multiple times without specifying an alias. Figure 16C shows an example of the first SQL statement 202, Figure 16A shows the structure of the first table 201 that is the target of the operation of this first SQL statement 202, and Figure 16B shows an example of data stored in the first table 201. In the first SQL statement 202 shown in Figure 16C, the same first field is used three times in the SELECT clause without specifying an alias. When the query of the first SQL statement 202 shown in Figure 16C is executed on the first table shown in Figure 16B, the query result shown in Figure 16D is obtained. "Expr1001" and "Expr1002" in the query result shown in Figure 16D are aliases automatically assigned by the first management system, and are stored in the field information (QueryDef.Fields, etc.).

図16Eは、図16Cの第1SQL文202に対して情報処理装置1が作成する第2SQL文(212、412)の例を示す。図16Eに示す第2SQL文(212、412)では、SELECT句に複数回記載される同一の第2フィールドに対して、フィールド情報(QueryDef.Fieldsなど)から取得された別名が指定されている。 Figure 16E shows an example of a second SQL statement (212, 412) that the information processing device 1 creates for the first SQL statement 202 in Figure 16C. In the second SQL statement (212, 412) shown in Figure 16E, an alias obtained from field information (such as QueryDef.Fields) is specified for the same second field that is written multiple times in the SELECT clause.

図17A~図17Eは、計算式を含む第1フィールド部が別名指定なしに使用された第1SQL文202についての例を示す。図17Cは第1SQL文202の一例を示し、図17Aはこの第1SQL文202の操作対象となる第1テーブル201の構造を示し、図17Bは第1テーブル201に格納されるデータの例を示す。図17Cに示す第1SQL文202では、SELECT句において、計算式を含む第1フィールド部(“Field_A+Field_B”)が別名指定なしに使用されている。図17Cに示す第1SQL文202のクエリを図17Bに示す第1テーブルに対して実行すると、図17Dに示すようなクエリの結果が得られる。図17Dに示すクエリの結果における“Expr1001”は、第1管理システムが自動的に付与した別名であり、フィールド情報(QueryDef.Fieldsなど)に格納される。 Figures 17A to 17E show an example of a first SQL statement 202 in which the first field part containing a formula is used without specifying an alias. Figure 17C shows an example of the first SQL statement 202, Figure 17A shows the structure of the first table 201 that is the target of the operation of this first SQL statement 202, and Figure 17B shows an example of data stored in the first table 201. In the first SQL statement 202 shown in Figure 17C, the first field part containing a formula ("Field_A + Field_B") is used in the SELECT clause without specifying an alias. When the query of the first SQL statement 202 shown in Figure 17C is executed on the first table shown in Figure 17B, the query result shown in Figure 17D is obtained. "Expr1001" in the query result shown in Figure 17D is an alias automatically assigned by the first management system and is stored in the field information (QueryDef.Fields, etc.).

図17Eは、図17Cの第1SQL文202に対して情報処理装置1が作成する第2SQL文(212、412)の例を示す。図17Eに示す第2SQL文(212、412)では、SELECT句に記載される計算式を含んだ第2フィールド部に対して、フィールド情報(QueryDef.Fieldsなど)から取得された別名が指定されている。 Figure 17E shows an example of a second SQL statement (212, 412) that the information processing device 1 creates for the first SQL statement 202 in Figure 17C. In the second SQL statement (212, 412) shown in Figure 17E, an alias obtained from field information (such as QueryDef.Fields) is specified for the second field section that includes the formula written in the SELECT clause.

このように、本実施形態によれば、第1SQL文202において第1フィールド部に対する別名が省略されている場合でも、第1管理システムにより生成されたフィールド情報(QueryDef.Fieldsなど)に含まれる第1フィールド部の名称に基づいて、第2SQL文(212、412)に記載される第2フィールド部に別名を指定することができるため、第2管理システム3におけるSQL文のエラーを回避できる。 In this way, according to this embodiment, even if an alias for the first field part is omitted in the first SQL statement 202, an alias can be specified for the second field part written in the second SQL statement (212, 412) based on the name of the first field part contained in the field information (QueryDef.Fields, etc.) generated by the first management system, thereby avoiding errors in the SQL statement in the second management system 3.

<4.数値型の引数を渡す構文が真偽型の引数を渡す構文へ変換される場合>
ACCESSのSQLでは、引数の真偽に応じた処理を行う関数や構文に対して数値型の引数を渡した場合、引数の値がゼロであれば偽であり、ゼロ以外であれば真であると解釈されるためエラーにはならないが、一般的なSQLでは、そのような場合にエラーとなる。
<4. When a syntax for passing a numeric argument is converted to a syntax for passing a boolean argument>
In ACCESS SQL, if a numeric argument is passed to a function or syntax that performs processing depending on the truth or falsity of the argument, no error occurs because if the argument value is zero, it is interpreted as false, and if it is non-zero, it is interpreted as true. However, in general SQL, an error occurs in such a case.

そこで、情報処理装置1で、引数の真偽に応じた処理を行う関数や構文に対して数値型の引数を渡した第1SQL文202の場合、数値型の引数を真偽式に置き換えた第2SQL文(212、412)を作成する。 Therefore, in the case of a first SQL statement 202 in which a numeric argument is passed to a function or syntax that performs processing according to the truth or falsehood of the argument, the information processing device 1 creates a second SQL statement (212, 412) in which the numeric argument is replaced with a truth or false expression.

例えば情報処理装置1は、第1SQL文202に対応した第2SQL文(212、412)を作成する処理において、第1SQL文202に所定の構文又は所定の関数(例えばACCESSにおけるIIF関数など)が含まれる場合には、これを第2SQL文(212、412)において別の構文又は別の関数(例えばCASE WHEN~THEN~ELSE~ENDなど)に置き換える。ここで情報処理装置1は、第1SQL文202における置換元の所定の構文又は所定の関数に渡される引数(第1引数)のデータ型が数値である一方、置換先の別の構文又は別の関数に渡される引数(第2引数)のデータ型が真又は偽の値をとるデータ型であるときは、第1引数がゼロのときに偽の値をとり、第1引数がゼロ以外のときに真の値をとる真偽式を第2引数として設定する。 For example, in the process of creating a second SQL statement (212, 412) corresponding to the first SQL statement 202, if the first SQL statement 202 contains a predetermined syntax or a predetermined function (such as the IIF function in ACCESS), the information processing device 1 replaces this with another syntax or another function (such as CASE WHEN-THEN-ELSE-END) in the second SQL statement (212, 412). Here, when the data type of the argument (first argument) passed to the predetermined syntax or the predetermined function to be replaced in the first SQL statement 202 is a numeric value, while the data type of the argument (second argument) passed to the other syntax or the other function to be replaced is a data type that takes a true or false value, the information processing device 1 sets as the second argument a boolean expression that takes a false value when the first argument is zero and takes a true value when the first argument is other than zero.

図18A~図18Fは、引数の真偽に応じた処理を行う関数や構文に対して数値型の引数を渡した第1SQL文202についての例を示す。図18Cは第1SQL文202の一例を示し、図18Aはこの第1SQL文202の操作対象となる第1テーブル201の構造を示し、図18Bは第1テーブル201に格納されるデータの例を示す。図18Cに示す第1SQL文202では、別名“[判定結果]”の第1フィールド部にIIF関数が用いられており、このIIF関数には数値型の第1引数“Field_A+Field_B”が渡されている。第1フィールド部“[判定結果]”の値は、第1引数の値がゼロの場合に“加算結果は偽”となり、第1引数の値がゼロ以外の場合に“加算結果は真”となる。図18Cに示す第1SQL文202のクエリを図18Bに示す第1テーブルに対して実行すると、図18Dに示すようなクエリの結果が得られる。 Figures 18A to 18F show examples of a first SQL statement 202 in which a numeric argument is passed to a function or syntax that performs processing according to the truth or falsity of the argument. Figure 18C shows an example of the first SQL statement 202, Figure 18A shows the structure of the first table 201 that is the operation target of this first SQL statement 202, and Figure 18B shows an example of data stored in the first table 201. In the first SQL statement 202 shown in Figure 18C, an IIF function is used in the first field section of the alias "[Decision result]", and a numeric first argument "Field_A + Field_B" is passed to this IIF function. The value of the first field section "[Decision result]" is "Addition result is false" when the value of the first argument is zero, and "Addition result is true" when the value of the first argument is other than zero. When the query of the first SQL statement 202 shown in Figure 18C is executed on the first table shown in Figure 18B, the query result shown in Figure 18D is obtained.

図18Eは、図18Cの第1SQL文202におけるIIF関数をCASE WHEN~THEN~ELSE~ENDの構文に置き換えたSQL文を示す。図18Eに示すSQL文では、CASE WHENに続く引数“Field_A+Field_B”が数値型であるため、一般的なSQLではエラーになる。 Figure 18E shows an SQL statement in which the IIF function in the first SQL statement 202 in Figure 18C has been replaced with a CASE WHEN-THEN-ELSE-END syntax. In the SQL statement shown in Figure 18E, the argument "Field_A + Field_B" following CASE WHEN is a numeric type, so an error would occur in general SQL.

図18Fは、情報処理装置1が作成する第2SQL文(212、412)の例を示す。図18Fに示す第2SQL文(212、412)では、CAST関数によって“CAST(Field_A+Field_B AS int)”のデータ型が整数型となり、これを含む第2引数“CAST(Field_A+Field_B AS int)<>0”が真偽式となる。真偽式の第2引数は、“Field_A+Field_B”がゼロのときに偽の値をとり、“Field_A+Field_B”がゼロ以外のときに真の値をとる。 Figure 18F shows an example of a second SQL statement (212, 412) created by the information processing device 1. In the second SQL statement (212, 412) shown in Figure 18F, the data type of "CAST (Field_A + Field_B AS int)" becomes an integer type by the CAST function, and the second argument "CAST (Field_A + Field_B AS int) <> 0" containing this becomes a boolean expression. The second argument of the boolean expression takes a false value when "Field_A + Field_B" is zero, and takes a true value when "Field_A + Field_B" is other than zero.

このように、本実施形態によれば、第1SQL文202において引数の真偽に応じた処理を行う関数や構文に対して数値型の第1引数が渡されている場合でも、第2SQL文(212、412)において引数の真偽に応じた処理を行う関数や構文に対して真偽式の第2引数が渡されるため、引数のデータ型に起因するエラーを回避することができる。 In this way, according to this embodiment, even if a first argument of a numeric type is passed to a function or syntax that performs processing depending on the truth or falsity of an argument in the first SQL statement 202, a second argument of a boolean type is passed to a function or syntax that performs processing depending on the truth or falsity of the argument in the second SQL statement (212, 412), so that errors caused by the data type of the argument can be avoided.

<5.フィールド部の記載が省略された構文の場合>
ACCESSのSQLでは、フィールドに関わる操作を表す所定の構文(INSERT~INTO~など)において、操作対象のフィールドの記載(例えばINSERTの後に続くフィールドの記載)を省略できる場合があるが、一般的なSQLでは、そのような場合にエラーとなる。
<5. Syntax where the field section is omitted>
In ACCESS SQL, in certain syntax that expresses operations related to fields (such as INSERT-INTO-), it is sometimes possible to omit the description of the field to be operated on (for example, the description of the field following INSERT); however, in general SQL, an error will occur in such a case.

そこで、情報処理装置1は、変更元の第1SQL文202において省略されたフィールドの記載を、変更先の第2SQL文(212、412)において補完する。 Therefore, the information processing device 1 complements the description of the field that was omitted in the first SQL statement 202, which is the source of the change, in the second SQL statement (212, 412), which is the destination of the change.

例えば情報処理装置1は、変更元の第1SQL文202において、第1フィールド部に関わる操作を表す所定の第1構文(INSERT~INTO~など)を特定する。次いで情報処理装置1は、特定した第1構文を含むテスト用の第1SQL文202を作成して第1管理システムに処理させ、当該テスト用の第1SQL文202について第1管理システムが生成したテスト用のフィールド情報(QueryDef.Fieldsなど)を取得する。そして情報処理装置1は、第1SQL文202の第1構文に対応する第2SQL文(212、412)の第2構文を作成する場合、第2構文含まれるべき第2フィールド部の名称を、テスト用のフィールド情報に基づいて設定する。 For example, the information processing device 1 identifies a predetermined first syntax (INSERT-INTO-, etc.) that represents an operation related to the first field section in the original first SQL statement 202. The information processing device 1 then creates a test first SQL statement 202 that includes the identified first syntax, has the first management system process it, and obtains test field information (QueryDef.Fields, etc.) generated by the first management system for the test first SQL statement 202. When creating the second syntax of the second SQL statement (212, 412) that corresponds to the first syntax of the first SQL statement 202, the information processing device 1 sets the name of the second field section to be included in the second syntax based on the test field information.

図19A~図19Cは、INSERT文においてフィールドの記載が省略された第1SQL文202についての例を示す。図19Bは変更元の第1SQL文202の一例を示し、図19Aは第1SQL文202において操作対象となる2つの第1テーブル201の構造を示す。図19Bに示す第1SQL文202ではINSERTの後に続く挿入先のフィールドの記載が省略されている。このような第1SQL文202に対して、情報処理装置1は、図19Cに示す第2SQL文(212、412)を作成する。この第2SQL文(212、412)では、INSERTの後に挿入先のフィールドの記載(“Field_A”、“Field_B”)が追加される。これにより、INSERTの後に続く挿入先のフィールドと、SELECTの後に続く挿入元のフィールドとが一対一に対応する。 Figures 19A to 19C show an example of a first SQL statement 202 in which the description of the field is omitted in the INSERT statement. Figure 19B shows an example of the first SQL statement 202 from which the change is to be made, and Figure 19A shows the structure of two first tables 201 that are the target of the operation in the first SQL statement 202. In the first SQL statement 202 shown in Figure 19B, the description of the destination field following INSERT is omitted. For such a first SQL statement 202, the information processing device 1 creates a second SQL statement (212, 412) shown in Figure 19C. In this second SQL statement (212, 412), the description of the destination field ("Field_A", "Field_B") is added after INSERT. This results in a one-to-one correspondence between the destination field following INSERT and the source field following SELECT.

このように、本実施形態によれば、変更元の第1SQL文202においてフィールドの記載が省略されている場合でも、変更先の第2SQL文(212、412)においてフィールドの記載が補完されるため、フィールドの記載の省略に起因するエラーを回避できる。 In this way, according to this embodiment, even if a field description is omitted in the first SQL statement 202, which is the source of the change, the field description is completed in the second SQL statement (212, 412), which is the destination of the change, so that errors caused by the omission of the field description can be avoided.

<6.サブクエリの別名が省略されている場合>
ACCESSのSQLでは、サブクエリに対する別名の指定を省略することが許容されるが、一般的なSQLでは、サブクエリの別名指定を省略するとエラーになる。
<6. When the alias of the subquery is omitted>
In ACCESS SQL, it is permitted to omit the specification of an alias for a subquery, but in general SQL, an error occurs if the specification of an alias for a subquery is omitted.

そこで、情報処理装置1は、変更元の第1SQL文202において別名指定されていないサブクエリがある場合、変更先の第2SQL文(212、412)において、サブクエリに対する別名指定の記載を補完する。 Therefore, when there is a subquery for which an alias is not specified in the first SQL statement 202 from which the change is made, the information processing device 1 complements the description of the alias specification for the subquery in the second SQL statement (212, 412) from which the change is made.

例えば情報処理装置1は、変更元の第1SQL文202において、別名指定されていないサブクエリ(第1サブクエリ)を特定する。また情報処理装置1は、変更元の第1SQL文202において使用される第1テーブル201の名称、クエリ(サブクエリ)の名称、明示的に指定された別名を構文解析により抽出し、使用済み名称として取得する。そして情報処理装置1は、変更先の第2SQL文(212、412)において第1サブクエリに対応するサブクエリ(第2サブクエリ)を作成する場合、使用済み名称に含まれる名称と重複しない別名を第2サブクエリに対して設定する。 For example, the information processing device 1 identifies a subquery (first subquery) that does not have an alias specified in the original first SQL statement 202. The information processing device 1 also extracts the name of the first table 201, the name of the query (subquery), and any explicitly specified aliases used in the original first SQL statement 202 by syntax analysis, and acquires them as used names. Then, when creating a subquery (second subquery) corresponding to the first subquery in the modified second SQL statement (212, 412), the information processing device 1 sets an alias for the second subquery that does not overlap with any names included in the used names.

図20A~図20Cは、サブクエリに対する別名の指定が省略された第1SQL文202についての例を示す。図20Bは変更元の第1SQL文202の一例を示し、図20Aは第1SQL文202において操作対象となる第1テーブル201の構造を示す。図20Bに示す第1SQL文202では、FROM句に記載されたサブクエリに対する別名の指定が省略されている。このような第1SQL文202に対して、情報処理装置1は、図20Cに示す第2SQL文(212、412)を作成する。この第2SQL文(212、412)では、FROM句において使用される第2テーブル401の名称と重複しない別名“TableExpr0001”がサブクエリに対して設定されている。 Figures 20A to 20C show an example of a first SQL statement 202 in which the specification of an alias for the subquery is omitted. Figure 20B shows an example of the original first SQL statement 202, and Figure 20A shows the structure of the first table 201 that is the target of operation in the first SQL statement 202. In the first SQL statement 202 shown in Figure 20B, the specification of an alias for the subquery written in the FROM clause is omitted. For such a first SQL statement 202, the information processing device 1 creates a second SQL statement (212, 412) shown in Figure 20C. In this second SQL statement (212, 412), an alias "TableExpr0001" that does not overlap with the name of the second table 401 used in the FROM clause is set for the subquery.

このように、本実施形態によれば、変更元の第1SQL文202において別名指定されていないサブクエリがある場合でも、変更先の第2SQL文(212、412)においてサブクエリに対する別名指定の記載が補完されるため、サブクエリの別名が省略されることによるエラーを回避できる。 In this way, according to this embodiment, even if there is a subquery for which an alias is not specified in the first SQL statement 202 from which the change is made, the description of the alias specification for the subquery is completed in the second SQL statement (212, 412) from which the change is made, so that errors caused by omitting the alias of the subquery can be avoided.

<7.特定の構文の中でフィールド部の別名が他のフィールド部に用いられている場合>
ACCESSのSQLでは、特定の構文(例えばSELECT文)の中でフィールド部に別名が指定されている場合、その別名を当該特定の構文の中における別のフィールド部(フィールドの計算式など)に使用することが許容されているが、一般的なSQLでは、そのような別名の使用はエラーになる。
<7. When an alias for a field part is used for another field part in a specific syntax>
In ACCESS SQL, if an alias is specified for a field part in a specific syntax (e.g., a SELECT statement), it is permitted to use that alias for another field part in the specific syntax (such as a field calculation formula); however, in general SQL, the use of such an alias results in an error.

そこで、情報処理装置1は、変更元の第1SQL文202における特定の構文(例えばSELECT文)において第1フィールド部に別名が指定されるとともに、その別名が当該特定の構文の中における別の第1フィールド部に使用されている場合、変更先の第2SQL文(212、412)において当該特定の構文に対応した構文を作成する際に、第2フィールド部に指定された別名を、別の第2フィールド部において使用しないようにする(第2フィールド部の元の名称を使用する)。 Therefore, when an alias is specified in a first field section in a specific syntax (e.g., a SELECT statement) in the first SQL statement 202 to be changed, and the alias is used in another first field section within the specific syntax, the information processing device 1 ensures that when creating a syntax corresponding to the specific syntax in the second SQL statement (212, 412) to be changed, the alias specified in the second field section is not used in the other second field section (the original name of the second field section is used).

以下では、SQL文においてフィールド部に関わるデータ抽出操作を表す構文(例えばSELECT文)をデータ抽出構文と呼ぶ。また、第1SQL文202におけるデータ抽出構文を第1データ抽出構文と呼び、第2SQL文(212、412)におけるデータ抽出構文を第2データ抽出構文と呼ぶ。 In the following, a syntax (e.g., a SELECT statement) that expresses a data extraction operation related to a field portion in an SQL statement is referred to as a data extraction syntax. In addition, the data extraction syntax in the first SQL statement 202 is referred to as a first data extraction syntax, and the data extraction syntax in the second SQL statement (212, 412) is referred to as a second data extraction syntax.

例えば情報処理装置1は、変更元の第1SQL文202において、複数の第1フィールド部に関わるデータ抽出操作を表す第1フィールド抽出構文(例えばSELECT文)を特定する。次いで情報処理装置1は、特定した第1フィールド抽出構文に含まれる複数の第1フィールド部と、第1フィールド部について指定された別名とを含むリストを、フィールドリストとして取得する。フィールドリストを取得した情報処理装置1は、このフィールドリストに含まれる複数の第1フィールド部において、フィールドリストに含まれる別名と同一の文字列が含まれた第1フィールド部(別名含有フィールド部)を特定する。そして情報処理装置1は、変更先の第2SQL文(212、412)において、特定した第1フィールド抽出構文に対応する第2フィールド抽出構文を作成する場合、特定した第1フィールド部(別名含有フィールド部)に含まれる別名と同一の文字列が、当該別名に対応する第1フィールド部を含んだ文字列へ置き換えられることにより得られる一連の文字列を作成する。情報処理装置1は、特定した第1フィールド部(別名含有フィールド部)に対応する第2フィールド部として、この作成した文字列を設定する。 For example, the information processing device 1 identifies a first field extraction syntax (e.g., a SELECT statement) that represents a data extraction operation related to a plurality of first field parts in the first SQL statement 202 that is the source of the change. Next, the information processing device 1 acquires, as a field list, a list that includes a plurality of first field parts included in the identified first field extraction syntax and aliases specified for the first field parts. After acquiring the field list, the information processing device 1 identifies a first field part (alias-containing field part) that includes a character string identical to an alias included in the field list in a plurality of first field parts included in the field list. Then, when creating a second field extraction syntax corresponding to the identified first field extraction syntax in the second SQL statement (212, 412) that is the destination of the change, the information processing device 1 creates a series of character strings obtained by replacing a character string identical to an alias included in the identified first field part (alias-containing field part) with a character string including a first field part that corresponds to the alias. The information processing device 1 sets the created character string as a second field part that corresponds to the identified first field part (alias-containing field part).

図21A~図21Dは、フィールド抽出構文の中でフィールド部の別名を含むフィールド部(別名含有フィールド部)が使用された第1SQL文202についての例を示す。図21Bは変更元の第1SQL文202の一例を示し、図21Aは第1SQL文202において操作対象となる第1テーブル201の構造を示す。図21Bに示す第1SQL文202では、SELECT文における第1フィールド部“[単価]*[数量]”の別名“[金額]”が、SELECT文における別の第1フィールド部“[原価]/[金額]”に含まれている。 Figures 21A to 21D show an example of a first SQL statement 202 in which a field part containing an alias for a field part (alias-containing field part) is used in the field extraction syntax. Figure 21B shows an example of the original first SQL statement 202, and Figure 21A shows the structure of the first table 201 that is the target of the operation in the first SQL statement 202. In the first SQL statement 202 shown in Figure 21B, the alias "[Amount]" for the first field part "[Unit Price] * [Quantity]" in the SELECT statement is included in another first field part "[Cost] / [Amount]" in the SELECT statement.

まず情報処理装置1は、図21Bに示す第1SQL文202において第1フィールド抽出構文としてSELECT文を特定すると、そのSELECT文に含まれる複数の第1フィールド部と、第1フィールド部について指定された別名とを含むフィールドリスト取得する。図21Cは、そのフィールドリストを示す図である。 First, the information processing device 1 identifies a SELECT statement as the first field extraction syntax in the first SQL statement 202 shown in FIG. 21B, and obtains a field list that includes multiple first field parts included in the SELECT statement and aliases specified for the first field parts. FIG. 21C is a diagram showing that field list.

次いで情報処理装置1は、図21Cに示すフィールドリストに含まれる複数の第1フィールド部において、フィールドリストに含まれる別名と同一の文字列が含まれた第1フィールド部(別名含有フィールド部)を特定する。図21Cの例では、第1フィールド部“[原価]/[金額]”が別名含有フィールド部である。 Next, the information processing device 1 identifies, among the multiple first field sections included in the field list shown in FIG. 21C, a first field section (alias-containing field section) that contains the same character string as an alias included in the field list. In the example of FIG. 21C, the first field section "[Cost]/[Amount]" is an alias-containing field section.

図21Dは、図21Bに示す第1SQL文202について情報処理装置1が生成する第2SQL文(212、412)の一例を示す。図21Dに示する第2SQL文(212、412)では、特定された別名含有フィールド部“[原価]/[金額]”に対応する第2フィールド部として、“[原価]/[金額]”における“[金額]”を“([単価]*[数量])”に置き換えた文字列が作成されている。 Figure 21D shows an example of a second SQL statement (212, 412) generated by the information processing device 1 for the first SQL statement 202 shown in Figure 21B. In the second SQL statement (212, 412) shown in Figure 21D, a character string is created in which "[amount]" in "[cost]/[amount]" is replaced with "([unit price] * [quantity])" as the second field portion corresponding to the identified alias-containing field portion "[cost]/[amount]".

このように、本実施形態によれば、第1SQL文202の第1フィールド抽出構文(例えばSELECT文)の中に別の第1フィールド部の別名を含む第1フィールド部(別名含有フィールド部)が存在する場合でも、第2フィールド部に指定された別名が別の第2フィールド部において使用されなように(第2フィールド部の元の名称を使用するように)第2SQL文(212、412)が作成される。これにより、フィールド抽出構文の中におけるフィールド部の別名の使用に伴うエラーを回避できる。 Thus, according to this embodiment, even if a first field part (alias-containing field part) that contains an alias for another first field part exists in the first field extraction syntax (e.g., SELECT statement) of the first SQL statement 202, the second SQL statement (212, 412) is created so that the alias specified in the second field part is not used in another second field part (so that the original name of the second field part is used). This makes it possible to avoid errors associated with the use of an alias for a field part in the field extraction syntax.

<8.抽出されたデータの並び順を指定する構文の場合>
ACCESSのSQLでは、フィールド抽出構文(例えばSELECT文)においてデータ抽出結果におけるデータの並び順を指定する並び順指定句(例えばORDER BY句)が含まれる場合、データ抽出結果におけるデータ数を指定するデータ数指定句(例えばTOP句)が存在しなくても正常にクエリが実行されるが、一般的なSQLでは、フィールド抽出構文において並び順指定句とともにデータ数指定句が存在しないとエラーになる。
<8. Syntax for specifying the sort order of extracted data>
In ACCESS SQL, if a field extraction syntax (e.g., a SELECT statement) contains an order specification clause (e.g., an ORDER BY clause) that specifies the order of data in the data extraction results, the query will be executed normally even if a data count specification clause (e.g., a TOP clause) that specifies the number of data in the data extraction results is not present. However, in general SQL, an error occurs if both the order specification clause and the data count specification clause are not present in the field extraction syntax.

そこで情報処理装置1は、第1SQL文202に含まれる第1フィールド抽出構文(例えばSELECT文)を特定し、特定した第1フィールド抽出構文において、並び順指定句(例えばORDER BY句)が含まれるか判定する。特定した第1フィールド抽出構文に並び順指定句が含まれる場合、情報処理装置1は、特定した第1フィールド抽出構文に対応するの第2フィールド抽出構文において、並び順指定句に加えてデータ数指定句(例えばTOP句)が含まれるように第2フィールド抽出構文を作成する。 The information processing device 1 then identifies a first field extraction syntax (e.g., a SELECT statement) included in the first SQL statement 202, and determines whether the identified first field extraction syntax includes an order specification clause (e.g., an ORDER BY clause). If the identified first field extraction syntax includes an order specification clause, the information processing device 1 creates a second field extraction syntax corresponding to the identified first field extraction syntax so that the second field extraction syntax includes a data count specification clause (e.g., a TOP clause) in addition to the order specification clause.

図22A~図22Cは、第1フィールド抽出構文に並び順指定句が含まれた第1SQL文202についての例を示す。図22Bは変更元の第1SQL文202の一例を示し、図22Aは第1SQL文202において操作対象となる第1テーブル201の構造を示す。図22Bに示す第1SQL文202は、並び順指定句としてORDER BY句を含んでいるが、データ数指定句(例えばTOP句)が存在しないため、一般的なSQLではエラーになる。 Figures 22A to 22C show an example of a first SQL statement 202 that includes an order specification clause in the first field extraction syntax. Figure 22B shows an example of the original first SQL statement 202, and Figure 22A shows the structure of the first table 201 that is the target of operation in the first SQL statement 202. The first SQL statement 202 shown in Figure 22B includes an ORDER BY clause as a sort order specification clause, but since there is no data count specification clause (e.g. a TOP clause), an error will occur in general SQL.

図22Cは、図22Bに示す第1SQL文202について情報処理装置1が生成する第2SQL文(212、412)の例を示す。図22Cに示す第2SQL文(212、412)では、SELECT句の後にTOP句が追加されている。このTOP句によるデータ数として“100 PERCENT”が設定されているため、クエリの実行結果には抽出対象に該当する全てのデータが含まれる。 Figure 22C shows an example of a second SQL statement (212, 412) generated by the information processing device 1 for the first SQL statement 202 shown in Figure 22B. In the second SQL statement (212, 412) shown in Figure 22C, a TOP clause is added after the SELECT clause. Since "100 PERCENT" is set as the number of data items in this TOP clause, the query execution result includes all data items that correspond to the extraction target.

このように、本実施形態によれば、第1SQL文202における第1フィールド抽出構文(例えばSELECT文)に並び順指定句(例えばORDER BY句)が含まれる場合、第2SQL文(212、412)における第2フィールド抽出構文には、並び順指定句とともにデータ数指定句(例えばTOP句)が含まれる。そのため、並び順指定句を含むフィールド抽出構文においてデータ数指定句が存在しないことによるエラーを回避できる。 Thus, according to this embodiment, when the first field extraction syntax (e.g., SELECT statement) in the first SQL statement 202 includes an order specification clause (e.g., ORDER BY clause), the second field extraction syntax in the second SQL statement (212, 412) includes a data count specification clause (e.g., TOP clause) along with the order specification clause. Therefore, an error caused by the absence of a data count specification clause in a field extraction syntax that includes a sort order specification clause can be avoided.

なお、本発明は上述した実施形態にのみ限定されるものではなく、種々のバリエーションを含んでいる。 The present invention is not limited to the above-described embodiment, but includes various variations.

例えば、上述した実施形態では、DBMS変更処理を行う情報処理装置1が、第1管理システムとしての機能と、第2管理システム3の端末装置としての機能とをそれぞれ備えているが、本実施形態はこの例に限定されない。本実施形態の他の例では、これらの機能の少なくとも一方を、情報処理装置1以外の別の装置(コンピュータなど)が備えていてもよい。 For example, in the embodiment described above, the information processing device 1 that performs the DBMS change processing has a function as the first management system and a function as a terminal device of the second management system 3, but this embodiment is not limited to this example. In another example of this embodiment, at least one of these functions may be provided by another device (such as a computer) other than the information processing device 1.

DBMS変更処理を行う情報処理装置1は、任意の通信手段(LAN、WAN、インターネットなど)により接続された複数のコンピュータを含むコンピュータシステムでもよい。その場合、DBMS変更処理を複数のコンピュータに分担させてもよい。 The information processing device 1 that performs the DBMS change processing may be a computer system including multiple computers connected by any communication means (LAN, WAN, Internet, etc.). In that case, the DBMS change processing may be shared among the multiple computers.

1…情報処理装置、11…通信部、12…入力部、13…表示部、14…記憶部、141…プログラム、15…処理部、2…記憶装置、200…第1データベース、201…第1テーブル、202…第1SQL文、203…クエリ情報、204…モジュール、205…フォーム・レポート情報、212…第2SQL文、214…モジュール、215…フォーム・レポート情報、3…第2管理システム、4…記憶装置、400…第2データベース、401…第2テーブル、402…ストアド・プロシージャ、403…関数、404…ビュー、412…第2SQL文 1...information processing device, 11...communication unit, 12...input unit, 13...display unit, 14...storage unit, 141...program, 15...processing unit, 2...storage device, 200...first database, 201...first table, 202...first SQL statement, 203...query information, 204...module, 205...form report information, 212...second SQL statement, 214...module, 215...form report information, 3...second management system, 4...storage device, 400...second database, 401...second table, 402...stored procedure, 403...function, 404...view, 412...second SQL statement

Claims (14)

データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する方法であって、
前記第1管理システムが管理するデータベースを第1データベースと呼び、
前記第2管理システムが管理するデータベースを第2データベースと呼び、
前記第1管理システムが前記第1データベースを操作するために実行するSQL文を第1SQL文と呼び、
前記第2管理システムが前記第2データベースを操作するために実行するSQL文を第2SQL文と呼び、
情報処理装置が、前記第1データベースに対応した前記第2データベースを作成するデータベース作成工程と、
前記情報処理装置が、前記第1データベースについて作成された1以上の前記第1SQL文を解析し、当該解析の結果に基づいて、1以上の前記第1SQL文による前記第1データベースの操作に対応した前記第2データベースの操作を前記第2管理システムに行わせる1以上の前記第2SQL文を作成するSQL文作成工程とを有し、
前記SQL文作成工程は、
前記第1SQL文において用いられるパラメータであって、ユーザにより入力され得る1以上の前記パラメータを特定することと、
前記第1SQL文による前記第1データベースの操作に対応した前記第2データベースの操作を行わせる前記第2SQL文として、特定された1以上の前記パラメータを用いる前記第2SQL文を作成することと、
前記ユーザが操作する端末装置において実行されるモジュールであって、前記第1SQL文について特定された1以上の前記パラメータを入力するためのユーザインターフェースをそれぞれ提供する1以上の第1プログラムコードと、前記第2管理システムが、当該第1SQL文について作成した前記第2SQL文を、前記ユーザインターフェースによって入力される1以上の前記パラメータを用いて実行するように指示する第2プログラムコードとを含んだ前記モジュールを作成することとを有する、
方法。
A method for changing a system that manages a database from a first management system to a second management system, comprising:
The database managed by the first management system is called a first database,
The database managed by the second management system is called a second database,
An SQL statement executed by the first management system to operate the first database is called a first SQL statement,
The SQL statement executed by the second management system to operate the second database is called a second SQL statement,
a database creation step in which an information processing device creates the second database corresponding to the first database;
an SQL statement creation step in which the information processing device analyzes one or more of the first SQL statements created for the first database, and creates one or more of the second SQL statements based on a result of the analysis, the one or more second SQL statements causing the second management system to operate the second database corresponding to the operation of the first database by the one or more first SQL statements;
The SQL statement creation step includes:
identifying one or more parameters to be used in the first SQL statement, the parameters being input by a user;
creating a second SQL statement using the one or more identified parameters as the second SQL statement for performing an operation on the second database corresponding to the operation on the first database by the first SQL statement;
creating a module to be executed in a terminal device operated by the user, the module including one or more first program codes each providing a user interface for inputting one or more of the parameters specified for the first SQL statement, and a second program code for instructing the second management system to execute the second SQL statement created for the first SQL statement by using the one or more parameters inputted by the user interface;
Method.
前記第1管理システムは、前記第1SQL文において用いられる1以上の前記パラメータに関するパラメータ情報を保存しており、
前記パラメータが用いられた前記第1SQL文を構成する複数のトークンは、前記パラメータを表す前記トークンであるパラメータトークンを含んでおり、
前記パラメータには、前記パラメータの入力方法が異なる複数のタイプが存在し、
各前記タイプは、前記パラメータトークンと他の前記トークンとの関係、及び/又は、前記パラメータトークンに含まれる文字列に基づいて識別可能であり、
前記SQL文作成工程において一の前記第1SQL文に用いられる前記パラメータを特定することは、
当該一の第1SQL文について保存された前記パラメータ情報を取得することと、
当該一の第1SQL文を構成する複数の前記トークンから、前記パラメータ情報が示す1以上の前記パラメータを表す1以上の前記パラメータトークンを特定することと、
特定された1以上の前記パラメータトークンの各々について、前記パラメータトークンと他の前記トークンとの関係、及び/又は、前記パラメータトークンに含まれる文字列に基づいて、前記タイプを判別することとを含み、
前記SQL文作成工程において一の前記第1SQL文について作成される一の前記第1プログラムコードは、当該一の第1SQL文に用いられる一の前記パラメータを入力するための前記ユーザインターフェースであって、当該一のパラメータについて判別された前記タイプにおける前記入力方法に適合した前記ユーザインターフェースを提供する、
請求項1に記載の方法。
the first management system stores parameter information regarding one or more of the parameters used in the first SQL statement;
the plurality of tokens constituting the first SQL statement in which the parameter is used include a parameter token which is the token representing the parameter,
There are a plurality of types of the parameters, each of which has a different input method for the parameter,
each said type being identifiable based on a relationship of said parameter token to other said tokens and/or on a character string contained in said parameter token;
Identifying the parameter to be used in the first SQL statement in the SQL statement creation step includes:
Obtaining the parameter information stored for the first SQL statement;
Identifying one or more parameter tokens representing one or more parameters indicated by the parameter information from among the multiple tokens constituting the first SQL statement;
and for each of the one or more identified parameter tokens, determining the type based on a relationship of the parameter token to other tokens and/or a character string included in the parameter token;
the first program code created for the first SQL statement in the SQL statement creation step provides the user interface for inputting the parameter used in the first SQL statement, the user interface being adapted to the input method in the type determined for the parameter;
The method of claim 1.
前記第1SQL文に従って前記第1管理システムの画面に表示される入力用オブジェクトにより入力される前記パラメータの前記タイプを第1タイプと呼び、
前記第1タイプの前記パラメータを入力するための前記ユーザインターフェースを提供する前記第1プログラムコードによる処理は、
前記入力用オブジェクトを前記端末装置の画面に表示させることと、
前記入力用オブジェクトにおいて入力されたデータを当該第1タイプのパラメータとして取得することとを含む、
請求項2に記載の方法。
the type of the parameter input by an input object displayed on a screen of the first management system in accordance with the first SQL statement is called a first type;
The process by the first program code for providing the user interface for inputting the parameters of the first type includes:
displaying the input object on a screen of the terminal device;
acquiring data input in the input object as the first type of parameter;
The method of claim 2.
前記第1管理システムの画面に表示される所定のオブジェクトにおいて入力若しくは提示されるデータに基づいて前記パラメータが取得される前記タイプを第2タイプと呼び、
前記端末装置の画面に前記所定のオブジェクトを表示させる場合に実行されるモジュールをオブジェクト用モジュールと呼び、
前記第2タイプの前記パラメータを入力するための前記ユーザインターフェースを提供する前記第1プログラムコードによる処理は、
前記オブジェクト用モジュールによって前記端末装置の画面に表示される前記所定のオブジェクトにおいて入力若しくは提示されるデータに基づいて、当該第2タイプのパラメータを取得することができるか判定することと、
当該第2タイプのパラメータを取得できないと判定した場合、当該第2タイプのパラメータを入力するための入力用オブジェクトを前記端末装置の画面に表示させることと、
前記入力用オブジェクトにおいて入力されたデータを当該第2タイプのパラメータとして取得することとを含む、
請求項2に記載の方法。
The type in which the parameters are acquired based on data input or presented in a predetermined object displayed on a screen of the first management system is called a second type,
A module executed when the predetermined object is displayed on the screen of the terminal device is called an object module,
The process by the first program code for providing the user interface for inputting the parameters of the second type includes:
determining whether the second type parameter can be acquired based on data input or presented in the predetermined object displayed on the screen of the terminal device by the object module;
when it is determined that the second type parameter cannot be acquired, displaying an input object for inputting the second type parameter on a screen of the terminal device;
acquiring data input in the input object as the second type parameter;
The method of claim 2.
前記第1データベースに変更を加える前記第1SQL文を作用型のSQL文と呼び、
前記作用型のSQL文について作成された前記第2SQL文を実行するように指示する前記第2プログラムコードによる処理は、
前記第2管理システムにおいて前記第2SQL文を仮実行させ、当該仮実行によってロールバック可能に変更された前記第2データベースのデータに関する仮実行情報を取得することと、
取得した前記仮実行情報を提示するとともに、前記第2SQL文による前記第2データベースのデータの変更を確定するか前記ユーザに確認を求める確認用オブジェクトを前記端末装置の画面に表示させることと、
前記第2SQL文による前記第2データベースの変更を確定する指示が前記確認用オブジェクトに入力された場合、前記第2管理システムにおいて当該仮実行による前記第2データベースのデータの変更を確定させることとを含む、
請求項1に記載の方法。
The first SQL statement that modifies the first database is called an action-type SQL statement;
The process by the second program code instructs to execute the second SQL statement created for the action-type SQL statement,
tentatively executing the second SQL statement in the second management system, and acquiring tentative execution information related to data of the second database that has been changed in a manner that allows rollback by the tentative execution;
displaying, on a screen of the terminal device, a confirmation object that presents the acquired provisional execution information and asks the user for confirmation as to whether or not to finalize the change to the data in the second database by the second SQL statement;
and when an instruction to confirm the change to the second database by the second SQL statement is input to the confirmation object, confirming the change to the data in the second database by the virtual execution in the second management system.
The method of claim 1.
前記第1データベースに含まれるテーブルを第1テーブルと呼び、
前記第2データベースに含まれるテーブルを第2テーブルと呼び、
前記第1データベースに変更を加える前記第1SQL文を作用型のSQL文と呼び、
前記SQL文作成工程は、
前記第1SQL文が前記作用型のSQL文である場合、当該作用型のSQL文において操作対象となっている前記第1テーブルを特定することと、
前記作用型のSQL文の操作対象として複数の前記第1テーブルが特定された場合、当該作用型のSQL文による前記第1データベースの変更に対応した前記第2データベースの変更を行わせる前記第2SQL文として、特定された複数の前記第1テーブルに対応する複数の前記第2テーブルに対して個別に変更を加える前記第2SQL文を作成することとを含む、
請求項1に記載の方法。
A table included in the first database is called a first table,
A table included in the second database is called a second table,
The first SQL statement that modifies the first database is called an action-type SQL statement;
The SQL statement creation step includes:
If the first SQL statement is the action type SQL statement, identifying the first table that is an operation target in the action type SQL statement;
and when a plurality of the first tables are specified as operation targets of the action type SQL statement, creating the second SQL statement for individually modifying the plurality of the second tables corresponding to the specified plurality of the first tables as the second SQL statement for modifying the second database corresponding to the modification of the first database by the action type SQL statement.
The method of claim 1.
前記第1データベースに含まれるテーブルを第1テーブルと呼び、
前記第2データベースに含まれるテーブルを第2テーブルと呼び、
前記第1テーブルにおけるフィールドを第1フィールドと呼び、
前記第2テーブルにおけるフィールドを第2フィールドと呼び、
前記第1SQL文において前記第1フィールド又は前記第1フィールドを含む計算式を表す部分を第1フィールド部と呼び、
前記第2SQL文において前記第2フィールド又は前記第2フィールドを含む計算式を表す部分を第2フィールド部と呼び、
前記第1管理システムは、前記第1SQL文における1以上の前記第1フィールド部に関するフィールド情報を保存しており、
一の前記第1SQL文について一の前記第2SQL文を作成する前記SQL文作成工程は、
当該一の第1SQL文について保存された前記フィールド情報を取得することと、
当該一の第1SQL文における1以上の前記第1フィールド部のうち、別名が指定されていない前記第1フィールド部を特定することと、
特定した前記第1フィールド部の名称を前記フィールド情報から取得することと、
当該一の第2SQL文において、特定した前記第1フィールド部に対応する前記第2フィールド部の別名として、前記フィールド情報から取得した前記名称を指定することとを含む、
請求項1に記載の方法。
A table included in the first database is called a first table,
A table included in the second database is called a second table,
A field in the first table is called a first field,
The field in the second table is called the second field,
A portion of the first SQL statement expressing the first field or a calculation formula including the first field is called a first field portion,
In the second SQL statement, a portion expressing the second field or a calculation formula including the second field is called a second field portion,
the first management system stores field information relating to one or more of the first field portions in the first SQL statement;
The SQL statement creating step of creating one of the second SQL statements for one of the first SQL statements includes:
Obtaining the stored field information for the first SQL statement;
Identifying a first field portion for which no alias is specified among one or more first field portions in the first SQL statement;
Obtaining a name of the identified first field portion from the field information;
and specifying, in the one second SQL statement, the name acquired from the field information as an alias of the second field portion corresponding to the identified first field portion.
The method of claim 1.
前記SQL文作成工程は、
前記第1SQL文における所定の関数又は所定の構文を、前記第2SQL文において別の関数又は別の構文に置き換えることと、
前記所定の関数又は前記所定の構文に渡される引数である第1引数のデータ型が数値の場合において、前記別の関数又は前記別の構文に渡される引数である第2引数のデータ型が真又は偽の値をとるデータ型ならば、前記第1引数がゼロのときに偽の値をとり、前記第1引数がゼロ以外のときに真の値をとる真偽式を前記第2引数として設定することとを含む、
請求項1に記載の方法。
The SQL statement creation step includes:
replacing a given function or a given syntax in the first SQL statement with a different function or a different syntax in the second SQL statement;
and if a data type of a first argument which is an argument passed to the predetermined function or the predetermined syntax is a numeric value, and a data type of a second argument which is an argument passed to the other function or the other syntax is a data type which takes a value of true or false, setting a boolean expression which takes a value of false when the first argument is zero and takes a value of true when the first argument is other than zero as the second argument.
The method of claim 1.
前記第1データベースに含まれるテーブルを第1テーブルと呼び、
前記第2データベースに含まれるテーブルを第2テーブルと呼び、
前記第1テーブルにおけるフィールドを第1フィールドと呼び、
前記第2テーブルにおけるフィールドを第2フィールドと呼び、
前記第1SQL文において前記第1フィールド又は前記第1フィールドを含む計算式を表す部分を第1フィールド部と呼び、
前記第2SQL文において前記第2フィールド又は前記第2フィールドを含む計算式を表す部分を第2フィールド部と呼び、
前記第1管理システムは、前記第1SQL文における1以上の前記第1フィールド部に関するフィールド情報を保存しており、
一の前記第1SQL文について一の前記第2SQL文を作成する前記SQL文作成工程は、
当該一の第1SQL文において、前記第1フィールド部に関わる操作を表す所定の第1構文を特定することと、
特定した前記第1構文を含むテスト用の前記第1SQL文を作成して前記第1管理システムに処理させ、当該テスト用の第1SQL文について前記第1管理システムが生成したテスト用の前記フィールド情報を取得することと、
当該一の第2SQL文において、特定した前記第1構文に対応する第2構文を作成する場合、前記第2構文に含まれるべき前記第2フィールド部の名称を、前記テスト用のフィールド情報に基づいて設定することとを含む、
請求項1に記載の方法。
A table included in the first database is called a first table,
A table included in the second database is called a second table,
A field in the first table is called a first field,
The field in the second table is called the second field,
A portion of the first SQL statement expressing the first field or a calculation formula including the first field is called a first field portion,
In the second SQL statement, a portion expressing the second field or a calculation formula including the second field is called a second field portion,
the first management system stores field information relating to one or more of the first field portions in the first SQL statement;
The SQL statement creating step of creating one of the second SQL statements for one of the first SQL statements includes:
Identifying a predetermined first syntax in the first SQL statement, the first syntax expressing an operation related to the first field portion;
creating a first SQL statement for testing including the identified first syntax, causing the first management system to process the first SQL statement, and acquiring the field information for testing generated by the first management system for the first SQL statement for testing;
and when creating a second syntax corresponding to the identified first syntax in the second SQL statement, setting a name of the second field portion to be included in the second syntax based on the test field information.
The method of claim 1.
一の前記第1SQL文について一の前記第2SQL文を作成する前記SQL文作成工程は、
当該一の第1SQL文において、別名が指定されていないサブクエリである第1サブクエリを特定することと、
当該一の第1SQL文において使用される前記第1データベースのテーブルの名称、及び、当該一の第1SQL文において使用される他の前記サブクエリの名称を使用済み名称として取得することと、
当該一の第2SQL文において、前記第1サブクエリに対応する第2サブクエリを作成する場合、前記使用済み名称と重複しない別名を当該第2サブクエリに設定することとを含む、
請求項1に記載の方法。
The SQL statement creating step of creating one of the second SQL statements for one of the first SQL statements includes:
Identifying a first subquery in the first SQL statement that is a subquery for which no alias is specified;
Acquiring, as used names, a name of a table of the first database used in the one first SQL statement and a name of another of the subqueries used in the one first SQL statement;
and when creating a second subquery corresponding to the first subquery in the second SQL statement, setting an alias name for the second subquery that does not overlap with the used name.
The method of claim 1.
前記第1データベースに含まれるテーブルを第1テーブルと呼び、
前記第2データベースに含まれるテーブルを第2テーブルと呼び、
前記第1テーブルにおけるフィールドを第1フィールドと呼び、
前記第2テーブルにおけるフィールドを第2フィールドと呼び、
前記第1SQL文において前記第1フィールド又は前記第1フィールドを含む計算式を表す部分を第1フィールド部と呼び、
前記第2SQL文において前記第2フィールド又は前記第2フィールドを含む計算式を表す部分を第2フィールド部と呼び、
前記第1SQL文において前記第1フィールド部に関わるデータ抽出操作を表す構文を第1フィールド抽出構文と呼び、
前記第2SQL文において前記第2フィールド部に関わるデータ抽出操作を表す構文を第2フィールド抽出構文と呼び、
一の前記第1SQL文について一の前記第2SQL文を作成する前記SQL文作成工程は、
当該一の第1SQL文において、複数の前記第1フィールド部に関わるデータ抽出操作を表す前記第1フィールド抽出構文を特定することと、
特定した前記第1フィールド抽出構文に含まれる複数の前記第1フィールド部と、前記第1フィールド部について指定された別名とを含むフィールドリストを取得することと、
前記フィールドリストに含まれる複数の前記第1フィールド部において、前記フィールドリストに含まれる前記別名と同一の文字列が含まれた前記第1フィールド部を特定することと、
当該一の第2SQL文において、特定した前記第1フィールド抽出構文に対応する前記第2フィールド抽出構文を作成する場合、特定した前記第1フィールド部に含まれる前記別名と同一の文字列が、当該別名に対応する前記第1フィールド部を含んだ文字列へ置き換えられることにより得られる一連の文字列を、特定した前記第1フィールド部に対応する前記第2フィールド部として設定することとを含む、
請求項1に記載の方法。
A table included in the first database is called a first table,
A table included in the second database is called a second table,
A field in the first table is called a first field,
The field in the second table is called the second field,
A portion of the first SQL statement expressing the first field or a calculation formula including the first field is called a first field portion,
In the second SQL statement, a portion expressing the second field or a calculation formula including the second field is called a second field portion,
A syntax that expresses a data extraction operation related to the first field portion in the first SQL statement is called a first field extraction syntax,
A syntax that expresses a data extraction operation related to the second field portion in the second SQL statement is called a second field extraction syntax,
The SQL statement creating step of creating one of the second SQL statements for one of the first SQL statements includes:
identifying the first field extraction syntax in the first SQL statement, the first field syntax representing a data extraction operation relating to a plurality of the first field portions;
acquiring a field list including a plurality of the first field portions included in the identified first field extraction syntax and aliases specified for the first field portions;
Identifying a first field portion that includes a character string identical to the alias included in the field list from among the plurality of first field portions included in the field list;
and when creating the second field extraction syntax corresponding to the identified first field extraction syntax in the one second SQL statement, a character string identical to the alias included in the identified first field portion is replaced with a character string including the first field portion corresponding to the alias, and the obtained character string is set as the second field portion corresponding to the identified first field portion.
The method of claim 1.
前記第1データベースに含まれるテーブルを第1テーブルと呼び、
前記第2データベースに含まれるテーブルを第2テーブルと呼び、
前記第1テーブルにおけるフィールドを第1フィールドと呼び、
前記第2テーブルにおけるフィールドを第2フィールドと呼び、
前記第1SQL文において前記第1フィールド又は前記第1フィールドを含む計算式を表す部分を第1フィールド部と呼び、
前記第2SQL文において前記第2フィールド又は前記第2フィールドを含む計算式を表す部分を第2フィールド部と呼び、
前記第1SQL文において前記第1フィールド部に関わるデータ抽出操作を表す構文を第1フィールド抽出構文と呼び、
前記第2SQL文において前記第2フィールド部に関わるデータ抽出操作を表す構文を第2フィールド抽出構文と呼び、
一の前記第1SQL文について一の前記第2SQL文を作成する前記SQL文作成工程は、
当該一の第1SQL文において前記第1フィールド抽出構文を特定することと、
特定した前記第1フィールド抽出構文において、データ抽出結果におけるデータの並び順を指定する並び順指定句が含まれる場合、特定した前記第1フィールド抽出構文に対応する前記第2フィールド抽出構文において、前記並び順指定句に加えて、データ抽出結果におけるデータ数を指定するデータ数指定句が含まれるように当該第2フィールド抽出構文を作成することとを含む、
請求項1に記載の方法。
A table included in the first database is called a first table,
A table included in the second database is called a second table,
A field in the first table is called a first field,
The field in the second table is called the second field,
A portion of the first SQL statement expressing the first field or a calculation formula including the first field is called a first field portion,
In the second SQL statement, a portion expressing the second field or a calculation formula including the second field is called a second field portion,
A syntax that expresses a data extraction operation related to the first field portion in the first SQL statement is called a first field extraction syntax,
A syntax that expresses a data extraction operation related to the second field portion in the second SQL statement is called a second field extraction syntax,
The SQL statement creating step of creating one of the second SQL statements for one of the first SQL statements includes:
Identifying the first field extraction syntax in the first SQL statement;
and when the identified first field extraction syntax includes an order specification phrase that specifies the order of data in the data extraction result, creating the second field extraction syntax corresponding to the identified first field extraction syntax so that the second field extraction syntax includes, in addition to the order specification phrase, a data number specification phrase that specifies the number of data in the data extraction result.
The method of claim 1.
データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する処理を情報処理装置に行わせる命令を含んだプログラムであって、
前記情報処理装置が前記命令に従って行う処理は、請求項1~請求項12のいずれか一項に記載された方法の各工程を含む、
プログラム。
A program including an instruction for causing an information processing device to perform a process of changing a system that manages a database from a first management system to a second management system,
The process performed by the information processing device in accordance with the command includes each step of the method according to any one of claims 1 to 12.
program.
データベースの管理を行うシステムを第1管理システムから第2管理システムへ変更する処理を行う情報処理装置であって、
処理部と、
前記処理部に実行される命令を記憶した記憶部とを有し、
前記処理部が前記命令に従って行う処理は、請求項1~請求項12のいずれか一項に記載された方法の各工程を含む、
情報処理装置。
An information processing device that performs a process of changing a system that manages a database from a first management system to a second management system,
A processing section;
A storage unit that stores instructions to be executed by the processing unit,
The processing performed by the processing unit in accordance with the instructions includes each step of the method according to any one of claims 1 to 12.
Information processing device.
JP2023183515A 2023-10-25 2023-10-25 Method, program and information processing device for changing a database management system Active JP7484033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023183515A JP7484033B1 (en) 2023-10-25 2023-10-25 Method, program and information processing device for changing a database management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023183515A JP7484033B1 (en) 2023-10-25 2023-10-25 Method, program and information processing device for changing a database management system

Publications (2)

Publication Number Publication Date
JP7484033B1 true JP7484033B1 (en) 2024-05-16
JP2025072990A JP2025072990A (en) 2025-05-12

Family

ID=91030895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023183515A Active JP7484033B1 (en) 2023-10-25 2023-10-25 Method, program and information processing device for changing a database management system

Country Status (1)

Country Link
JP (1) JP7484033B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064118A (en) 2021-11-24 2022-02-18 建信金融科技有限责任公司 Code migration method, apparatus, device, storage medium, program product

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2438997A1 (en) * 2003-08-28 2005-02-28 Ibm Canada Limited - Ibm Canada Limitee System and method for carrying out legacy application transitions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064118A (en) 2021-11-24 2022-02-18 建信金融科技有限责任公司 Code migration method, apparatus, device, storage medium, program product

Also Published As

Publication number Publication date
JP2025072990A (en) 2025-05-12

Similar Documents

Publication Publication Date Title
US11321057B2 (en) Single-page web application builder system and method based on a finite-state machine
US7908299B2 (en) Method and apparatus for pseudo-conversion of table objects
US20090276206A1 (en) Dynamic Software Localization
CN111886579A (en) System and method for providing instant communication channels within an integrated development environment
CN108762743B (en) Data table operation code generation method and device
US10289430B2 (en) Interactive user interface for metadata builder
CN110221899B (en) User interface adjusting method, device and system
US8554797B2 (en) System and method for modular business applications
US20110246535A1 (en) Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment
US20220058040A1 (en) Help information display system, help information display method, and help information display program
CN117453713A (en) SQL sentence generation method, device and storage medium for multi-type database
US9684738B2 (en) Text-based command generation
CN111273896A (en) Method, Apparatus and Device for Dynamic Replacing of Class Attribute Value Based on Java Reflection Mechanism
JP5249807B2 (en) File management method, file management program, and file management apparatus
JP7484033B1 (en) Method, program and information processing device for changing a database management system
JP6646754B2 (en) Job scheduling system, job scheduling method, and job scheduling device
EP2466461B1 (en) System and method for modular business applications
JP7246301B2 (en) Program development support system and program development support method
US7617236B2 (en) Method and system for displaying results of a dynamic search
US20150277723A1 (en) Exporting a component of a currently displayed user interface to a development system
WO2020170401A1 (en) Information processing device, information processing method, and information processing program
CN116166634A (en) Data blood relationship graph construction method and device, storage medium and electronic equipment
US20130132425A1 (en) Query definition apparatus and method for multi-tenant
KR102158544B1 (en) Method and system for supporting spell checking within input interface of mobile device
CN112883695B (en) Method, device, equipment and medium for generating report template and displaying data report

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240111

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240304

R150 Certificate of patent or registration of utility model

Ref document number: 7484033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150