Difference between revisions of "SQLdb Tutorial4/ja"
(6 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
{{Infobox databases/ja}} | {{Infobox databases/ja}} | ||
− | == | + | == 概要 == |
− | + | このチュートリアルは、[[Data module|Lazarus Data Modules]] を使用して、プロジェクトのデータ アクセス コンポーネントを、アクセスに関連付けられたプログラム ロジックから分離する方法をデモンストレーションすることを試みる。 このような分離により、プログラムのメンテナンスとデバッグが容易となる。 | |
− | + | このチュートリアルは、Windows 7 と SQLite3 をデータベースとして使用し、Lazarus 1.0.8 と FPC 2.6.2 を使用して開発された。 ただし、以前のバージョンでも動作するはずである。 同様に、他の DBMS およびオペレーティング システムも、必要な場合は最小限の変更が必要である。 | |
− | == | + | == なぜデータモジュールを用いるのか? == |
− | + | 以下のチュートリアルの後では簡単である: | |
− | * [[SQLdb Tutorial0]] | + | * [[SQLdb Tutorial0/ja]] |
− | * [[SQLdb Tutorial1]] | + | * [[SQLdb Tutorial1/ja]] |
− | * [[SQLdb Tutorial2]] | + | * [[SQLdb Tutorial2/ja]] |
− | * [[SQLdb Tutorial3]] | + | * [[SQLdb Tutorial3/ja]] |
− | + | '本物' のアプリケーションを開発することはより困難である。 'Form1' は異なるイベントとデータベースクエリを扱うことで指数的に大きくなる。 | |
− | + | 各テーブルへのアクセスを単一のデータモジュールに分離すると、デバッグとメンテナンスが非常に簡単になる。 | |
+ | アプリケーションは多くのデータモジュールを持つかもしれない - テーブルが 1 つまたは 2 つしかない小規模なアプリケーションは、おそらく 1 つのデータモジュールだけで十分だ - より大きなアプリケーションはそれぞれのテーブルもしくはビューに対してデータモジュールを持つことで恩恵を受けるかもしれない。 | ||
− | + | ここに示すサンプルでは、単純なクエリを含む 2 つのテーブルのみを使用してるが、各テーブルにさらに多くのオプションを含めるように拡張できる。 | |
− | == | + | == 始めてみる == |
− | + | Lazarus IDEで、新しいアプリケーションを作り、次いで、ファイル --> 新規 --> データモジュールをクリックする。 | |
[[file:newDM.jpg]] | [[file:newDM.jpg]] | ||
− | + | 'New Form'を選択した場合、新しいウインドウが開く: | |
[[file:dm1.jpg]] | [[file:dm1.jpg]] | ||
− | + | その差は、このウインドウ/フォームが見ることのできないコンポーネントのみを配置できる点である。 実際には、コンポーネントパレットを見ると、見ることのできないコンポーネントのみが選択可能なようにその数が減っている。 | |
− | + | == 皆 それぞれの仕方を持っている == | |
− | == | + | データ モジュールの使用方法は、必要に応じて異なる。 ただし、例として、少なくとも 2 つのデータ モジュールがあるとする: |
− | |||
Unit: DataModule1 | Unit: DataModule1 | ||
− | + | このモジュールに ''T*Connection'' と ''TSQLTransaction'' を配置する。 | |
[[file:conn.jpg]] | [[file:conn.jpg]] | ||
− | DataModule1 | + | DataModule1 はすべてのクエリに対するコネクションとして用いられる。 |
− | + | そこでそれぞれのテーブル、もしくはビューに対して DataModuleN を作る。 | |
[[file:dm2.jpg]] | [[file:dm2.jpg]] | ||
− | + | それぞれの DataModuleN はデータベースに接続するためUSES節にDataModule1(この例ではunit2)と記述することが必要である。 | |
− | + | ここからは [[SQLdb Tutorial1/ja]] と同じである。コンポーネントは同様のやり方で、同一のアクセスで接続される。 | |
− | == | + | ==データモジュールのさらなる用途== |
− | === Additional | + | === Additional コンポーネント === |
− | + | この例では、DataModule1はConnectionとTransactionを持つだけであるが、「現実」のアプリケーションでは、このコンポーネントはアプリケーションによって用いられる、見ることのできないコンポーネントも持つのが普通である。 | |
− | + | 例えば、INI設定を開いて、保存する''TOpenDialog''、''TSaveDialog''などである。ここで念頭に置いているのは、アプリケーションの固有の機能とデータアクセスを切り離すことである。アプリケーションにとってデータソースの変更は、決して小さな仕事ではないが、データソースと切り離すことは変更をより簡単にするだろう。 | |
− | === | + | === デバッグ === |
− | + | また、プログラムをデバッグすることは困難なことである。データアクセスと、仕事のためのロジックを切り離すことで、少なくとも問題を半減するまで独立してテストすることができる。 | |
− | + | ''DataModule'' の重要性は同じデータベースとテーブルを用いた他のアプリケーションを開発するときにより明らかとなる。もちろんデータモジュールは新しいアプリケーションでも利用可能である。 |
Latest revision as of 06:23, 30 March 2024
│
English (en) │
français (fr) │
日本語 (ja) │
参照: チュートリアル/練習となる記事: 各種データベース |
概要
このチュートリアルは、Lazarus Data Modules を使用して、プロジェクトのデータ アクセス コンポーネントを、アクセスに関連付けられたプログラム ロジックから分離する方法をデモンストレーションすることを試みる。 このような分離により、プログラムのメンテナンスとデバッグが容易となる。
このチュートリアルは、Windows 7 と SQLite3 をデータベースとして使用し、Lazarus 1.0.8 と FPC 2.6.2 を使用して開発された。 ただし、以前のバージョンでも動作するはずである。 同様に、他の DBMS およびオペレーティング システムも、必要な場合は最小限の変更が必要である。
なぜデータモジュールを用いるのか?
以下のチュートリアルの後では簡単である:
'本物' のアプリケーションを開発することはより困難である。 'Form1' は異なるイベントとデータベースクエリを扱うことで指数的に大きくなる。
各テーブルへのアクセスを単一のデータモジュールに分離すると、デバッグとメンテナンスが非常に簡単になる。
アプリケーションは多くのデータモジュールを持つかもしれない - テーブルが 1 つまたは 2 つしかない小規模なアプリケーションは、おそらく 1 つのデータモジュールだけで十分だ - より大きなアプリケーションはそれぞれのテーブルもしくはビューに対してデータモジュールを持つことで恩恵を受けるかもしれない。
ここに示すサンプルでは、単純なクエリを含む 2 つのテーブルのみを使用してるが、各テーブルにさらに多くのオプションを含めるように拡張できる。
始めてみる
Lazarus IDEで、新しいアプリケーションを作り、次いで、ファイル --> 新規 --> データモジュールをクリックする。
'New Form'を選択した場合、新しいウインドウが開く:
その差は、このウインドウ/フォームが見ることのできないコンポーネントのみを配置できる点である。 実際には、コンポーネントパレットを見ると、見ることのできないコンポーネントのみが選択可能なようにその数が減っている。
皆 それぞれの仕方を持っている
データ モジュールの使用方法は、必要に応じて異なる。 ただし、例として、少なくとも 2 つのデータ モジュールがあるとする:
Unit: DataModule1 このモジュールに T*Connection と TSQLTransaction を配置する。
DataModule1 はすべてのクエリに対するコネクションとして用いられる。
そこでそれぞれのテーブル、もしくはビューに対して DataModuleN を作る。
それぞれの DataModuleN はデータベースに接続するためUSES節にDataModule1(この例ではunit2)と記述することが必要である。
ここからは SQLdb Tutorial1/ja と同じである。コンポーネントは同様のやり方で、同一のアクセスで接続される。
データモジュールのさらなる用途
Additional コンポーネント
この例では、DataModule1はConnectionとTransactionを持つだけであるが、「現実」のアプリケーションでは、このコンポーネントはアプリケーションによって用いられる、見ることのできないコンポーネントも持つのが普通である。
例えば、INI設定を開いて、保存するTOpenDialog、TSaveDialogなどである。ここで念頭に置いているのは、アプリケーションの固有の機能とデータアクセスを切り離すことである。アプリケーションにとってデータソースの変更は、決して小さな仕事ではないが、データソースと切り離すことは変更をより簡単にするだろう。
デバッグ
また、プログラムをデバッグすることは困難なことである。データアクセスと、仕事のためのロジックを切り離すことで、少なくとも問題を半減するまで独立してテストすることができる。
DataModule の重要性は同じデータベースとテーブルを用いた他のアプリケーションを開発するときにより明らかとなる。もちろんデータモジュールは新しいアプリケーションでも利用可能である。