在JSL腳本的SQL語句中從文本框插入字符串嗨,我正在嘗試使用jmp應用程序。
我想在用於對數據庫進行JMP查詢的SQL語句中的文本框中插入字符串。 這個字符串是我的搜索參數。
我編寫的腳本似乎不起作用,解決方案可能是直接的-但我缺少一些基本的JSL語法理解,並希望獲得幫助,以克服這一關鍵點。
用於調用和獲取字符串的腳本:
parameterScript = Function({this},{text},
//提交“文本編輯框”值時調用此函數
輸入=這<<獲取文本;
);
用於查詢數據庫的腳本:
importDataPress =功能({this},
//按下按鈕時調用此函數
名稱=新的SQL查詢(
連接(“ ODBC:DSN =數據庫; PWD = XXX;“),
QueryName(“ my_table”),
自定義SQL(
“選擇*來自數據庫WHERE參數== \!“ +輸入+ \!“;”
)
)<<運行; <<獲取按鈕名稱;
);
謝謝 !
腳本編寫回复:從文本框在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)
)
))
);
回复:從文本框在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語句中插入字符串太謝謝你了,這很成功:)