在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语句中插入字符串太谢谢你了,这很成功:)