Un valore variabile dall'utente: query SQLCerco di ottenere un valore variabile dall'utente e di usarlo come query SQL
Come posso aggiungere a una query?
Grazie!

Ri: Un valore variabile dall'utente - query SQLCiao a tutti,
@gzmorgan0 , Grazie mille per la tua soluzione, funziona bene!
@uday_guntupalli @stan_koprowski @Jeff_Perkinson ,Grazie a tutti per il vostro sostegno!
Ri: Un valore variabile dall'utente - query SQL@Botzal , cercare Open Database() nell'indice di scripting JMP >> Funzioni. Questa funzione ha 2 argomenti obbligatori e 2 opzionali:
- la stringa di connessione
- la stringa di interrogazione
- proprietà per la tabella di output, probabilmente non lo desideri
Hai utilizzato una stringa per i primi due argomenti.È difficile eseguire il debug e vederlo quando non abbiamo file di test da utilizzare. Rimuovere le righe di commento per dt_ScadaData per verificare se viene eseguito. Rimuovi le righe di commento per NW se desideri che l'interfaccia utente si chiuda automaticamente. Potresti volerlo rimanere aperto in modo da poter estrarre diversi tavoli. Se è quello che vuoi, allora Valutazione Inserisci in(qstr ), sostituisce le variabili segnaposto foo[1] e foo[2].Quindi, nel caso in cui intendi utilizzare l'interfaccia utente più di una volta, ho creato una variabile cq_str a cui è assegnata la variabile stringa. Quindi dovrebbe funzionare.In genere non utilizzo Eval Insert Into() ma invece qualcosa come cq_str = Eval Insert(q_str);
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
q_connect = "DRIVER=SQL Server;SERVER=MyServer;Trusted_Connection=Yes";
q_str = "DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria=
'<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data";
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
cq_str = q_str;
Show(cq_str);
Eval Insert Into(cq_str);
Show(cq_str);
//dt_ScadaData = Open Database(q_connect, cq_str); //this is the runit command
//NW << Close Window(); //this will close the UI don't use if you want to keep ist open
) //end ButtonBox
); //end VListBox
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>
Ri: Un valore variabile dall'utente - query SQL@uday_guntupalli ,
Quello che ho pubblicato è un registro: vedi sotto

