公開日: 04/01/2021

SQL

obj<<Custom SQL(sql)

説明

クエリーをカスタムSQLクエリーに変更し、SQLを設定する。

必須の引数

sql

引用符付きのSQLクエリー。

obj<<Generate SQL

クエリーを実行するときに生成されるSQLを戻す。

obj<<Modify

クエリーをクエリービルダで開く。

obj<<PostQueryScript(script as text)

クエリーが実行された後に実行されるJSLスクリプトを設定する。script as textは、引用符付きのJSLコード。

obj<<Query Name(<new name>)

クエリーの名前を取得(new name引数を省略)または設定(new name引数を指定)する。クエリーの名前は、そのクエリーを実行した結果のデータテーブル名に使用される。

obj<<Run(<"Private"|"Invisible">, <Update Table(table)>, <OnRunComplete(script)>, <OnRunCanceled(script)>, <OnError(script)>)

説明

[クエリービルダー]環境設定の[可能な限りクエリーをバックグラウンドで実行]の選択にしたがって、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 ) );

Run Background(<OnRunComplete(script), <"Private"|"Invisible">>, <OnRunCanceled(script)>, <OnError(script)>)

説明

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();

Run Foreground(<OnRunComplete(script), <"Private"|"Invisible">>, <OnRunCanceled(script)>, <OnError(script)>)

説明

SQLクエリーをフォアグラウンドで実行する。

戻り値

クエリーが完了したときに開くデータテーブル。

次も参照

引数の詳細については、Run Background(<OnRunComplete(script), <"Private"|"Invisible">>, <OnRunCanceled(script)>, <OnError(script)>)を参照してください。

obj<<Save

クエリーを、それが関連付けられているファイルに保存する。関連付けられているファイルがまだない場合、保存に失敗します。

obj<<Save As(path, <Replace Existing(Boolean))

クエリーを、指定されたファイルに保存する。ファイルがすでに存在している場合、Replace Existingが真でなければ保存に失敗します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).