Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?I'm a beginner with application builders and I want to achieve the following: I'm currently retrieving data from a database using SQL with a specific time period. However, instead of directly modifying the SQL code to change the period, I want to be able to change it via a GUI. I'm currently executing this with JSL, and I want to replace the [HERE] part of the SQL query.
Beispiel-JSL:
// Get a handle to the data table
dt = Current Data Table();
unique = Function({a}, // input: List, output: List
{aa=Associative Array(),nr=NItems(a),i,aKeys,nUnique,aUnique={}},
For( i=1, i<=nr, i++, aa << insert( a[i] ) );
aKeys = aa << GetKeys;
nUnique = NItems( aKeys );
For( i = 1, i <= nUnique, i++, InsertInto(aUnique,aKeys[i]) );
aUnique
);
dofun = Function({},{months,varName,dType},
months = SampleRateInput << Get;
varName = VarList << GetSelected;
dType = Column(dt,varName[1]) << GetDataType( "English");
If(dType!="Character",
Dialog(Title("Alert"),"Data Type of Variable should be Character. ");
Throw()
);
dt << ClearSelect;
dt << SelectRows( selIdx );
);
OKButtonPress=Function({this},
// This function is called when the OK button is pressed
(thisModuleInstance << Get Box) << Close Window;
dofun;
);
CancelButtonPress=Function({this},
// This function is called when the Cancel button is pressed
(thisModuleInstance << Get Box) << Close Window;
);
New SQL Query(
Version( 130 ),
Connection( ),
QueryName( ),
Select( ),
From(
Table( ),
),
Where(
Custom(
"t1.msr_dt >= DATEADD(month, -[HERE], CURRENT_DATE)",
UI( Custom( Base( "Continuous" ) ) )
)
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
DatenzugriffBetreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?Mein JMP ist Version 19.
Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?Verfügen Sie über eine eigene GUI, mit der Sie den Wert ändern möchten? Können Sie diesen Wert extrahieren? Ich denke, Sie können Variablen einfach innerhalb des Where(Custom())-Blocks auswerten (zumindest mit JMP18).
Names Default To Here(1);
myval = 150;
dt = New SQL Query(
Version(130),
Connection("JMP"),
JMP Tables(["Big Class" => "\C:\Program Files\JMP\JMPPRO\18\Samples\Data\Big Class.jmp"]),
QueryName("SQLQuery2"),
Select(Column("name", "t1")),
From(Table("SQLQuery1", Alias("t1"))),
Where(
Custom(
Eval Insert("t1.weight >= ^myval^"),
UI(Custom(Base("Continuous"))))
)
) << Run Foreground;
Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?jthi-san, Arigatougozaimasu.
Die zuvor im JSL beschriebene GUI war eine leicht abgespeckte Version des JSL der Beispielanwendung. Die GUI, die ich tatsächlich erstellen möchte, ähnelt der im angehängten Bild.
Ich verstehe, dass ich Variablen innerhalb von SQL-Anweisungen übergeben kann, indem ich sie mit „^“ einschließe!
Welchen JSL-Code muss ich schreiben, um eine neue SQL-Abfrage auszuführen, wenn die Schaltfläche „OK“ in der GUI gedrückt wird? 
Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?Hallo @TamedZebra ,
Hat nichts mit der JSL-Seite zu tun, aber haben Sie versucht, den Datenbank -Query-Builder anzuwenden? Er bietet eine GUI mit Filtern zum Ändern von Datumsbereichen.
Danke,
Ben
Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?@Ben_BarrIngh , Arigatougozaimasu.
Wir können ein Skript in einer Datentabelle speichern und wenn das Skript als „SQL-Abfrage“ geschrieben ist, können wir die Datentabelle mit einem Klick aus der Datenbank aktualisieren.
Das Ändern des SQL im Skript oder Abfrage-Generator erfordert jedoch etwas Zeit und Aufwand.
Ich möchte SQL also per GUI bearbeiten, die durch Drücken eines Skripts in der Datentabelle angezeigt wird.

Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?Ich verwende keinen Anwendungs-Builder, sondern schreibe alles selbst mit JSL. Diese Beispielanwendung führt keine SQL-Abfrage an die Datenbank durch, sondern verwendet eine JMP-Tabelle als "Datenbank". Es handelt sich um eine recht vereinfachte Version, die aber einige allgemeine Ideen vermitteln kann.
Names Default To Here(1);
initval = 150;
run_query = Expr(
months_to_query = neb_months << get;
dt = New SQL Query(
Version(130),
Connection("JMP"),
JMP Tables(["Big Class" => "\C:\Program Files\JMP\JMPPRO\18\Samples\Data\Big Class.jmp"]),
QueryName("QueryMonths"),
Select(Column("name", "t1")),
From(Table("Big Class", Alias("t1"))),
Where(
Custom(
Eval Insert("t1.weight >= ^months_to_query^"),
UI(Custom(Base("Continuous"))))
)
) << Run Foreground;
wait(0);
nw << Close Window;
);
nw = New Window("Query Data",
V List Box(
Panel Box("How Long",
Lineup Box(N Col(2),
Text Box("Months: "),
neb_months = Number Edit Box(initval),
)
),
Lineup Box(N Col(2),
Button Box("OK",
run_query
),
Button box("Cancel",
nw << close window;
)
)
)
);
Write();
Betreff: Wie kann ich den in das Textfeld eingegebenen Text als Variablen in SQL verwenden?get --> Text abrufen
Ich konnte die oben genannten Änderungen in JMP 19 durchführen. Ich konnte erreichen, was ich wollte. Danke!!!