説明
必須の引数
sql
引用符付きのSQLクエリー。
説明
[クエリービルダー]環境設定の[可能な限りクエリーをバックグラウンドで実行]の選択にしたがって、SQLクエリーをバックグラウンドまたはフォアグラウンドで実行する。
戻り値
クエリーがバックグラウンドで実行された場合はなし。クエリーがフォアグラウンドで実行された場合はデータテーブル。
オプションの名前付き引数
"Private"
クエリーにより生成されたデータテーブルをデータテーブルウィンドウに表示せずに開く、引用符付きのキーワード。"Private"は、スクリプトにOnRunCompleteが含まれている場合のみ使用可能です。
"Invisible"
クエリーが生成したデータテーブルを非表示にする引用符付きのキーワード。クエリーの結果を非表示にして、後に続くクエリーで使用する場合、この引数を使用してください。このデータテーブルは、ホームウィンドウの「ウィンドウリスト」または[ウィンドウ]>[再表示]のリストに表示されます。
Update Table
指定されたデータテーブルを更新する。クエリーはフォアグラウンドで実行される。
OnRunComplete
クエリーが完了した後に実行するスクリプトを指定する。結果のデータテーブルを取得するには、OnRunCompleteを含めます。OnRunCompleteスクリプトは、次の例の二重コロンが示すようにグローバル名前空間で定義します。
Names Default To Here( 1 );
::onComplete = Function( {dt},
{default local},
Write(
"\!NQuery is complete!Result name:\!"",
dt << Get Name,
"\!", Number of rows:",
N Rows( dt )
)
);
query = Include( "rentals_fam_romcom.jmpquery" );
query << Run Background( On Run Complete( ::onComplete ) );
OnRunCanceled
ユーザがクエリーをキャンセルした後に実行するスクリプトを指定する。
OnError
エラーが起こったときに実行するスクリプトを指定する。
メモ
バックグラウンドクエリーの結果のデータテーブルを取得するには、オプションのOnRunComplete引数を使用します。クエリーが完了したときに実行するスクリプトを記述し、さらに結果のデータテーブルへのデータテーブル参照を割り当てます。または、データテーブルを最初の引数として受け入れる関数に引数として渡すこともできます。クエリーが完了した後、その関数が呼び出されます。
例
次の例は、クエリービルダーで保存したクエリーを開きます。クエリーはプライベートに(クエリービルダーを開かずに)開きます。クエリーが実行され、結果のデータテーブルが開きます。
query = Open( "c:/My Data/Movies.jmpquery", "Private");
dt = query << Run();
スクリプトに.jmpqueryファイルを指定して、このクエリーをバックグラウンドで実行するには、<<Run Backgroundメッセージを使用します。
query = Include( "C:/Queries/movies.jmpquery");
query <<Run Background();
次の例は、データベースにクエリーを送り、結果のデータテーブルを開き、データテーブルの行数をログに出力します。
confirmation = Function( {dtResult},
Write( "\!NNumber of rows in query result:", N Rows( dtResult ) )
);
query = New SQL Query(
Connection(
"ODBC:DSN=SQL Databases;APP=MYAPP;TrustedConnection=yes;WSID=D79255;DATABASE=SQB;"
),
QueryName( "movies_to_update" ),
Select( Column( "YearMade", "t1" ), Column( "Rating", "t1" ) ),
From( Table( "g6_Movies", Schema( "SQB" ), Alias( "t1" ) ) ),
);
query << Run( OnRunComplete( confirmation ) );
説明
SQLクエリーをバックグラウンドで実行する。実行中のクエリーは表示されません。
戻り値
なし(または、OnRunCompleteが含まれている場合はデータテーブルオブジェクト)。
オプションの名前付き引数
OnRunComplete
クエリーが完了した後に実行するスクリプトを指定する。結果のデータテーブルを取得するには、OnRunCompleteを含めます。OnRunCompleteスクリプトは、次の例の二重コロンが示すようにグローバル名前空間で定義します。
Names Default To Here( 1 );
::onComplete = Function( {dt},
{default local},
Write(
"\!NQuery is complete!Result name:\!"",
dt << Get Name,
"\!", Number of rows:",
N Rows( dt )
)
);
query = Include( "rentals_fam_romcom.jmpquery" );
query << Run Background( On Run Complete( ::onComplete ) );
"Private"
結果のデータテーブルを開かない。必ずOnRunCompleteとともに使用します。バックグラウンドで実行するクエリーにprivateを指定すると、データテーブルは開かれたうえで非表示(invisible)になります。
"Invisible"
データテーブルを非表示にする。クエリーの結果を非表示にして、後に続くクエリーで使用する場合、この引数を使用してください。このデータテーブルは、ホームウィンドウの「ウィンドウリスト」または[ウィンドウ]>[再表示]のリストに表示されます。
OnRunCanceled
ユーザがクエリーをキャンセルした後に実行するスクリプトを指定する。
OnError
エラーが起こったときに実行するスクリプトを指定する。
ノート
SASクエリー以外のクエリーはすべてバックグラウンドで実行されます。これは、クエリービルダー環境設定の[可能な限りクエリーをバックグラウンドで実行](デフォルトで選択されている)に基づいています。SASクエリーの場合、Run Background()は無視されます。
スクリプトに.jmpqueryファイルを指定して、このクエリーをバックグラウンドで実行するには、Run Backgroundメッセージを使用します。
query = Include( "C:/Queries/movies.jmpquery");
query <<Run Background();
説明
SQLクエリーをフォアグラウンドで実行する。
戻り値
クエリーが完了したときに開くデータテーブル。
次も参照
引数の詳細については、Run Background(<OnRunComplete(script), <"Private"|"Invisible">>, <OnRunCanceled(script)>, <OnError(script)>)を参照してください。