テーブルのレコードの表現

提供: RAD Studio
移動先: 案内検索

表示データの指定 への移動


ベースとなる単一のデータベース テーブルに含まれているすべてのフィールドとすべてのレコードを表す場合は、自分で SQL を記述するのではなく、TSQLDataSetTSQLTable のどちらかを使用してクエリを自動的に生成することができます。

メモ: サーバーのパフォーマンスが気になる場合は、自動生成クエリに頼らずに、明示的にクエリを作成する方がよいでしょう。自動生成クエリでは、テーブル内のすべてのフィールドを明示的に列挙するのではなく、ワイルドカードを使用します。その結果、サーバーのパフォーマンスがわずかに低下するおそれがあります。自動生成クエリに使用されるワイルドカード(*)の方が、サーバー側でのフィールドの変更に確実に対応できます。

TSQLDataSet によるテーブルの表現

単一データベース テーブルのすべてのフィールドとすべてのレコードを取得するクエリを TSQLDataSet に生成させるには、CommandType プロパティを ctTable に設定します。

CommandTypectTable の場合、TSQLDataSet では、次の 2 つのプロパティの値に基づいてクエリを生成します。

  • CommandTextTSQLDataSet オブジェクトで表す対象となるデータベース テーブルの名前を指定します。
  • SortFieldNames: データのソートに使用するフィールドの名前を重要度の順に並べたリストです。

たとえば、次のように指定した場合、

SQLDataSet1.CommandType := ctTable;
SQLDataSet1.CommandText := 'Employee';
SQLDataSet1.SortFieldNames := 'HireDate,Salary'
SQLDataSet1->CommandType = ctTable;
SQLDataSet1->CommandText = "Employee";
SQLDataSet1->SortFieldNames = "HireDate,Salary"

この場合、TSQLDataSet では、次のようなクエリを生成します。これは、Employee テーブル内のすべてのレコードを HireDate、Salary の順にソートして並べたリストを返します。

select * from Employee order by HireDate, Salary

TSQLTable によるテーブルの表現

TSQLTable を使用する場合は、対象となるテーブルを TableName プロパティを使って指定します。

データセット内のフィールドの順序を指定するには、インデックスを指定する必要があります。これには、次の 2 つの方法があります。

  • サーバー側で定義されているインデックスのうち、目的とする順序を適用するものの名前を IndexName プロパティに設定する。
  • ソートの基準となるフィールドの名前をセミコロンで区切ったリストを IndexFieldNames プロパティに設定する。IndexFieldNamesTSQLDataSetSortFieldNames プロパティと同じように機能します。ただし、コンマではなくセミコロンを区切り記号として使用します。

関連項目