NewSQLQuery() からデータ テーブル参照を取得します。 << デフォルトの名前を使用してバックグラウンドを実行します。 デフォルトは Here(1);バックグラウンドで実行すると、データテーブル参照を取得できません。これを回避する方法を知っている人はいますか?
names default to here(1);
sql_query = New SQL Query(
Connection(
"ODBC:DSN=Test Source;DATABASE=Test;"
),
QueryName( "Thingy" ),
Select(
blah
),
From(
other blah
)
);
sql_query << Run Background(
OnRunComplete(
dt = queryResult;
dt = data table(queryResult<<GET name=""></GET>
Re: NewSQLQuery() からデータ テーブル参照を取得する << デフォルトの名前を使用してバックグラウンドを実行する (1);1 つのオプションは、サブクエリに新しい名前空間を使用することです。
names default to here(1);
// Namespace to share data between background query and this script
ns = new namespace( "subquery" );
// The background query will set to 1 when the background query is complete
ns:isdone = 0;
sql_query = New SQL Query(
Connection( "ODBC:DSN=Test Source;DATABASE=Test;" ),
QueryName( "Thingy" ),
Select( blah ),
From( other blah )
);
sql_query << Run Background(
OnRunComplete(
ns = namespace( "subquery" );
ns:result = queryResult;
ns:dt = data table ( queryResult << Get Name );
ns:isdone = 1;
)
);
//every second check if the query is done (timeout after 10 seconds)
i=0;
while( ( i < 10 ) & ( ns:isdone == 0 ) ,
i++;
if( ns:isdone == 1, show( ns:dt ), show( "Query not done yet." ); wait( 1 ); );
);
//now you can reference the data table
show( ns:dt );
編集: ここに同様の例へのリンクがあります:
https://community.jmp.com/t5/JMP-Scripts/Run-queries-in-background-wait-for-them-to-complete-and/ta-p/274591
Re: NewSQLQuery() からデータ テーブル参照を取得する << デフォルトの名前を使用してバックグラウンドを実行する (1);これに関するニュースはありますか。 全く同じ問題に遭遇しています!Re: JMP® 13 での一般的なデータ テーブルの問題の解決: Summary と Join を新しい JMP Query Builder に置き換えることはできますか?サポートするためにバグを入れました。私には、<
query_complete = 0;
dt_list = {};
dt_array = associative array();
str = "A";
ns = new namespace("Test");
query << Run Background(
OnRunComplete(
try(show(query_complete)); //this won't show, but if you run it twice it will show as 1
try(show(dt_list));
try(show(dt_array));
try(show(str));
try(show(ns));
try(show(namespace("Test")));
query_complete = 1;
)
);
Re: JMP® 13 での一般的なデータ テーブルの問題の解決: Summary と Join を新しい JMP Query Builder に置き換えることはできますか?私のテストでは追加しませんでしたここに名前がデフォルトで設定されます(1) - それが違いのようです。のOnRunComplete()関数が同じで実行されていませんここ名前空間を元のスクリプトとして使用します。結果を保持する独自の名前空間を作成した場合は、クエリの完了後に変数にアクセスできるようになります。
Re: JMP® 13 での一般的なデータ テーブルの問題の解決: Summary と Join を新しい JMP Query Builder に置き換えることはできますか?こんなことをしても。
query_complete = 0;
query << Run Background(
OnRunComplete(
query_complete = 1;
dt = queryResult;
show(dt); //shows correctly for either one
)
);
On Run Completeは私には影響しないようです。部分的に実行してから query_complete の値を確認すると、Run complete スクリプトを実行した後でも値は 0 のままです。
Re: JMP® 13 での一般的なデータ テーブルの問題の解決: Summary と Join を新しい JMP Query Builder に置き換えることはできますか?wait(1) を追加しても、2 番目の show(dt) は機能しません。それが問題なのです。バックグラウンドで実行される SQL クエリからデータ テーブル参照を取得する方法を見つけることができません。
Re: JMP® 13 での一般的なデータ テーブルの問題の解決: Summary と Join を新しい JMP Query Builder に置き換えることはできますか?私が理解していないかもしれませんが、これは <
<