Il ceppo -
foo = {"p123", "v123"};
//:*/
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str ="DRIVER=SQL Server;SERVER=My Server(I changed);Trusted_Connection=Yes",
"DECLARE @StartDateTime datetime = DATEADD(day, -1, CAST(GETDATE() AS varchar(11))) -- 17 Days Back
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime","Scada Data";
Show(q_str);
q_str = Eval Insert INTO(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);
/*:</SCADAPORTAL>Sei sicuro che io "definire stringhe con separatori fuori virgolette"?Per favore, puoi segnare i separatori e dirmi cosa intendi?
* Il problema è che quando eseguo lo script e inserisco i valori in Scatola del pannello e poi premo per Casella dei pulsanti ("Ok"..), Non ho ricevuto alcun dato.
Grazie.
Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Non hai ancora incollato il registro. Se premi Ctrl + Maiusc + L nella finestra principale di JMP, si aprirà una finestra di registro. In alternativa, sul tuo editor di script, fai clic con il pulsante destro del mouse e seleziona "Mostra registro incorporato" come mostrato qui prima di eseguire lo script:

Inoltre, stai nuovamente definendo stringhe con separatori fuori dalle virgolette. Fare riferimento alle correzioni precedenti che ho offerto e incollare il registro. Se non incolli il registro, non saremo in grado di offrirti ulteriori indicazioni
Ri: Un valore variabile dall'utente - query SQL@uday_guntupalli Grazie per la tua soluzione
Ho provato ad applicare il tuo consiglio ma non ha funzionato. 
1. La query funziona - Quando I inserire numeri in uno script E non variabili da parte dell'utente . Per esempi: invece di foo[1], inserisco p123 e invece di oo[2], inserisco v123.
dt_ScadaData = Open Database("DRIVER=SQL Server;SERVER=My Server ;Trusted_Connection=Yes",
"DECLARE @StartDateTime datetime = DATEADD(day, -1, CAST(GETDATE() AS varchar(11))) -- 17 Days Back
DECLARE @EndDateTime datetime = DATEADD(day,1, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"p123\!"" value="\!"v123\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime","Scada Data");</SCADAPORTAL>2. Il ceppo -
foo = {"P123", "V123"};
//:*/
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str ="DRIVER=SQL Server;SERVER=My Server;Trusted_Connection=Yes",
"DECLARE @StartDateTime datetime = DATEADD(day, -1, CAST(GETDATE() AS varchar(11))) -- 17 Days Back
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime","Scada Data";
Show(q_str);
q_str = Eval Insert INTO(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);
/*:</SCADAPORTAL>3. Riesci a vedere la sceneggiatura nel capitolo 2 in cui applico i tuoi consigli, se ho capito bene.
Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Devi guardare i consigli che ti abbiamo già dato e provare a seguirli. Per favore aiutaci ad aiutarti. Quando dici che non funziona, non sappiamo o non possiamo vedere cosa sta succedendo. Ci aiuterà a risolvere il problema se puoi fornire dettagli chiari su ciò che stai dicendo e sul motivo per cui ritieni che non funzioni.
1. Hai verificato che la query funzioni da sola?
2. Incolla il registro
3. Non stai valutando la stringa come ho mostrato in precedenza. Si prega di valutare la stringa richiamandola dopo che è stata costruita.
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str = "DRIVER=SQL Server;SERVER=My Server;Trusted_Connection=Yes,
DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data" ;
Show(q_str);
Eval Insert(q_str);
Show(q_str);
q_str; // evaluating the query you constructed
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>
Ri: Un valore variabile dall'utente - query SQLCIAO @uday_guntupalli ,
La sceneggiatura che @gzmorgan0 mi ha inviato, non funziona - vedi JSL di seguito
Certo, ho sostituito il server con il mio server.
Per favore, qualsiasi aiuto per correggere lo script.
Grazie.
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str = "DRIVER=SQL Server;SERVER=My Server;Trusted_Connection=Yes,
DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data" ;
Show(q_str);
Eval Insert(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>
Ri: Un valore variabile dall'utente - query SQLCIAO @uday_guntupalli ,
La sceneggiatura che @gzmorgan0 mi ha inviato, non funziona - vedi JSL di seguito
Certo, ho sostituito il server con il mio server.
Per favore, qualsiasi aiuto per correggere lo script.
Grazie.
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str = "DRIVER=SQL Server;SERVER=My Server;Trusted_Connection=Yes,
DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data" ;
Show(q_str);
Eval Insert(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>Ri: Un valore variabile dall'utente - query SQLCIAO @Botzal ,
Quale versione di SQL Server stai utilizzando?
Sembra che potresti avere una copia di valutazione di SQL Server scaduta.
Puoi verificare che SQL Server non sia in esecuzione in modalità di valutazione?
Grazie,
Stan
Ri: Un valore variabile dall'utente - query SQLPer favore pubblica il tuo registro. Questo script non esegue una query, scrive semplicemente il risultato del comando della query nel registro.
Quale versione di JMP stai utilizzando?JMP dispone di un generatore di query.Potresti creare quella query per richiedere i due campi che ti servono. Quindi puoi salvare lo script o la query.Esistono più punti di errore per una query,
- Sintassi della query errata. Tieni presente che le maiuscole e minuscole possono essere importanti.Quindi, se un utente sta digitando harry, ma il campo db è HARRY, il risultato sarà vuoto.Inoltre SQL richiede virgolette attorno a un valore con spazi o caratteri speciali. COSÌ Primo , fai in modo che uno script funzioni senza il prompt, ovvero codifica i valori del prompt ed esegui la parte di codice dtScadaData = Open Database(etc.)
- Una volta che lo script hardcoded funziona, prova a digitare esattamente ciò che è stato hardcoded sopra.Stampa anche la stringa e confronta.mple,
- L'accesso alla query può essere un punto di errore
- La stringa di connessione al driver db potrebbe non essere la stessa di quella di altri utenti.Ad esempio, ho impostato il driver per Excel in modo che venga denominato File Excel, qualcun altro potrebbe avere un nome diverso.
- Altri privilegi utente potrebbero essere diversi dai tuoi e potrebbero non avere accesso ai file/tabelle.
- Sono sicuro che ce ne sono altri,
capisco @uday_guntupalli ho appena risposto. Quindi adesso mi fermo.
Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Quando dici che non ha funzionato, puoi spiegare cosa stai vedendo.@gzmorgan0 aveva ragione nel cogliere il mio errore, dove avrei dovuto usare Eval Insert Into invece di Eval Insert :

Inoltre, stai sostituendo il nome del server nella stringa mostrata sopra?
Inoltre, finora stai solo costruendo la stringa, devi effettivamente eseguire la stringa dopo averla costruita per vedere i risultati come mostrato nell'esempio seguente dallo Scripting Index:
ex = "Today is ^As Date( Today())^";
Eval Insert Into( ex );
ex;
Ri: Un valore variabile dall'utente - query SQLAncora non funziona 
Ri: Un valore variabile dall'utente - query SQLPenso che tu debba cambiare il codice q_str = Inserisci valutazione(q_str) O Valutazione Inserisci in(q_str) . Eval Insert Into() modifica il valore del suo argomento e deve essere un valore memorizzato come q_str; Eval Insert() restituisce semplicemente una stringa, non cambia il suo argomento.
Show(q_str);
q_str = Eval Insert(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);Ri: Un valore variabile dall'utente - query SQL@uday_guntupalli
CIAO,
Grazie per la tua soluzione e il spiegazione.
Provo a eseguire lo script e inserisco i dati nel pannello della casella. Quando provo a premere il pulsante OK non succede nulla.
Per favore, vedi il registro qui sotto
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str = "DRIVER=SQL Server;SERVER=My Server;Trusted_Connection=Yes,
DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data" ;
Show(q_str);
Eval Insert(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Penso che il motivo per cui stavi riscontrando questo errore fosse dovuto al modo in cui la tua stringa aveva virgole e altri separatori. Ho riscritto il tuo script e lo fornisco di seguito:
LB = Lineup Box(1);
LB << Append(
PB_Inputs = Panel Box("User Inputs",
a = Text Edit Box( "" ), //foo[1]
b = Text Edit Box( "" ), // foo[2]
);
);
MyUI = V List Box(LB,
BB_UserInputUnload = Button Box("Ok",
foo = Eval List( {a << get text, b << get text} );
Show( foo );
q_str = "DRIVER=SQL Server;SERVER=MyServer;Trusted_Connection=Yes,
DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime
Scada Data" ;
Show(q_str);
Eval Insert(q_str);
Show(q_str);
),
);
NW = New Window("User Input Collection Window",
VLB = V List Box();
);
VLB << Append(MyUI);</SCADAPORTAL>Inoltre, un paio di suggerimenti:
1. Quando costruisci le scatole da esposizione, separale e costruiscile in modo indipendente
2. Quando usi istruzioni come Eval, definisci sempre la stringa o l'istruzione separatamente, ti aiuterà a isolare l'errore e vedere quale riga di codice introduce l'errore
Spero che questo ti aiuti.
Ri: Un valore variabile dall'utente - query SQL@gzmorgan0
@uday_guntupalli
@Jeff_Perkinson
Questo è il registro -
foo = {"DS", "FD"};
Name Unresolved: erver in access or evaluation of 'erver' , erver
//:*/
Names default to here(1);
uservalue = New Window("Insert Data",
a = Text Edit Box(""), //foo[1]
b = Text Edit Box(""), //foo[2]
Button Box("OK",
foo = Eval List({ a << get text, b << get text});
show(foo);
q_str = EvalInsert("DRIVER=SQL Server;SERVER=-----;Trusted_Connection=Yes",
"DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime","Scada Data");
show(q_str);
wait(0);
uservalue << close window();
)
);
/*:
DisplayBox[]</SCADAPORTAL>
Ri: Un valore variabile dall'utente - query SQL@gzmorgan0
@uday_guntupalli
@Jeff_Perkinson
Ciao a tutti,
Grazie per la tua soluzione!
Lo script continua a non funzionare 
Quando provo a inserire i parametri, mi mostra il seguente messaggio - "Nome non risolto: erver in accesso o valutazione di 'erver', erver"
Anche se eseguo lo script con il seguente comando: I nomi predefiniti sono qui(1);
Names default to here(1);
uservalue = New Window("Insert Data",
a = Text Edit Box(""), //foo[1]
b = Text Edit Box(""), //foo[2]
Button Box("OK",
foo = Eval List({ a << get text, b << get text});
show(foo);
q_str = EvalInsert("DRIVER=SQL Server;SERVER= ----;Trusted_Connection=Yes",
"DECLARE @StartDateTime datetime = DATEADD(day, -2, CAST(GETDATE() AS varchar(11)))
DECLARE @EndDateTime datetime = DATEADD(day,0, GETDATE())
EXEC ListData @Criteria='
<SCADAPORTAL>
<DATA name="\!"PointData\!"" format="\!"Wide\!"" interval="\!"60m\!"">
<WHERE>
<COLUMN name="\!"Point\!"" project="\!"^foo[1]^\!"" value="\!"^foo[2]^\!"/">
</COLUMN>
</WHERE>
</DATA>'
, @StartDateTime=@StartDateTime
, @EndDateTime=@EndDateTime","Scada Data");
show(q_str);
wait(0);
uservalue << close window();
)
);</SCADAPORTAL>
Ri: Un valore variabile dall'utente - query SQLLo script seguente è composto da 2 parti: una finestra di dialogo modale e una finestra di dialogo non modale.
Names default to here(1);
//Modal method
foo = New Window("Insert Data", <<MODAL></MODAL>
'
etc. ");
Show(q_str);
//uncomment the line below after you have tested the string is correct
//dt_ScadaData = Open Database("DRIVER=SQL Server; SERVER=....", q_str);
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Non-Modal Method
//--- Show commands are written to teh LOG not the embedded log
uservalue = New Window("Insert Data",
a = Text Edit Box(""), //foo[1]
b = Text Edit Box(""), //foo[2]
Button Box("OK",
foo = Eval List({ a << get text, b << get text});
show(foo);
q_str = EvalInsert("DECLARE
@StartDateTime datetime = DATEADD( etc.
'
etc. ");
show(q_str);
wait(0);
uservalue << close window();
)//end ButtonBox
); //end New Window
Ecco i risultati scritti nel log, ho inserito gatto e pulcino, poi toro e mucca.

Ri: Un valore variabile dall'utente - query SQL@Botzal , la finestra del valore utente non è modale. Pertanto il JSL sotto la Nuova finestra tenta di essere eseguito prima che l'utente abbia la possibilità di selezionare il pulsante.
Sai come rendere modale una finestra di dialogo o come eseguire la query come parte del pulsante OK?
Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Pubblica ciò che hai provato utilizzando il blocco "JSL" mostrato qui e un'istantanea del registro, se possibile, in questo modo gli utenti nella comunità possono provare a capire cosa non funziona per te.
Ri: Un valore variabile dall'utente - query SQL@Jeff_Perkinson
@Jeff_Perkinson ha scritto:
@uday_guntupalli il suggerimento di Sostituire() è buono.
Un'altra funzione con cui potresti voler familiarizzare è Inserisci valutazione() . Può inserire valori variabili in stringhe di testo .
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);Ecco il registro di quel codice:
/*:
//:*/
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
/*:
"The correct answer is: a"
Grazie per la tua soluzione
Scusa, ci sto provando ma non funziona.
Per favore, puoi spiegarmi?
Ri: Un valore variabile dall'utente - query SQL@uday_guntupalli il suggerimento di Sostituire() è buono.
Un'altra funzione con cui potresti voler familiarizzare è Inserisci valutazione() . Può inserire valori variabili in stringhe di testo .
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
Ecco il registro di quel codice:
/*:
//:*/
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
/*:
"The correct answer is: a"Ri: Un valore variabile dall'utente - query SQL@Botzal ,
Un modo per ottenere ciò che desideri sarebbe utilizzare Substitiute(). Per es
WhereStatement = " WHERE [ReadTime] >= DateTimeStart and [ReadTime] <= DateTimeEnd ";
WhereStatement = Substitute(WhereStatement, "DateTimeStart", "'" || MyStartTime ||"'", "DateTimeEnd", "'" || MyEndTime||"'");
Nell'esempio mostrato sopra, DateTimeStart e DateTimeEnd nella query vengono sostituiti utilizzando MyStartTime e MyEndTime che si basano sull'input dell'utente.
Allo stesso modo nel tuo caso potresti prima inizializzare SqlQuery come una stringa separata, utilizzare Substitute() per sostituire le stringhe desiderate. Dopo averlo fatto e aver ottenuto la query desiderata, esegui una query dal database. Fammi sapere se questo aiuta. Un piccolo consiglio per il futuro è di pubblicare JSL utilizzando il blocco "JSL", in modo che le persone possano utilizzare facilmente lo script pubblicato per offrire esempi