Abrufen einer Datentabellenreferenz von NewSQLQuery() << Run Background with Names Default to Here(1);Ich habe Probleme beim Abrufen der Datentabellenreferenz, wenn ich im Hintergrund ausgeführt werde.Weiß jemand, wie man das umgehen kann?
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>
Betreff: Abrufen einer Datentabellenreferenz von NewSQLQuery() << Run Background with Names Default to Here(1);Eine Möglichkeit besteht darin, einen neuen Namensraum für die Unterabfrage zu verwenden:
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 );
Bearbeiten: Hier ist ein Link zu einem ähnlichen Beispiel:
https://community.jmp.com/t5/JMP-Scripts/Run-queries-in-background-wait-for-them-to-complete-and/ta-p/274591
Betreff: Abrufen einer Datentabellenreferenz von NewSQLQuery() << Run Background with Names Default to Here(1);Gibt es Neuigkeiten zu diesem Thema. Ich stehe gerade vor dem gleichen Problem!Betreff: Lösung häufiger Probleme mit Datentabellen mit JMP® 13: Können wir Summary und Join durch den neuen JMP Query Builder ersetzen?Ich habe einen Fehler zur Unterstützung eingefügt.Für mich sieht es so aus, als hätte <
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;
)
);
Betreff: Lösung häufiger Probleme mit Datentabellen mit JMP® 13: Können wir Summary und Join durch den neuen JMP Query Builder ersetzen?In meinem Test habe ich das nicht hinzugefügt Namen standardmäßig hier(1) - Es sieht so aus, als ob das der Unterschied ist.Der OnRunComplete() Die Funktion wird nicht gleichzeitig ausgeführt Hier Namespace wie das ursprüngliche Skript.Wenn Sie Ihren eigenen Namespace zum Speichern der Ergebnisse erstellen, sollten Sie nach Abschluss der Abfrage auf die Variablen zugreifen können.
Betreff: Lösung häufiger Probleme mit Datentabellen mit JMP® 13: Können wir Summary und Join durch den neuen JMP Query Builder ersetzen?Auch wenn ich das tue.
query_complete = 0;
query << Run Background(
OnRunComplete(
query_complete = 1;
dt = queryResult;
show(dt); //shows correctly for either one
)
);
Es scheint, als würde On Run Complete mich nicht beeinflussen.Wenn ich es in Teilen ausführe, überprüfe ich dann den Wert von query_complete. Er ist immer noch 0, selbst nachdem das Skript „Run Complete“ ausgeführt wurde.
Betreff: Lösung häufiger Probleme mit Datentabellen mit JMP® 13: Können wir Summary und Join durch den neuen JMP Query Builder ersetzen?Durch das Hinzufügen von wait(1) funktioniert das zweite show(dt) nicht.Das ist das Problem.Ich kann keine Möglichkeit finden, eine Datentabellenreferenz aus einer im Hintergrund ausgeführten SQL-Abfrage abzurufen.
Betreff: Lösung häufiger Probleme mit Datentabellen mit JMP® 13: Können wir Summary und Join durch den neuen JMP Query Builder ersetzen?Vielleicht verstehe ich es nicht, aber ich denke, das zeigt, warum Sie das Skript <
Wenn Sie einen Wait(1) zwischen dem <