SQLdb Tutorial4/ja: what changed
Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | + | --- | |
| 2 | + | [[Portal:Databases/ja|**データベースのポータル**]] | |
| 3 | + | 参照: · [[Databases/ja|Databases 概要]] · [[Database libraries/ja|ライブラリ]] · [[Database field type/ja|フィールドの型]] · [[Data Controls tab/ja|コントロール]] · [[Lazarus DB Faq/ja|FAQ]] · [[SqlDBHowto/ja]] · [[Working With TSQLQuery/ja|TSQLQuery の利用]] · [[How to write in-memory database applications in Lazarus/FPC/ja|メモリ上で動作するデータベースの作り方]] · チュートリアル/練習となる記事: · [[Lazarus Database Overview/ja|概要]] · [[SQLdb Tutorial0/ja|0 - データベースのセットアップ]] · [[SQLdb Tutorial1/ja|1 - 開始]] · [[SQLdb Tutorial2/ja|2 - 編集]] · [[SQLdb Tutorial3/ja|3 - クエリ]] · 4 - データモジュール · [[SQLdb Programming Reference/ja]] · 各種データベース · [[Advantage Database Server/ja|Advantage]] \- [[MySQLDatabases/ja|MySQL]] \- [[mssqlconn/ja|MSSQL]] \- [[postgres/ja|Postgres]] \- [[Firebird/ja|Interbase]] \- [[Firebird/ja|Firebird]] \- [[Oracle/ja|Oracle]] \- [[ODBCConn/ja|ODBC]] \- [[TParadox/ja|Paradox]] \- [[SQLite/ja|SQLite]] \- [[Lazarus Tdbf Tutorial/ja|dBASE]] \- [[MS Access/ja|MS Access]] \- [[Zeos tutorial/ja|Zeos]] | |
| 4 | + | ||
| 5 | + | ||
| 1 | 6 | ## 概要 | |
| 2 | 7 | ||
| 3 | - | ||
| 8 | + | このチュートリアルは、[[Data module|Lazarus Data Modules]] を使用して、プロジェクトのデータ アクセス コンポーネントを、アクセスに関連付けられたプログラム ロジックから分離する方法をデモンストレーションすることを試みる。 このような分離により、プログラムのメンテナンスとデバッグが容易となる。 | |
| 4 | 9 | ||
| 5 | - | ||
| 10 | + | このチュートリアルは、Windows 7 と SQLite3 をデータベースとして使用し、Lazarus 1.0.8 と FPC 2.6.2 を使用して開発された。 ただし、以前のバージョンでも動作するはずである。 同様に、他の DBMS およびオペレーティング システムも、必要な場合は最小限の変更が必要である。 | |
| 6 | 11 | ||
| 7 | 12 | ## なぜデータモジュールを用いるのか? | |
| 8 | 13 | ||
| 9 | - | ||
| 10 | - | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 14 | + | 以下のチュートリアルの後では簡単である: | |
| 15 | 15 | ||
| 16 | - | ||
| 16 | + | * [[SQLdb Tutorial0/ja]] | |
| 17 | + | * [[SQLdb Tutorial1/ja]] | |
| 18 | + | * [[SQLdb Tutorial2/ja]] | |
| 19 | + | * [[SQLdb Tutorial3/ja]] | |
| 17 | 20 | ||
| 18 | - | ||
| 21 | + | '本物' のアプリケーションを開発することはより困難である。 'Form1' は異なるイベントとデータベースクエリを扱うことで指数的に大きくなる。 | |
| 19 | 22 | ||
| 20 | - | ||
| 21 | - | ||
| 23 | + | 各テーブルへのアクセスを単一のデータモジュールに分離すると、デバッグとメンテナンスが非常に簡単になる。 | |
| 22 | 24 | ``` | |
| 25 | + | アプリケーションは多くのデータモジュールを持つかもしれない - テーブルが 1 つまたは 2 つしかない小規模なアプリケーションは、おそらく 1 つのデータモジュールだけで十分だ - より大きなアプリケーションはそれぞれのテーブルもしくはビューに対してデータモジュールを持つことで恩恵を受けるかもしれない。 | |
| 26 | + | ``` | |
| 23 | 27 | ||
| 24 | - | ||
| 28 | + | ここに示すサンプルでは、単純なクエリを含む 2 つのテーブルのみを使用してるが、各テーブルにさらに多くのオプションを含めるように拡張できる。 | |
| 25 | 29 | ||
| 26 | 30 | ## 始めてみる | |
| 27 | 31 | ||
| 28 | - | ||
| 32 | + | Lazarus IDEで、新しいアプリケーションを作り、次いで、ファイル --> 新規... --> データモジュールをクリックする。 | |
| 29 | 33 | ||
| 30 | - | ||
| 34 | + | [](</File:newDM.jpg>) | |
| 31 | 35 | ||
| 32 | - | ||
| 36 | + | 'New Form'を選択した場合、新しいウインドウが開く: | |
| 33 | 37 | ||
| 34 | - | ||
| 38 | + | [](</File:dm1.jpg>) | |
| 35 | 39 | ||
| 36 | - | ||
| 40 | + | その差は、このウインドウ/フォームが見ることのできないコンポーネントのみを配置できる点である。 実際には、コンポーネントパレットを見ると、見ることのできないコンポーネントのみが選択可能なようにその数が減っている。 | |
| 37 | 41 | ||
| 38 | 42 | ## 皆 それぞれの仕方を持っている | |
| 39 | 43 | ||
| 40 | - | ||
| 44 | + | データ モジュールの使用方法は、必要に応じて異なる。 ただし、例として、少なくとも 2 つのデータ モジュールがあるとする: | |
| 41 | 45 | ||
| 42 | - | ||
| 46 | + | Unit: DataModule1 このモジュールに _T*Connection_ と _TSQLTransaction_ を配置する。 | |
| 43 | 47 | ||
| 44 | - | ||
| 48 | + | [](</File:conn.jpg>) | |
| 45 | 49 | ||
| 46 | - | ||
| 50 | + | DataModule1 はすべてのクエリに対するコネクションとして用いられる。 | |
| 47 | 51 | ||
| 48 | - | ||
| 52 | + | そこでそれぞれのテーブル、もしくはビューに対して DataModuleN を作る。 | |
| 49 | 53 | ||
| 50 | - | ||
| 54 | + | [](</File:dm2.jpg>) | |
| 51 | 55 | ||
| 52 | - | ||
| 56 | + | それぞれの DataModuleN はデータベースに接続するためUSES節にDataModule1(この例ではunit2)と記述することが必要である。 | |
| 53 | 57 | ||
| 54 | - | ||
| 58 | + | ここからは [[SQLdb Tutorial1/ja]] と同じである。コンポーネントは同様のやり方で、同一のアクセスで接続される。 | |
| 55 | 59 | ||
| 56 | 60 | ## データモジュールのさらなる用途 | |
| 57 | 61 | ||
| 58 | 62 | ### Additional コンポーネント | |
| 59 | 63 | ||
| 60 | - | ||
| 64 | + | この例では、DataModule1はConnectionとTransactionを持つだけであるが、「現実」のアプリケーションでは、このコンポーネントはアプリケーションによって用いられる、見ることのできないコンポーネントも持つのが普通である。 | |
| 61 | 65 | ||
| 62 | - | ||
| 66 | + | 例えば、INI設定を開いて、保存する _TOpenDialog_ 、 _TSaveDialog_ などである。ここで念頭に置いているのは、アプリケーションの固有の機能とデータアクセスを切り離すことである。アプリケーションにとってデータソースの変更は、決して小さな仕事ではないが、データソースと切り離すことは変更をより簡単にするだろう。 | |
| 63 | 67 | ||
| 64 | 68 | ### デバッグ | |
| 65 | 69 | ||
| 66 | - | ||
| 70 | + | また、プログラムをデバッグすることは困難なことである。データアクセスと、仕事のためのロジックを切り離すことで、少なくとも問題を半減するまで独立してテストすることができる。 | |
| 67 | 71 | ||
| 68 | - | ||
| 72 | + | _DataModule_ の重要性は同じデータベースとテーブルを用いた他のアプリケーションを開発するときにより明らかとなる。もちろんデータモジュールは新しいアプリケーションでも利用可能である。 | |
| 69 | 73 | ||
| 70 | 74 | --- | |
| 71 | - | ||
| 75 | + | *From the Free Pascal wiki, page "SQLdb Tutorial4/ja", as the Internet Archive kept it on 2025-01-17, last changed on 2024-10-03. 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).* |
