テーブルのレコードの表現
表示データの指定 への移動
ベースとなる単一のデータベース テーブルに含まれているすべてのフィールドとすべてのレコードを表す場合は、自分で SQL を記述するのではなく、TSQLDataSet か TSQLTable のどちらかを使用してクエリを自動的に生成することができます。
メモ: サーバーのパフォーマンスが気になる場合は、自動生成クエリに頼らずに、明示的にクエリを作成する方がよいでしょう。自動生成クエリでは、テーブル内のすべてのフィールドを明示的に列挙するのではなく、ワイルドカードを使用します。その結果、サーバーのパフォーマンスがわずかに低下するおそれがあります。自動生成クエリに使用されるワイルドカード(*)の方が、サーバー側でのフィールドの変更に確実に対応できます。
TSQLDataSet によるテーブルの表現
単一データベース テーブルのすべてのフィールドとすべてのレコードを取得するクエリを TSQLDataSet に生成させるには、CommandType プロパティを ctTable に設定します。
CommandType が ctTable の場合、TSQLDataSet では、次の 2 つのプロパティの値に基づいてクエリを生成します。
- CommandText: TSQLDataSet オブジェクトで表す対象となるデータベース テーブルの名前を指定します。
- 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 プロパティに設定する。IndexFieldNames は TSQLDataSet の SortFieldNames プロパティと同じように機能します。ただし、コンマではなくセミコロンを区切り記号として使用します。