Obtenir une référence de table de données à partir de NewSQLQuery() << Exécuter l'arrière-plan avec les noms par défaut ici (1) ;J'ai du mal à obtenir la référence de la table de données si j'exécute en arrière-plan.Quelqu'un sait comment contourner cela?
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 : Obtenir une référence de table de données à partir de NewSQLQuery() << Exécuter l'arrière-plan avec les noms par défaut ici (1) ;Une option consiste à utiliser un nouvel espace de noms pour la sous-requête :
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 );
Edit : Voici un lien vers un exemple similaire :
https://community.jmp.com/t5/JMP-Scripts/Run-queries-in-background-wait-for-them-to-complete-and/ta-p/274591
Re : Obtenir une référence de table de données à partir de NewSQLQuery() << Exécuter l'arrière-plan avec les noms par défaut ici (1) ;Des nouvelles à ce sujet. Je rencontre exactement le même problème !Re : Résolution des problèmes courants liés aux tables de données avec JMP® 13 : pouvons-nous remplacer le résumé et rejoindre le nouveau générateur de requêtes JMP ?J'ai mis un bug pour supporter.Il me semble que << Run Background a son propre espace de noms ici qui est séparé et incapable de communiquer avec le mien.Remarquez que la valeur ne s'affiche pas la première fois, mais une fois exécutée, la requête se souvient de sa valeur définie.
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 : Résolution des problèmes courants liés aux tables de données avec JMP® 13 : pouvons-nous remplacer le résumé et rejoindre le nouveau générateur de requêtes JMP ?Dans mon test, je n'ai pas ajouté le Noms par défaut ici (1) - on dirait que c'est la différence.Le OnRunComplete() la fonction ne s'exécute pas dans le même Ici espace de noms comme script d'origine.Si vous créez votre propre espace de noms pour contenir les résultats, vous devriez pouvoir accéder aux variables une fois la requête terminée.
Re : Résolution des problèmes courants liés aux tables de données avec JMP® 13 : pouvons-nous remplacer le résumé et rejoindre le nouveau générateur de requêtes JMP ?Même si je fais ça.
query_complete = 0;
query << Run Background(
OnRunComplete(
query_complete = 1;
dt = queryResult;
show(dt); //shows correctly for either one
)
);
Il semble que On Run Complete ne m'affecte pas.Si je l'exécute en plusieurs parties, puis vérifiez la valeur de query_complete, elle est toujours 0 même après l'exécution du script Run complete.
Re : Résolution des problèmes courants liés aux tables de données avec JMP® 13 : pouvons-nous remplacer le résumé et rejoindre le nouveau générateur de requêtes JMP ?L'ajout de wait(1) ne fait pas fonctionner le deuxième show(dt).C'est le problème.Je ne trouve aucun moyen d'obtenir une référence de table de données à partir d'une requête SQL exécutée en arrière-plan.
Re : Résolution des problèmes courants liés aux tables de données avec JMP® 13 : pouvons-nous remplacer le résumé et rejoindre le nouveau générateur de requêtes JMP ?Peut-être que je ne comprends pas, mais je pense que cela montre pourquoi vous avez besoin du script <
Si vous ajoutez un Wait(1) entre l'appel <