Difference between revisions of "SQLdb Programming Reference/ja"

From Free Pascal wiki
Jump to navigationJump to search
 
(7 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
この記事はSQLDbについて詳細を説明しようとしているが、公式のドキュメントがより権威的である。
 
この記事はSQLDbについて詳細を説明しようとしているが、公式のドキュメントがより権威的である。
  
==Class Structure==
+
==クラス構造==
 
以下の図は、SQLdbに関連する主要なコンポーネントの階層と必要なリンクを示すことを試みている。これは完全ではなく、"適切な"図の構造を使用していないため、あまり深く読み込まないでいただきたい。実際に何が起こっているのかを理解するために、ソースコードを調べる必要がある部分を見つけるのに役立つことを望む。
 
以下の図は、SQLdbに関連する主要なコンポーネントの階層と必要なリンクを示すことを試みている。これは完全ではなく、"適切な"図の構造を使用していないため、あまり深く読み込まないでいただきたい。実際に何が起こっているのかを理解するために、ソースコードを調べる必要がある部分を見つけるのに役立つことを望む。
  
 
[[Image:Laz SqlDB components.png]]
 
[[Image:Laz SqlDB components.png]]
  
====Notes====
+
====注意====
 
* TDatabaseからTTransactionへのリンクはTransactionsであり、これは多くのトランザクションが1つのデータベースに可能であることを示している。しかし、TSQLConnectionからTSQLTransactionへの新しいリンクがTransactionとして定義されており、1つのデータベースに対して1つのトランザクションしかない。これは実際には以前のリンクを隠していないが、新しいリンクのみが公開されており、親リンクを使用することはおそらく適切ではない。
 
* TDatabaseからTTransactionへのリンクはTransactionsであり、これは多くのトランザクションが1つのデータベースに可能であることを示している。しかし、TSQLConnectionからTSQLTransactionへの新しいリンクがTransactionとして定義されており、1つのデータベースに対して1つのトランザクションしかない。これは実際には以前のリンクを隠していないが、新しいリンクのみが公開されており、親リンクを使用することはおそらく適切ではない。
 
* 継承されたリンクのうち、一部は新しい型に型変換する必要がある。SQLQuery.Transaction.Commitを呼び出すことはできない。CommitはTSQLTransactionでのみ定義されている。SQLTransaction.Commitまたは"(SQLQuery.Transaction as TSQLTransaction).Commit"を呼び出すこと。
 
* 継承されたリンクのうち、一部は新しい型に型変換する必要がある。SQLQuery.Transaction.Commitを呼び出すことはできない。CommitはTSQLTransactionでのみ定義されている。SQLTransaction.Commitまたは"(SQLQuery.Transaction as TSQLTransaction).Commit"を呼び出すこと。
  
==Interaction==
+
==インタラクション==
 
===TConnection===
 
===TConnection===
Documentation: [http://www.freepascal.org/docs-html/fcl/sqldb/tsqlconnection.html TSQLConnection documentation]
+
[[TConnection]]はSQLデータベースへの接続を表す。日常的には、特定のデータベース用の派生クラス(例:Interbase/Firebirdの場合はTIBConnection)を使用するが、データベースファクトリー/データベース非依存のアプリケーションを作成しようとしている場合はTConnectionを使用することも可能だ(注:[http://www.freepascal.org/docs-html/fcl/sqldb/tsqlconnector.html TSQLConnector]の使用がおそらくより適切である)。
 +
このオブジェクトでは、ホスト名、ユーザー名、パスワードなどの接続関連の項目を指定する。
 +
最後に、.Activeまたは.Connectedプロパティを使用して接続または切断できる。
  
A [[TConnection]] represents a connection to an SQL database. In daily use, you will use the descendent for a specific database (e.g. TIBConnection for Interbase/Firebird), but it is possible to use TConnection if you are trying to write database factory/database independent applications (note: it's probably more advisable to use [http://www.freepascal.org/docs-html/fcl/sqldb/tsqlconnector.html TSQLConnector]).
+
ほとんどのデータベースは、同じプログラムやユーザーからの複数の同時接続を許可している。
In this object, you specify connection-related items such as hostname, username and password.
 
Finally, you can connect or disconnect (using the .Active or .Connected property)
 
 
 
Most database allow muliple concurrent connections from the same program/user.
 
  
 
===TSQLTransaction===
 
===TSQLTransaction===
Documentation: [http://www.freepascal.org/docs-html/fcl/sqldb/tsqltransaction.html TSQLTransaction]
+
ドキュメンテーション: [http://www.freepascal.org/docs-html/fcl/sqldb/tsqltransaction.html TSQLTransaction]
  
This object represents a transaction on the database. In practice, at least one transaction needs to be active for a database, even if you only use it for reading data.
+
このオブジェクトは、データベース上のトランザクションを表す。実際には、データを読み取るだけでも、少なくとも1つのトランザクションがアクティブである必要がある。
When using a single transaction, set the TConnection.Transaction property to the transaction to set the default transaction for the database; the corresponding TSQLTransaction.Database property should then automatically point to the connection.
+
単一のトランザクションを使用する場合は、TConnection.Transactionプロパティをトランザクションに設定して、データベースのデフォルトのトランザクションを設定する。対応するTSQLTransaction.Databaseプロパティは、自動的に接続を指すようになる。
  
Setting a [[TSQLTransaction]] to .Active/calling .StartTransaction starts a transaction; calling .Commit or .RollBack commits (saves) or rolls back (forgets/aborts) the transaction. You should surround your database transactions with these unless you use .Autocommit or CommitRetaining.
+
TSQLTransactionを.Activeに設定する/.StartTransactionを呼び出すと、トランザクションが開始される。.Commitまたは.RollBackを呼び出すと、トランザクションがコミット(保存)されるか、ロールバック(忘却/中止)される。.AutocommitまたはCommitRetainingを使用しない限り、データベースのトランザクションをこれらで囲む必要がある。
  
 
===TSQLQuery===
 
===TSQLQuery===
Documentation: [http://www.freepascal.org/docs-html/fcl/sqldb/tsqlquery.html TSQLQuery documentation]
+
ドキュメンテーション: [http://www.freepascal.org/docs-html/fcl/sqldb/tsqlquery.html TSQLQuery documentation]
  
See [[Working With TSQLQuery]] for more details.
+
詳細は [[Working With TSQLQuery/ja]] を参照されたい。
  
[[TSQLQuery]] is an object that embodies a dataset from a connection/transaction pair using its SQL property to determines what data is retrieved from the database into the dataset.
+
[[TSQLQuery/ja]]は、接続/トランザクションのペアからデータセットを取得するオブジェクトで、そのSQLプロパティを使用してデータベースからデータが取得される。
  
When working with it, you therefore need to at least specify the transaction, connection amd SQL properties.
+
したがって、これを使用する際には、少なくともトランザクション、接続、およびSQLのプロパティを指定する必要がある。
The TSQLQuery is an important part in the chain that links databound controls to the database. As said, the SQL property determines what SELECT query is run against the database to get data.
+
TSQLQueryは、データバウンドコントロールをデータベースに接続するチェーンの重要な部分である。前述のように、SQLプロパティは、データを取得するためにデータベースに対して実行されるSELECTクエリを決定する。
FPC will try to determine what corresponding SQL INSERT, UPDATE and DELETE statements should be used in order to process user/program generated data changes.
+
FPCは、ユーザー/プログラムが生成したデータの変更を処理するために使用すべき対応するSQL INSERT、UPDATE、およびDELETEステートメントを決定しようとする。
If necessary, the programmer can fine tune this and manually specify the InsertSQL, UpdateSQL and DeleteSQL properties.
+
必要に応じて、プログラマはこれを微調整し、手動でInsertSQL、UpdateSQL、およびDeleteSQLプロパティを指定することができる。
  
 
===DataSource===
 
===DataSource===
A [[TDataSource]] object keeps track of where in a dataset (such as TSQLQuery) data bound components are. The programmer should specify the corresponding TSQLQuery object for this to work.
+
[[TDataSource/ja]]オブジェクトは、データバウンドコンポーネントがデータセット(TSQLQueryなど)内のどこにあるかを追跡する。プログラマは、これが機能するように対応するTSQLQueryオブジェクトを指定する必要がある。
  
===Databound controls such as DBGrid===
+
==DBGridといったデータバウンドコントロール===
These controls must be linked to a DataSource. They will often have properties that indicate what fields in the DataSource they show.
+
これらのコントロールは、DataSourceにリンクする必要があります。これらは、通常、DataSourceで表示するフィールドを示すプロパティを持っています。
  
 
==Data modules==
 
==Data modules==
[[Data module]]s can be used to store non-visual components such as '''T*Connection''', '''TSQLTransaction''', '''TSQLQuery''' etc. Data modules also let you share components between forms.
+
[[Data module/ja]]は、非視覚的コンポーネント(例:'''T*Connection''', '''TSQLTransaction''', '''TSQLQuery'''など)を保存するために使用できる。また、データモジュールを使用すると、フォーム間でコンポーネントを共有できる。
 
+
See [[SQLdb Tutorial4/ja]].
See [[SQLdb Tutorial4]].
 

Latest revision as of 14:42, 2 April 2024

English (en) español (es) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

データベースのポータル

参照:

チュートリアル/練習となる記事:

各種データベース

Advantage - MySQL - MSSQL - Postgres - Interbase - Firebird - Oracle - ODBC - Paradox - SQLite - dBASE - MS Access - Zeos

ドキュメンテーション

公式ドキュメントを参照されたい SQLDB documentation

この記事はSQLDbについて詳細を説明しようとしているが、公式のドキュメントがより権威的である。

クラス構造

以下の図は、SQLdbに関連する主要なコンポーネントの階層と必要なリンクを示すことを試みている。これは完全ではなく、"適切な"図の構造を使用していないため、あまり深く読み込まないでいただきたい。実際に何が起こっているのかを理解するために、ソースコードを調べる必要がある部分を見つけるのに役立つことを望む。

Laz SqlDB components.png

注意

  • TDatabaseからTTransactionへのリンクはTransactionsであり、これは多くのトランザクションが1つのデータベースに可能であることを示している。しかし、TSQLConnectionからTSQLTransactionへの新しいリンクがTransactionとして定義されており、1つのデータベースに対して1つのトランザクションしかない。これは実際には以前のリンクを隠していないが、新しいリンクのみが公開されており、親リンクを使用することはおそらく適切ではない。
  • 継承されたリンクのうち、一部は新しい型に型変換する必要がある。SQLQuery.Transaction.Commitを呼び出すことはできない。CommitはTSQLTransactionでのみ定義されている。SQLTransaction.Commitまたは"(SQLQuery.Transaction as TSQLTransaction).Commit"を呼び出すこと。

インタラクション

TConnection

TConnectionはSQLデータベースへの接続を表す。日常的には、特定のデータベース用の派生クラス(例:Interbase/Firebirdの場合はTIBConnection)を使用するが、データベースファクトリー/データベース非依存のアプリケーションを作成しようとしている場合はTConnectionを使用することも可能だ(注:TSQLConnectorの使用がおそらくより適切である)。 このオブジェクトでは、ホスト名、ユーザー名、パスワードなどの接続関連の項目を指定する。 最後に、.Activeまたは.Connectedプロパティを使用して接続または切断できる。

ほとんどのデータベースは、同じプログラムやユーザーからの複数の同時接続を許可している。

TSQLTransaction

ドキュメンテーション: TSQLTransaction

このオブジェクトは、データベース上のトランザクションを表す。実際には、データを読み取るだけでも、少なくとも1つのトランザクションがアクティブである必要がある。 単一のトランザクションを使用する場合は、TConnection.Transactionプロパティをトランザクションに設定して、データベースのデフォルトのトランザクションを設定する。対応するTSQLTransaction.Databaseプロパティは、自動的に接続を指すようになる。

TSQLTransactionを.Activeに設定する/.StartTransactionを呼び出すと、トランザクションが開始される。.Commitまたは.RollBackを呼び出すと、トランザクションがコミット(保存)されるか、ロールバック(忘却/中止)される。.AutocommitまたはCommitRetainingを使用しない限り、データベースのトランザクションをこれらで囲む必要がある。

TSQLQuery

ドキュメンテーション: TSQLQuery documentation

詳細は Working With TSQLQuery/ja を参照されたい。

TSQLQuery/jaは、接続/トランザクションのペアからデータセットを取得するオブジェクトで、そのSQLプロパティを使用してデータベースからデータが取得される。

したがって、これを使用する際には、少なくともトランザクション、接続、およびSQLのプロパティを指定する必要がある。 TSQLQueryは、データバウンドコントロールをデータベースに接続するチェーンの重要な部分である。前述のように、SQLプロパティは、データを取得するためにデータベースに対して実行されるSELECTクエリを決定する。 FPCは、ユーザー/プログラムが生成したデータの変更を処理するために使用すべき対応するSQL INSERT、UPDATE、およびDELETEステートメントを決定しようとする。 必要に応じて、プログラマはこれを微調整し、手動でInsertSQL、UpdateSQL、およびDeleteSQLプロパティを指定することができる。

DataSource

TDataSource/jaオブジェクトは、データバウンドコンポーネントがデータセット(TSQLQueryなど)内のどこにあるかを追跡する。プログラマは、これが機能するように対応するTSQLQueryオブジェクトを指定する必要がある。

DBGridといったデータバウンドコントロール=

これらのコントロールは、DataSourceにリンクする必要があります。これらは、通常、DataSourceで表示するフィールドを示すプロパティを持っています。

Data modules

Data module/jaは、非視覚的コンポーネント(例:T*Connection, TSQLTransaction, TSQLQueryなど)を保存するために使用できる。また、データモジュールを使用すると、フォーム間でコンポーネントを共有できる。 See SQLdb Tutorial4/ja.