SQLdb Programming Reference/ja: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | ## ドキュメンテーション | |
| 2 | 2 | ||
| 3 | 3 | 公式ドキュメントを参照されたい [SQLDB documentation](http://www.freepascal.org/docs-html/fcl/sqldb/index.html)。 | |
| 4 | 4 | ||
| 5 | 5 | この記事はSQLDbについて詳細を説明しようとしているが、公式のドキュメントがより権威的である。 | |
| 6 | 6 | ||
| 7 | 7 | ## クラス構造 | |
| 8 | 8 | ||
| 9 | 9 | 以下の図は、SQLdbに関連する主要なコンポーネントの階層と必要なリンクを示すことを試みている。これは完全ではなく、"適切な"図の構造を使用していないため、あまり深く読み込まないでいただきたい。実際に何が起こっているのかを理解するために、ソースコードを調べる必要がある部分を見つけるのに役立つことを望む。 | |
| 10 | 10 | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 11 | + |  | |
| 15 | 12 | ||
| 16 | 13 | #### 注意 | |
| 17 | 14 | ||
| 18 | 15 | - TDatabaseからTTransactionへのリンクはTransactionsであり、これは多くのトランザクションが1つのデータベースに可能であることを示している。しかし、TSQLConnectionからTSQLTransactionへの新しいリンクがTransactionとして定義されており、1つのデータベースに対して1つのトランザクションしかない。これは実際には以前のリンクを隠していないが、新しいリンクのみが公開されており、親リンクを使用することはおそらく適切ではない。 | |
| 19 | 16 | - 継承されたリンクのうち、一部は新しい型に型変換する必要がある。SQLQuery.Transaction.Commitを呼び出すことはできない。CommitはTSQLTransactionでのみ定義されている。SQLTransaction.Commitまたは"(SQLQuery.Transaction as TSQLTransaction).Commit"を呼び出すこと。 | |
| 20 | 17 | ||
| 21 | 18 | ## インタラクション | |
| 22 | 19 | ||
| 23 | 20 | ### TConnection | |
| 24 | 21 | ||
| 25 | 22 | [[TConnection|TConnectionはSQLデータベースへの]]接続を表す。日常的には、特定のデータベース用の派生クラス(例:Interbase/Firebirdの場合はTIBConnection)を使用するが、データベースファクトリー/データベース非依存のアプリケーションを作成しようとしている場合はTConnectionを使用することも可能だ(注:[TSQLConnector](http://www.freepascal.org/docs-html/fcl/sqldb/tsqlconnector.html)の使用がおそらくより適切である)。 このオブジェクトでは、ホスト名、ユーザー名、パスワードなどの接続関連の項目を指定する。 最後に、.Activeまたは.Connectedプロパティを使用して接続または切断できる。 | |
| 26 | 23 | ||
| 27 | 24 | ほとんどのデータベースは、同じプログラムやユーザーからの複数の同時接続を許可している。 | |
| 28 | 25 | ||
| 29 | 26 | ### TSQLTransaction | |
| 30 | 27 | ||
| 31 | 28 | ドキュメンテーション: [TSQLTransaction](http://www.freepascal.org/docs-html/fcl/sqldb/tsqltransaction.html) | |
| 32 | 29 | ||
| 33 | 30 | このオブジェクトは、データベース上のトランザクションを表す。実際には、データを読み取るだけでも、少なくとも1つのトランザクションがアクティブである必要がある。 単一のトランザクションを使用する場合は、TConnection.Transactionプロパティをトランザクションに設定して、データベースのデフォルトのトランザクションを設定する。対応するTSQLTransaction.Databaseプロパティは、自動的に接続を指すようになる。 | |
| 34 | 31 | ||
| 35 | 32 | TSQLTransactionを.Activeに設定する/.StartTransactionを呼び出すと、トランザクションが開始される。.Commitまたは.RollBackを呼び出すと、トランザクションがコミット(保存)されるか、ロールバック(忘却/中止)される。.AutocommitまたはCommitRetainingを使用しない限り、データベースのトランザクションをこれらで囲む必要がある。 | |
| 36 | 33 | ||
| 37 | 34 | ### TSQLQuery | |
| 38 | 35 | ||
| 39 | 36 | ドキュメンテーション: [TSQLQuery documentation](http://www.freepascal.org/docs-html/fcl/sqldb/tsqlquery.html) | |
| 40 | 37 | ||
| 41 | 38 | 詳細は [[Working With TSQLQuery/ja]] を参照されたい。 | |
| 42 | 39 | ||
| 43 | 40 | [[TSQLQuery/ja|TSQLQuery/jaは]]、接続/トランザクションのペアからデータセットを取得するオブジェクトで、そのSQLプロパティを使用してデータベースからデータが取得される。 | |
| 44 | 41 | ||
| 45 | 42 | したがって、これを使用する際には、少なくともトランザクション、接続、およびSQLのプロパティを指定する必要がある。 TSQLQueryは、データバウンドコントロールをデータベースに接続するチェーンの重要な部分である。前述のように、SQLプロパティは、データを取得するためにデータベースに対して実行されるSELECTクエリを決定する。 FPCは、ユーザー/プログラムが生成したデータの変更を処理するために使用すべき対応するSQL INSERT、UPDATE、およびDELETEステートメントを決定しようとする。 必要に応じて、プログラマはこれを微調整し、手動でInsertSQL、UpdateSQL、およびDeleteSQLプロパティを指定することができる。 | |
| 46 | 43 | ||
| 47 | 44 | ### DataSource | |
| 48 | 45 | ||
| 49 | 46 | [[TDataSource/ja|TDataSource/jaオブジェクトは]]、データバウンドコンポーネントがデータセット(TSQLQueryなど)内のどこにあるかを追跡する。プログラマは、これが機能するように対応するTSQLQueryオブジェクトを指定する必要がある。 | |
| 50 | 47 | ||
| 51 | 48 | ## DBGridといったデータバウンドコントロール | |
| 52 | 49 | ||
| 53 | 50 | = これらのコントロールは、DataSourceにリンクする必要があります。これらは、通常、DataSourceで表示するフィールドを示すプロパティを持っています。 | |
| 54 | 51 | ||
| 55 | 52 | ## Data modules | |
| 56 | 53 | ||
| 57 | 54 | [[Data module/ja|Data module/jaは]]、非視覚的コンポーネント(例:**T*Connection**, **TSQLTransaction**, **TSQLQuery**など)を保存するために使用できる。また、データモジュールを使用すると、フォーム間でコンポーネントを共有できる。 See [[SQLdb Tutorial4/ja]]. | |
| 58 | 55 | ||
| 59 | 56 | --- | |
| 60 | 57 | *From the Free Pascal wiki, page "SQLdb Programming Reference/ja", as it stood on 2024-04-02 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).* |
