在 JSL 腳本的 SQL 語句中插入文字方塊中的字串大家好,我正在嘗試 jmp 應用程式。
我想從用於 JMP 查詢資料庫的 SQL 語句中的文字方塊中插入字串。 該字串是我的搜尋參數。
我製作的腳本似乎不起作用,解決方案可能很簡單 - 但我缺少一些基本的 JSL 語法理解,並且希望獲得幫助來解決這個對我來說至關重要的問題。
呼叫並獲取字串的腳本:
parameterScript = Function( {this},
{text},
// This function is called when the Text Edit Box value is committed
input = this << Get Text
);
查詢資料庫的腳本:
importDataPress = Function( {this},
// This function is called when the button is pressed
name = New SQL Query(
Connection( "ODBC:DSN=DATABASE;PWD=XXX;" ),
QueryName( "my_table" ),
CustomSQL( "SELECT * FROM DATABASE WHERE parameter == \!" + input + \!";" )
) << Run;
<<GET button="" name=""></GET>
謝謝 !
資料存取回覆:在 JSL 腳本的 SQL 語句中插入文字方塊中的字串非常感謝,這成功了:)回覆:在 JSL 腳本的 SQL 語句中插入文字方塊中的字串嘗試這樣的事情。請注意 evalinsert、panelbox、hlistbox 等的使用。在腳本索引中尋找它們以獲取更多資訊。
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;
);
),
),
),
);回覆:在 JSL 腳本的 SQL 語句中插入文字方塊中的字串您應該先建立較小的區塊並學習語法(如何在 JMP 中連接字串、命名空間/函數如何運作,等等)
一些材料建議:
JSL 語法參考
JMP15 腳本編寫指南
從 JMP 幫助選單中找到腳本索引
非常簡短的範例(當您更改視窗中的文字時檢查日誌):
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)
)
))
);