Script : enregistrer les résultats de la requête SQL dans le projetSalut, probablement une question de débutant, mais je n'ai pas trouvé de solution moi-même : je souhaite enregistrer la table générée par une requête SQL via un JSL dans un projet. Le code est ci-dessous ; les étiquettes, etc. ont été omises. Malheureusement, le dt semble être supprimé après l'exécution de la requête en arrière-plan. Est-ce un problème de timing ? Merci pour toute aide.
query = New SQL Query(
Connection(""),
QueryName(""),
Select(Column("", "t1"), ),
From(Table("", Schema(""), Alias("t1")), )
);
query << Run Background(OnRunComplete(dt = queryResult));
project = New Project();
project << Save As("");
Automatisation et scriptsAccès aux donnéesRe : Scripting : enregistrer les résultats de la requête SQL dans le projetL'exécution de la requête en arrière-plan empêche JMP d'attendre les résultats avant de passer à la commande suivante. Vous devez donc lui dire d'attendre.Je définis généralement dt comme Empty() avant la requête, puis je dis à JMP d'attendre que dt soit scriptable avant de passer à autre chose.
dt = Empty();
query = New SQL Query(
Connection(""),
QueryName(""),
Select(Column("", "t1"), ),
From(Table("", Schema(""), Alias("t1")), )
);
query << Run Background(OnRunComplete(dt = queryResult));
While( !Is Scriptable( dt ), Wait( 1 ) );
project = New Project();
project << Save As("");Re : Scripting : enregistrer les résultats de la requête SQL dans le projetSi vous souhaitez exécuter la requête en arrière-plan tout en effectuant certaines actions une fois la requête terminée, vous pouvez utiliser PostQueryScript.
Names Default To Here(1);
obj = New SQL Query(Connection("ODBC:DSN=SampleDSN;"), Custom SQL("SELECT c1, c2, c3 FROM my_table;"));
obj << Post Query Script("show( queryResult << Get As Matrix );");
ou je pense que vous pourriez aussi utiliser << En cours d'exécution terminé mais vous devez ajouter davantage de script à l'intérieur (et vous pourriez avoir besoin d'une portée globale...).