Une valeur variable de l'utilisateur - requête SQLJ'essaie d'obtenir une valeur variable de l'utilisateur et de l'utiliser comme requête SQL
Comment puis-je ajouter à une requête ?
Merci!

Re : Une valeur variable de l'utilisateur – requête SQLSalut tout le monde,
@gzmorgan0 , Merci beaucoup pour votre solution, ça marche bien !
@uday_guntupalli @stan_koprowski @Jeff_Perkinson ,Merci à tous pour votre soutien!
Re : Une valeur variable de l'utilisateur – requête SQL@Botzal , veuillez rechercher Open Database() dans l'index de script JMP >> Fonctions. Cette fonction a 2 arguments obligatoires et 2 arguments optionnels :
- la chaîne de connexion
- la chaîne de requête
- pour la table de sortie, vous ne voulez probablement pas cela
Vous utilisez une chaîne pour les deux premiers arguments.Il est difficile de déboguer et de voir cela lorsque nous n'avons pas de fichiers de test à utiliser. Supprimez les lignes de commentaires pour dt_ScadaData pour tester s'il s'exécute. Supprimez les lignes de commentaires pour NW si vous souhaitez que l'interface utilisateur se ferme automatiquement. Vous souhaiterez peut-être qu'il reste ouvert afin de pouvoir extraire plusieurs tables. Si c'est ce que tu veux, alors Eval Insérer dans (qstr ), remplace les variables d'espace réservé foo[1] et foo[2].Donc, juste au cas où vous auriez l'intention d'utiliser l'interface utilisateur plus d'une fois, j'ai créé une variable cq_str à laquelle est attribuée la chaîne de variable. Donc cela devrait fonctionner.En général, je n'utilise pas Eval Insert Into() mais plutôt quelque chose comme 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>
Re : Une valeur variable de l'utilisateur – requête SQL@uday_guntupalli ,
Ce que j'ai posté est un journal - voir ci-dessous

Le journal -
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>Etes-vous sûr que je "définir des chaînes avec des séparateurs en dehors des guillemets" ?S'il vous plaît, pouvez-vous marquer les séparateurs et me dire ce que vous voulez dire.
* Le problème est que lorsque j'exécute le script et que j'insère des valeurs dans Panneau électrique et j'appuie sur Boîte à boutons ("Ok"..), je n'ai reçu aucune donnée.
Merci.
Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Vous n'avez toujours pas collé le journal. Si vous appuyez sur Ctrl + Shift + L dans la fenêtre d'accueil de JMP, une fenêtre de journal s'ouvrira. Alternativement, sur votre éditeur de script, faites un clic droit et sélectionnez « Afficher le journal intégré » comme indiqué ici avant d'exécuter votre script :

