Fügen Sie eine Zeichenfolge aus dem Textfeld in die SQL-Anweisung im JSL-Skript einHallo, ich mache meinen ersten Stich bei einer JMP-Anwendung.
Ich möchte eine Zeichenfolge aus einem Textfeld in eine SQL-Anweisung einfügen, die für eine JMP-Abfrage an eine Datenbank verwendet wird. Diese Zeichenfolge ist mein Suchparameter.
Das Skript, das ich erstellt habe, scheint nicht zu funktionieren, und die Lösung ist wahrscheinlich unkompliziert - aber mir fehlt ein grundlegendes Verständnis der JSL-Syntax, und ich hatte gehofft, Hilfe zu erhalten, um diesen für mich entscheidenden Punkt zu überwinden.
Das Skript zum Aufrufen und Abrufen der Zeichenfolge:
parameterScript = Funktion ({this}, {text},
// Diese Funktion wird aufgerufen, wenn der Wert für das Textbearbeitungsfeld festgeschrieben wird
Eingang = this << Text abrufen;
);
Das Skript zum Abfragen der Datenbank:
importDataPress = Funktion ({this},
// Diese Funktion wird aufgerufen, wenn die Taste gedrückt wird
name = Neue SQL-Abfrage (
Verbindung ("ODBC: DSN = DATENBANK ; PWD = XXX; "),
QueryName ("my_table"),
CustomSQL (
"WÄHLEN AUS DATENBANK WHERE Parameter == \! "+ Eingang + \! ";"
)
) << Ausführen; << Get Button Name;
);
Vielen Dank !
SkriptingBetreff: Fügen Sie eine Zeichenfolge aus dem Textfeld in die SQL-Anweisung im JSL-Skript einSie sollten dies beginnen, indem Sie kleinere Blöcke erstellen und die Syntax lernen (wie man Zeichenfolgen in JMP verkettet, wie Namespaces / Funktionen funktionieren usw.).
Einige materielle Vorschläge:
JSL-Syntaxreferenz
JMP15 Scripting Guide
Skriptindex im JMP-Hilfemenü gefunden
Sehr kurzes Beispiel (Überprüfen Sie das Protokoll, wenn Sie den Text im Fenster ändern):
Names Default To Here(1);
importDataPress=Function({this},
retVal = this << get text;
sqlString = "select * from * where " || retVal;
Show(sqlString);
);
win = New Window("Example", Text Edit Box("Example Text",
<< set function(
function({this},
importDataPress(this)
)
))
);
Betreff: Fügen Sie eine Zeichenfolge aus dem Textfeld in die SQL-Anweisung im JSL-Skript einVersuchen Sie so etwas.Beachten Sie die Verwendung von evalinsert, panelbox, hlistbox usw. Weitere Informationen finden Sie im Skriptindex.
importDataPress = Function( {parameter_value},
sql_statement = evalinsert(
"SELECT * FROM DATABASE WHERE parameter = '^parameter_value^'");
show(sql_statement);
// This function is called when the button is pressed
name = New SQL Query(
Connection( "ODBC:DSN=DATABASE;PWD=XXX;" ),
QueryName( "my_table" ),
CustomSQL( sql_statement )
) << Run;
);
nw = new window("Example Input for SQL",
panelbox("Parameter Specification",
hlistbox(
text box("Enter value for parameter: "),
teb = text edit box("", << set width(200)),
),
),
panelbox("Actions",
hlistbox(
button box("Cancel", nw << close window),
button box("OK",
pvalue = teb << get text;
if (pvalue == "",
ew = new window("Error", << modal,
text box("Nothing specified")
);
,
// else import the data
importdatapress(pvalue);
nw << close window;
);
),
),
),
);Betreff: Fügen Sie eine Zeichenfolge aus dem Textfeld in die SQL-Anweisung im JSL-Skript einVielen Dank, das hat den Trick gemacht:)