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>
ありがとう !
スクリプティングRe: JSLスクリプトのSQL文にテキストボックスから文字列を挿入どうもありがとう、これはトリックでした:)Re: 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;
);
),
),
),
);Re: JSLスクリプトのSQL文にテキストボックスから文字列を挿入小さなブロックを作成し、構文を学習することから始めてください (JMP で文字列を連結する方法、名前空間/関数がどのように機能するかなど)。
いくつかの材料の提案:
JSL構文リファレンス
JMP15スクリプトガイド
JMPのヘルプメニューから見つけたScriping Index
非常に短い例 (ウィンドウ内のテキストを変更したときにログを確認してください):
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)
)
))
);