De plus, vous définissez à nouveau des chaînes avec des séparateurs en dehors des guillemets. Veuillez vous référer aux corrections précédentes que j'ai proposées et coller le journal. Si vous ne collez pas le journal, je ne pourrai pas vous donner d'autres conseils.
Re : Une valeur variable de l'utilisateur – requête SQL@uday_guntupalli Merci pour votre solution.
J'ai essayé d'appliquer vos conseils mais cela n'a pas fonctionné. 
1. La requête fonctionne - Quand je insérer des nombres dans un script et ne pas modifier les variables de l'utilisateur . Par exemples - Au lieu de foo[1], j'insère p123 et au lieu de oo[2], j'insère 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. Le journal -
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. Pouvez-vous voir le script du chapitre 2 selon lequel j'applique vos conseils, si je vous ai bien compris.
Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Vous devez regarder les conseils que nous vous avons déjà donnés et essayer de les suivre. S'il vous plaît, aidez-nous à vous aider. Quand vous dites que ça ne marche pas, on ne sait pas ou on ne voit pas ce qui se passe. Cela nous aidera à résoudre les problèmes si vous pouvez fournir des détails clairs sur ce que vous dites et pourquoi vous pensez que cela ne fonctionne pas.
1. Avez-vous validé le fonctionnement de la requête par lui-même ?
2. Veuillez coller le journal
3. Vous n’évaluez pas la chaîne comme je l’ai montré précédemment. Veuillez évaluer la chaîne en l'appelant après sa construction.
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>
Re : Une valeur variable de l'utilisateur – requête SQLSalut @uday_guntupalli ,
Le script que le @gzmorgan0 m'a été envoyé, ne fonctionne pas - voir JSL ci-dessous
Bien sûr, j'ai remplacé le serveur par mon serveur.
S'il vous plaît, toute aide pour corriger le script.
Merci.
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>
Re : Une valeur variable de l'utilisateur – requête SQLSalut @uday_guntupalli ,
Le script que le @gzmorgan0 m'a été envoyé, ne fonctionne pas - voir JSL ci-dessous
Bien sûr, j'ai remplacé le serveur par mon serveur.
S'il vous plaît, toute aide pour corriger le script.
Merci.
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>Re : Une valeur variable de l'utilisateur – requête SQLSalut @Botzal ,
Quelle version de SQL Server utilisez-vous ?
Il semble que vous disposiez d'une copie d'évaluation de SQL Server qui a expiré.
Pouvez-vous vérifier que votre SQL Server ne fonctionne pas en mode évaluation ?
Merci,
Stan
Re : Une valeur variable de l'utilisateur – requête SQLVeuillez poster votre journal. Ce script n'exécute pas de requête, il écrit simplement le résultat de la commande de requête dans le journal.
Quelle version de JMP utilisez-vous ?JMP dispose d'un générateur de requêtes.Vous pouvez créer cette requête pour demander les deux champs dont vous avez besoin. Ensuite, vous pouvez enregistrer le script ou la requête.Il existe plusieurs points de défaillance pour une requête,
- Syntaxe de requête incorrecte, notez que la casse peut être importante.Donc, si un utilisateur tape Harry, mais que le champ db est HARRY, alors le résultat sera vide.SQL demande également des guillemets autour d'une valeur avec des espaces ou des caractères spéciaux. Donc d'abord , faites fonctionner un script sans l'invite, c'est-à-dire codez en dur les valeurs de l'invite et exécutez la partie de code dtScadaData = Open Database (etc.)
- Une fois que le script codé en dur fonctionne, essayez l'invite en tapant exactement ce qui a été codé en dur ci-dessus.Imprimez également la chaîne et compare.mple,
- La connexion à la requête peut être un point d'échec
- Votre chaîne de connexion au pilote de base de données peut ne pas être la même que celle des autres utilisateurs.Par exemple, j'ai configuré le pilote pour Excel pour qu'il s'appelle Excel Files, quelqu'un d'autre pourrait avoir un nom différent.
- Les autres privilèges utilisateur peuvent être différents des vôtres, ils peuvent ne pas avoir accès aux fichiers/tables.
- Je suis sûr qu'il y en a d'autres,
je vois ça @uday_guntupalli vient de répondre. Je vais donc m'arrêter maintenant.
Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Lorsque vous dites que cela n'a pas fonctionné, pouvez-vous expliquer ce que vous voyez.@gzmorgan0 avait raison de détecter ma faute, où j'aurais dû utiliser Eval Insert Into au lieu de Eval Insert :

