データベースからの読み取り
データベース内のテーブルからデータを取得することは、一般的に "選択" や "フェッチ" と呼ばれていますが、Eggplant Functional とデータベースを使用する場合は "読み取り" データと呼ばれます。この返されたデータは、Eggplant Functional を用いたデータ駆動型テストなどのテストに情報を提供するために使用することができます。
テーブル内容の読み取り
データベーステーブルの内容をフェッチすることは、そのすべてのレコードを要求するだけの単純な作業となることがあります。
データベースを変更する必要がなく、ただ読み取りたいだけの場合は、writable データベース接続リストプロパティを No に設定してください。
例:
以下のコードは、Members 変数をレコードのリストに設定します。それぞれの行に対して一つのレコードがリスト内に格納されます。リスト内の各アイテムは Record オブジェクトで、テーブル内のその行の値を含むプロパティリストであり、テーブル内の各列に対してプロパティキーが存在します。Recordsについての詳細は、Records vs. Property Listsを参照してください。
put the records of memberTable into Members
単一のレコードだけが期待されるか、必要な場合、record を records の代わりに使用することができます。これにより、レコードのリストではなく、単一のレコードオブジェクトが返されます。
この例のように、大きなテーブルの全てのレコードを変数に読み込むことは推奨されません。where 式を使用するか、データベースのレコードをイテレーションする方法を参照してレコードをイテレーションしてください。
例:
この例では、Get コマンドを使用して、lastName列が "Smith" と等しいレコードのデータのみを取得します。where節は、レコードを選択するためのさまざまな基準を含めることができます。
get the records of memberTable where lastName is "Smith"
名前が "S" で始まるが、 "Smith" を除くすべてのレコードを取得するには、次のようにリクエストします:
get records of memberTable where lastName begins with "S" and lastName isn't "Smith"
例:
Get コマンドはまた、それ(参照:すべてについて "It")と一緒に使用することもできます:
set myDB to {type:"odbc", DSN:"MyDB"} -- データベース接続を定義
put table "film" of myDB into myTable -- 変数 myTable に特定のテーブルへの参照データを格納
get rental_rate of the record of myTable where title is "TERMINATOR" -- Get コマンドを使用して特定の映画のレンタル料を取得
if it is "$9.99" then log "Rental rate is correct!" -- ローカル変数 It を使用してレンタル料が正しいことを確認
Where式
データベーステーブルには、大量のレコード(数千、数十万、それ以上)が含まれている場合があります。このような大きさのテーブル全体をEggplant Functionalの変数に取り込むと、ローカルメモリの使用に影響を及ぼす可能性があります。このため、必要なレコードだけを要求できる と便利なことがよくあります。where節はこれを実現し、必要なレコードだけをデータベースに要求することで、ネットワークトラフィックとローカルメモリ使用量の両方を最小限に抑えます。
Where式は、recordまたはrecords関数、number of records関数、またはdelete recordコマンドを使用して、テーブルから必要なレコードを選択するために使用されます。where節が指定されていない場合、テーブルのすべてのレコードが返されます。
このページで説明されているwhere節は、Each Expressionsで使用されるwhere節と混同しないでください。それらは似たようなことをしますが、非常に異なります。データベースで使用されるwhere式は能力が限られていますが、データベースからデータを取得する際にははるかに効率的になることができます。
where式はwhere