Skripterstellung: SQL-Abfrageergebnisse im Projekt speichernHallo, wahrscheinlich eine Neulingsfrage, aber ich konnte selbst keine Lösung finden: Ich möchte die von einer SQL-Abfrage über eine JSL generierte Tabelle in einem Projekt speichern. Der Code ist unten; Auf Beschriftungen etc. wurde verzichtet. Leider scheint der dt gelöscht zu sein, nachdem die Abfrage im Hintergrund ausgeführt wurde. Handelt es sich um ein Timing-Problem? Vielen Dank für jede Hilfe.
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("");
Automatisierung und SkripterstellungDatenzugriffBetreff: Skripterstellung: SQL-Abfrageergebnisse im Projekt speichernDas Ausführen der Abfrage im Hintergrund führt dazu, dass JMP nicht auf die Ergebnisse wartet, bevor es mit dem nächsten Befehl fortfährt. Sie müssen es also anweisen, zu warten.Im Allgemeinen definiere ich dt vor der Abfrage als Empty() und sage JMP dann, dass es warten soll, bis dt skriptfähig ist, bevor ich fortfahre.
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("");Betreff: Skripterstellung: SQL-Abfrageergebnisse im Projekt speichernWenn Sie die Abfrage im Hintergrund ausführen und nach Abschluss der Abfrage noch einige Aktionen ausführen möchten, können Sie PostQueryScript verwenden
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 );");
oder ich denke, du könntest es auch verwenden < Sie müssen jedoch mehr Skript darin hinzufügen (und möglicherweise benötigen Sie einen globalen Bereich ...).