insérer une chaîne à partir de la zone de texte dans l'instruction SQL dans le script JSLSalut, je prends mon premier coup de couteau à une application jmp.
Je souhaite insérer une chaîne à partir d'une zone de texte dans une instruction SQL utilisée pour une requête JMP vers une base de données. Cette chaîne est mon paramètre de recherche.
Le script que j'ai créé ne semble pas fonctionner et la solution est probablement simple - mais il me manque une compréhension de base de la syntaxe JSL et j'espérais obtenir de l'aide pour dépasser ce point crucial pour moi.
Le script pour appeler et obtenir la chaîne :
parameterScript = Function( {this},
{text},
// This function is called when the Text Edit Box value is committed
input = this << Get Text
);
Le script pour interroger la base de données :
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>
Merci !
ScriptRe : insérer une chaîne à partir de la zone de texte dans l'instruction SQL dans le script JSLMerci beaucoup, ça a marché
Re : insérer une chaîne à partir de la zone de texte dans l'instruction SQL dans le script JSLEssayez quelque chose comme ça.Notez l'utilisation de evalinsert, panelbox, hlistbox, etc. Recherchez-les dans l'index de script pour plus d'informations.
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 : insérer une chaîne à partir de la zone de texte dans l'instruction SQL dans le script JSLVous devriez commencer par créer des blocs plus petits et apprendre la syntaxe (comment concaténer des chaînes dans JMP, comment fonctionnent les espaces de noms/fonctions, etc.)
Quelques suggestions de matériel :
Référence de la syntaxe JSL
Guide de création de scripts JMP15
Index de script trouvé dans le menu d'aide de JMP
Exemple très court (vérifiez le journal lorsque vous modifiez le texte dans la fenêtre) :
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)
)
))
);