De plus, remplacez-vous le nom du serveur dans la chaîne indiquée ci-dessus ?
De plus, vous ne construisez la chaîne que jusqu'à présent, vous devez réellement exécuter la chaîne après l'avoir construite pour voir les résultats, comme indiqué dans l'exemple ci-dessous de l'index de script :
ex = "Today is ^As Date( Today())^";
Eval Insert Into( ex );
ex;
Re : Une valeur variable de l'utilisateur – requête SQLÇa ne marche toujours pas 
Re : Une valeur variable de l'utilisateur – requête SQLje pense que tu dois changer le code q_str = Éval Insérer (q_str) ou Eval Insérer dans (q_str) . Eval Insert Into() en modifiant la valeur de son argument et il doit s'agir d'une valeur stockée comme q_str ; Eval Insert() renvoie simplement une chaîne, elle ne change pas son argument.
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);Re : Une valeur variable de l'utilisateur – requête SQL@uday_guntupalli
Salut,
Merci pour votre solution et le explication.
J'essaie d'exécuter le script et d'insérer les données dans le panneau de la boîte. Lorsque j'essaie d'appuyer sur le bouton OK, rien ne se passe.
S'il vous plaît, voir le journal ci-dessous
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>Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Je pense que la raison pour laquelle vous avez rencontré l'erreur était la façon dont votre chaîne contenait des virgules et d'autres séparateurs. J'ai réécrit votre script et je le fournis ci-dessous :
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>Aussi, quelques suggestions :
1. Lorsque vous construisez des présentoirs, séparez-les et construisez-les indépendamment
2. Lorsque vous utilisez des instructions comme Eval, définissez toujours votre chaîne ou instruction séparément, cela vous aidera à isoler l'erreur et à voir quelle ligne de code introduit l'erreur.
J'espère que cela t'aides.
Re : Une valeur variable de l'utilisateur – requête SQL@gzmorgan0
@uday_guntupalli
@Jeff_Perkinson
C'est le journal -
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>
Re : Une valeur variable de l'utilisateur – requête SQL@gzmorgan0
@uday_guntupalli
@Jeff_Perkinson
Salut tout le monde,
Merci pour votre solution!
Le script ne fonctionne toujours pas 
Lorsque j'essaie d'insérer les paramètres, le message suivant m'apparaît : "Nom non résolu : serveur en accès ou évaluation de 'erver', erver"
Bien que j'exécute le script avec la commande suivante - Les noms par défaut sont ici (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>
Re : Une valeur variable de l'utilisateur – requête SQLLe script ci-dessous comporte 2 parties : une boîte de dialogue modale et une boîte de dialogue 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
Voici les résultats inscrits dans le journal de bord, j'ai entré chat et poussin, puis taureau et vache.

Re : Une valeur variable de l'utilisateur – requête SQL@Botzal , la fenêtre de valeur utilisateur est non modale. Ainsi, le JSL situé sous la nouvelle fenêtre tente de s'exécuter avant que l'utilisateur n'ait la possibilité de sélectionner le bouton.
Savez-vous comment créer une boîte de dialogue modale ou comment exécuter la requête dans le cadre du bouton OK ?
Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Veuillez publier ce que vous avez essayé en utilisant le bloc "JSL" affiché ici et un instantané du journal si possible, de cette façon les utilisateurs de la communauté peuvent essayer de comprendre ce qui ne fonctionne pas pour vous.
Re : Une valeur variable de l'utilisateur – requête SQL@Jeff_Perkinson
@Jeff_Perkinson a écrit:
@uday_guntupalli la suggestion de Remplaçant() est une bonne.
Une autre fonction avec laquelle vous voudrez peut-être vous familiariser est Éval Insertion() . Ça peut insérer des valeurs de variables dans des chaînes de texte .
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);Voici le journal de ce code :
/*:
//:*/
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
/*:
"The correct answer is: a"
Merci pour votre solution.
Désolé, j'essaye mais ça ne marche pas.
S'il vous plaît, pouvez-vous m'expliquer ?
Re : Une valeur variable de l'utilisateur – requête SQL@uday_guntupalli la suggestion de Remplaçant() est une bonne.
Une autre fonction avec laquelle vous voudrez peut-être vous familiariser est Éval Insertion() . Ça peut insérer des valeurs de variables dans des chaînes de texte .
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
Voici le journal de ce code :
/*:
//:*/
myvar="a";
response=eval insert("The correct answer is: ^myvar^");
print(response);
/*:
"The correct answer is: a"Re : Une valeur variable de l'utilisateur – requête SQL@Botzal ,
Une façon d’obtenir ce que vous voulez serait d’utiliser Substitiute(). Par exemple
WhereStatement = " WHERE [ReadTime] >= DateTimeStart and [ReadTime] <= DateTimeEnd ";
WhereStatement = Substitute(WhereStatement, "DateTimeStart", "'" || MyStartTime ||"'", "DateTimeEnd", "'" || MyEndTime||"'");
Dans l'exemple ci-dessus, DateTimeStart et DateTimeEnd dans la requête sont remplacés par MyStartTime et MyEndTime qui sont basés sur la saisie de l'utilisateur.
De même, dans votre cas, vous pouvez d'abord initialiser SqlQuery en tant que chaîne distincte, utiliser Substitute() pour remplacer les chaînes souhaitées. Une fois que vous avez fait cela et que vous avez la requête souhaitée, effectuez une requête à partir de la base de données. Dis moi si ça aide. Un petit conseil pour l'avenir est de publier du JSL en utilisant le bloc "JSL", afin que les gens puissent facilement utiliser le script que vous publiez pour proposer des exemples.