Hi,
Ich habe eine Datenbank, in der ich eine gespeicherte Prozedur geschrieben habe, die eine Tabelle für die DOE-Analyse generiert. Die Auswahl der Parameter und deren Werte erfolgt grundsätzlich dynamisch, weshalb eine einfache Tabellenabfrage nicht funktioniert.
In JMP 13 gibt es das offene Tabellenfenster der erweiterten Datenbank, das alle gespeicherten Prozeduren in SQL auflistet. Ich möchte „Call StoredProc(x)“ ausführen, indem ich „execute sql“ verwende, aber es passiert nichts. In Matlab gibt es die richtige Tabelle zurück.
Wie kann ich eine gespeicherte Prozedur in JMP ausführen und die Ergebnisse in eine Tabelle importieren?
Danke,
Akos
Ich habe eine solche Schnittstelle erstellt, die sich auf eine gespeicherte Prozedur stützt, um die Daten zurückzugeben, sobald die Benutzerauswahl bekannt ist. Die Verbindungszeichenfolge wurde erhalten, indem eine Verbindung zu einer Tabelle auf demselben Server wie die gespeicherte Prozedur hergestellt und dann aus dem Tabellenquellskript kopiert wurde.
Ich habe dann die Möglichkeit genutzt, SQL-Code von JMP aus auszuführen. Das folgende Beispiel gilt für einen Server, auf dem Microsoft T-SQL ausgeführt wird. Alle meine Eingaben in die gespeicherte Prozedur sind Text, daher die Verwendung von '' um jede Zeichenfolge. Dies ist ein bisschen brutal, da Sie JSL zum Schreiben von SQL-Strings verwenden, aber es funktioniert gut.
// Benutzereingaben als Strings erhalten
...Schnittstellencode hier...
// Verbindung herstellen
dbc = Datenbankverbindung erstellen (
"ODBC:Description=##### Toolset;DRIVER=SQL Server;SERVER=#####;UID=######;Trusted_Connection=Yes;APP=JMP;WSID=####;DATABASE =#####;"
);
//Ergebnis erhalten
Bewertung(
Analysieren (
Bewertungseinsatz (
"\[
SQLString = "ERKLÄREN @rc int
AUSFÜHREN @rc = [dbo].[GetResultsStandardisiert]
@DataSource = '^dataSource^'
,@Site = '^Site^'
,@FromDate = '^fromDateString^'
,@ToDate = '^toDateString^'
,@Level1 = '^level1string^'
,@Level2 = '^level2string^'
,@Level3 = '^level3string^'
";
]\"
)
)
);
dtresult = SQL ausführen ( dbc, SQLString, "Ergebnistabelle" );
//Aufräumen
Datenbankverbindung schließen ( dbc );