insérer une chaîne à partir d'une zone de texte dans une instruction SQL dans un script JSLSalut, je suis en train de tenter ma première tentative sur une application jmp.
Je voudrais insérer une chaîne d'une zone de texte dans une instruction SQL utilisée pour une requête JMP dans 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 je manque de compréhension de base de la syntaxe JSL et j'espérais obtenir de l'aide pour surmonter ce point crucial pour moi.
Le script pour appeler et obtenir la chaîne:
parameterScript = Fonction ({this}, {text},
// Cette fonction est appelée lorsque la valeur de la zone d'édition de texte est validée
saisir = this << Get Text;
);
Le script d'interrogation de la base de données:
importDataPress = Fonction ({this},
// Cette fonction est appelée lorsque le bouton est enfoncé
name = Nouvelle requête SQL (
Connexion ("ODBC: DSN = BASE DE DONNÉES ; PWD = XXX; "),
QueryName ("ma_table"),
CustomSQL (
"CHOISIR * DE BASE DE DONNÉES Paramètre WHERE == \! "+ saisir + \! ";"
)
) << Exécuter; << Obtenir le nom du bouton;
);
Merci !
ScriptingRe: insérer la chaîne 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 matérielles:
Référence de la syntaxe JSL
Guide de création de scripts JMP15
Index de script trouvé dans le menu Aide JMP
Exemple très court (vérifiez le journal lorsque vous changez de 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)
)
))
);
Re: insérer la chaîne 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 la chaîne de la zone de texte dans l'instruction SQL dans le script JSLMerci beaucoup, cela a fait l'affaire:)