JSL - SQL リクエストに挿入するリストからの複数選択<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、ちょっと問題があるんですが、
リストを作成してから、このリストからさまざまな値を選択できるリスト ボックスを作成しました。選択した値を SQL リクエストに挿入したいと考えています。
しかし、それは機能しません、これが私のスクリプトです:
選択 = {"ルージュ"、"ヴェール"、"ブルー"、"ジョーヌ"};
リコールフラグ = 0;
NW=新しいウィンドウ("テスト",
H リスト ボックス( テキスト ボックス( "色の選択" ), y = リスト ボックス( 選択 ) ),
V リストボックス(
ボタンボックス(「OK」、
選択 = (y << getelected);
::リコールフラグ = 1;
NW << ウィンドウを閉じる;
)
)
);
選択 = "選択 ...
から ...
WHERE Colors IN '" || 選択 || "' " ;
問題について何か心当たりはありますか?
ご回答いただきありがとうございます。
Re: JSL - SQL リクエストに挿入するリストからの複数選択の項目を連結するこの関数は引数として文字列のみを取るため、数値リストでは機能しません。
最初の 2 つの引数の後に置換引数を追加し続けることができるとは知りませんでした。MSさん、そのトリックを教えてくれてありがとう!
Re: JSL - SQL リクエストに挿入するリストからの複数選択元の例のようなリストボックス コンテキストでは、リストボックス内で項目を選択できるようにするには、項目が文字列である必要があります。 つまり、とにかく数値を事前に文字列に変換する必要があります。
ただし、リストが選択肢 = {12,156,13,25} として指定されていると仮定すると、SQL 文字列は次のように連結できます。
選択= { 12 、 156 、 13 、 25 } ;
選択する= 「...FROM ...WHERE ID IN を選択」 ||代わりの(文字(選択) 、 「{」 、 "(" 、 "}" 、 ")" 、 「」 、 「」 ) ;
Re: JSL - SQL リクエストに挿入するリストからの複数選択こんにちは、
はい、concat 関数も機能しますが、文字列に対してのみ機能し、数値に対しては機能しません。 真実 ?
数値リストのヒントはありますか?
例: Choice = {"rouge", "vert", "bleu", "jaune"}; の代わりにChoice = {12,156,13,25} のような数値があります。
そして最後に次のようにしたいと思います:
選択する= 「SELECT ...FROM ...WHERE ID IN (12,156,13,25)
Re: JSL - SQL リクエストに挿入するリストからの複数選択という気の利いた機能があります項目を連結するこれを使用すると、ワンライナーで in リストを作成できます。
選択= { "ルージュ" 、 「バート」 、 「ブルー」 、 「ジョーン」 } ;
リコールフラグ= 0 ;
北西=新しい窓( "テスト" 、
<<モーダル、
H リストボックス(テキストボックス( 「色を選んでください」 ) 、 y =リストボックス(選択) ) 、
V リストボックス(
ボタンボックス( "わかりました" 、
選択= ( y <<選択される) ;
::リコールフラグ= 1 ;
)
)
) ;
リスト内の選択肢= 「(」 ||項目を連結する(選択、 「」、「」 ) || "")" ;
選択する= 「...FROM ...WHERE の色を選択」 ||リスト内の選択肢;
Re: JSL - SQL リクエストに挿入するリストからの複数選択Merci Guillaume、ca fonctionne !
MSさん、ありがとうございました!
Re: JSL - SQL リクエストに挿入するリストからの複数選択リストを文字列に変換する (これは gbu が上記でうまく解決しています) こととは別に、ウィンドウがモーダルであるか、選択文字列の構築が OK に移動されない限り、選択が行われる前に選択が評価されるという問題もあります。ボタンスクリプト。
モーダルウィンドウの例:
選択= { "ルージュ" 、 「バート」 、 「ブルー」 、 「ジョーン」 } ;
リコールフラグ= 0 ;
北西=新しい窓( "テスト" 、<<モーダル、
H リストボックス(テキストボックス( 「色を選んでください」 ) 、 y =リストボックス(選択) ) 、
V リストボックス(
ボタンボックス( "わかりました" 、
選択= ( y <<選択される) ;
::リコールフラグ= 1 ;
)
)
) ;
選択肢= 「」 ||選択[ 1 】 || 「」 ; // 最初に選択された項目
// 項目が複数ある場合はさらに追加します
のために(私= 2 、私<= N 個のアイテム(選択) 、私++、
選択肢=選択肢|| 「、」 ||選択[私] || 「」
) ;
選択する= 「...FROM ...WHERE の色を選択 (" ||選択肢|| ")" ;
非モーダルの例:
選択= { "ルージュ" 、 「バート」 、 「ブルー」 、 「ジョーン」 } ;
リコールフラグ= 0 ;
北西=新しい窓( "テスト" 、 //<<モーダル、
H リストボックス(テキストボックス( 「色を選んでください」 ) 、 y =リストボックス(選択) ) 、
V リストボックス(
ボタンボックス( "わかりました" 、
選択= ( y <<選択される) ;
::リコールフラグ= 1 ;
選択肢= 「」 ||選択[ 1 】 || 「」 ;
のために(私= 2 、私<= N 個のアイテム(選択) 、私++、
選択肢=選択肢|| 「、」 ||選択[私】 || 「」
);
選択する= 「...FROM ...WHERE の色を選択 (" ||選択肢|| ")" ;
北西<<ウィンドウを閉じる;
)
)
) ;
Re: JSL - SQL リクエストに挿入するリストからの複数選択敬礼アントワーヌ
次のようにすることができます:
=========================================
選択 = {"ルージュ"、"ヴェール"、"ブルー"、"ジョーヌ"};
リコールフラグ = 0;
NW=新しいウィンドウ("テスト",
H リスト ボックス( テキスト ボックス( "色の選択" ), y = リスト ボックス( 選択 ) )、
V リストボックス(
ボタンボックス(「OK」、
選択 = (y << getelected);
::リコールフラグ = 1;
NW << ウィンドウを閉じる;
)
)
);
選択 = "選択 ...
から ...
WHERE 色は 'strchoice' " ;
/* ステップ 1 : ループを使用してリストから文字列を作成します - Creation d'unechaine de carcatère au formatAttendu en bouclant sur le nombre de valeurs */
string_color = "('" || 選択[1] || "'";
For( i = 2, i <= Niitems(choice), i++,
文字列の色 = 文字列の色 || "、" ||選択|| 「」
);
文字列の色 = 文字列の色 || ")";
/* ステップ 2 : stingchoice を string_color の値に置き換えます */
select = replace(select,"'strchoice'",string_color);
=========================================
心より、
ギョーム