Sign in Join
Wiki copytemporary

SQLdb Tutorial4/ja: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## 概要
22
33このチュートリアルは、[[Data module|Lazarus Data Modules]] を使用して、プロジェクトのデータ アクセス コンポーネントを、アクセスに関連付けられたプログラム ロジックから分離する方法をデモンストレーションすることを試みる。 このような分離により、プログラムのメンテナンスとデバッグが容易となる。
44
55このチュートリアルは、Windows 7 と SQLite3 をデータベースとして使用し、Lazarus 1.0.8 と FPC 2.6.2 を使用して開発された。 ただし、以前のバージョンでも動作するはずである。 同様に、他の DBMS およびオペレーティング システムも、必要な場合は最小限の変更が必要である。
66
77## なぜデータモジュールを用いるのか?
88
99以下のチュートリアルの後では簡単である:
1010
1111- [[SQLdb Tutorial0/ja]]
1212- [[SQLdb Tutorial1/ja]]
1313- [[SQLdb Tutorial2/ja]]
1414- [[SQLdb Tutorial3/ja]]
1515
1616'本物' のアプリケーションを開発することはより困難である。 'Form1' は異なるイベントとデータベースクエリを扱うことで指数的に大きくなる。
1717
1818各テーブルへのアクセスを単一のデータモジュールに分離すると、デバッグとメンテナンスが非常に簡単になる。
1919
2020` アプリケーションは多くのデータモジュールを持つかもしれない - テーブルが 1 つまたは 2 つしかない小規模なアプリケーションは、おそらく 1 つのデータモジュールだけで十分だ - より大きなアプリケーションはそれぞれのテーブルもしくはビューに対してデータモジュールを持つことで恩恵を受けるかもしれない。`
2121
2222ここに示すサンプルでは、単純なクエリを含む 2 つのテーブルのみを使用してるが、各テーブルにさらに多くのオプションを含めるように拡張できる。
2323
2424## 始めてみる
2525
2626Lazarus IDEで、新しいアプリケーションを作り、次いで、ファイル --\> 新規 --\> データモジュールをクリックする。
2727
28-<figure>
29-<img src="newDM.jpg" title="newDM.jpg" />
30-<figcaption>newDM.jpg</figcaption>
31-</figure>
28+![](/wiki-images/4/42/NewDM.jpg)
3229
3330'New Form'を選択した場合、新しいウインドウが開く:
3431
35-<figure>
36-<img src="dm1.jpg" title="dm1.jpg" />
37-<figcaption>dm1.jpg</figcaption>
38-</figure>
32+![](/wiki-images/9/90/Dm1.jpg)
3933
4034その差は、このウインドウ/フォームが見ることのできないコンポーネントのみを配置できる点である。 実際には、コンポーネントパレットを見ると、見ることのできないコンポーネントのみが選択可能なようにその数が減っている。
4135
4236## 皆 それぞれの仕方を持っている
4337
4438データ モジュールの使用方法は、必要に応じて異なる。 ただし、例として、少なくとも 2 つのデータ モジュールがあるとする:
4539
4640Unit: DataModule1 このモジュールに *T*Connection* と *TSQLTransaction* を配置する。
4741
48-<figure>
49-<img src="conn.jpg" title="conn.jpg" />
50-<figcaption>conn.jpg</figcaption>
51-</figure>
42+![](/wiki-images/9/90/Conn.jpg)
5243
5344DataModule1 はすべてのクエリに対するコネクションとして用いられる。
5445
5546そこでそれぞれのテーブル、もしくはビューに対して DataModuleN を作る。
5647
57-<figure>
58-<img src="dm2.jpg" title="dm2.jpg" />
59-<figcaption>dm2.jpg</figcaption>
60-</figure>
48+![](/wiki-images/2/23/Dm2.jpg)
6149
6250それぞれの DataModuleN はデータベースに接続するためUSES節にDataModule1(この例ではunit2)と記述することが必要である。
6351
6452ここからは [[SQLdb Tutorial1/ja]] と同じである。コンポーネントは同様のやり方で、同一のアクセスで接続される。
6553
6654## データモジュールのさらなる用途
6755
6856### Additional コンポーネント
6957
7058この例では、DataModule1はConnectionとTransactionを持つだけであるが、「現実」のアプリケーションでは、このコンポーネントはアプリケーションによって用いられる、見ることのできないコンポーネントも持つのが普通である。
7159
7260例えば、INI設定を開いて、保存する*TOpenDialog*、*TSaveDialog*などである。ここで念頭に置いているのは、アプリケーションの固有の機能とデータアクセスを切り離すことである。アプリケーションにとってデータソースの変更は、決して小さな仕事ではないが、データソースと切り離すことは変更をより簡単にするだろう。
7361
7462### デバッグ
7563
7664また、プログラムをデバッグすることは困難なことである。データアクセスと、仕事のためのロジックを切り離すことで、少なくとも問題を半減するまで独立してテストすることができる。
7765
7866*DataModule* の重要性は同じデータベースとテーブルを用いた他のアプリケーションを開発するときにより明らかとなる。もちろんデータモジュールは新しいアプリケーションでも利用可能である。
7967
8068---
8169*From the Free Pascal wiki, page "SQLdb Tutorial4/ja", as it stood on 2024-03-30 after a change by Ariben, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history