JSL - 从列表中进行多选以插入 SQL 请求<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,我有一个小问题,
我创建了一个列表,然后创建了一个列表框,可以从此列表中选择不同的值,我想将我选择的值插入 SQL 请求中。
但这不起作用,这是我的脚本:
选择 = {"rouge","vert","bleu", "jaune"};
召回标志 = 0;
NW=新窗口(“测试”,
H 列表框( 文本框( "选择颜色" ), y = 列表框( 选择 ) ),
V 列表框(
按钮框(“确定”,
选择 = (y << getselected);
::recall_flag = 1;
西北 << 关闭窗口;
)
)
);
选择=“选择...
从 ...
WHERE 颜色 IN '" || 选择 || "' " ;
你知道这个问题吗?
谢谢您的回答 !
回复:JSL - 从列表中进行多选以插入 SQL 请求这串联项目函数仅接受字符串作为参数,因此不适用于数字列表。
我不知道您可以在前两个参数之后继续添加替换参数。感谢 MS 向我展示了这个技巧!
回复:JSL - 从列表中进行多选以插入 SQL 请求在原始示例中的列表框上下文中,项目必须是列表框中可选择的字符串。 也就是说,数字无论如何都需要提前转换为字符串。
但假设列表给出为 choice = {12,156,13,25},那么 SQL 字符串可以像这样连接:
选择= { 12 , 156 , 13 , 25 } ;
选择= “选择...从...其中ID” ||代替(字符(选择) , “{” , “(” , “}” , “)” , ” “ , ”” ) ;
回复:JSL - 从列表中进行多选以插入 SQL 请求你好,
是的,concat 函数也适用,但仅适用于字符串,不适用于数字。 真的 ?
您对数字列表有什么建议吗?
例如:而不是 choice = {"rouge", "vert", "bleu", "jaune"};我们有像 choice = {12,156,13,25} 这样的数值;
最后我们想要:
选择= “选择 ...FROM ...WHERE ID IN (12,156,13,25)
回复:JSL - 从列表中进行多选以插入 SQL 请求有一个漂亮的函数叫做串联项目它可用于通过一行创建您的列表:
选择= { “胭脂” , “垂直” , “蓝色” , “黄” } ;
召回标志= 0 ;
西北=新窗户( “测试” ,
<<莫代尔,
H 列表框(文本框( “选择颜色” ) , y =列表框(选择) ) ,
V 列表框(
按钮盒( “好的” ,
选择= ( y <<被选中) ;
::召回标志= 1 ;
)
)
) ;
列表中的选择= “('” ||串联项目(选择, “‘、‘” ) || “')” ;
选择= “选择...从...其中的颜色” ||列表中的选择;
回复:JSL - 从列表中进行多选以插入 SQL 请求谢谢纪尧姆,功能!
感谢tou女士!
回复:JSL - 从列表中进行多选以插入 SQL 请求除了将列表转换为字符串(gbu 在上面很好地解决了这一问题)之外,还存在在进行选择之前评估选择的问题,除非窗口是模态的或者选择字符串的构建移至 OK-按钮脚本。
模态窗口示例:
选择= { “胭脂” , “垂直” , “蓝色” , “黄” } ;
召回标志= 0 ;
西北=新窗户( “测试” ,<<莫代尔,
H 列表框(文本框( “选择颜色” ) , y =列表框(选择) ) ,
V 列表框(
按钮盒( “好的” ,
选择= ( y <<被选中) ;
::召回标志= 1 ;
)
)
) ;
选择= “'” ||选择[ 1 ] || “'” ; // 第一个选择的项目
// 如果有多个项目,则添加更多项目
为了(我= 2 ,我<= N 项(选择) ,我++,
选择=选择|| “,” ||选择[我] || “'”
) ;
选择= “选择...从...其中的颜色(” ||选择|| “)” ;
非模态示例:
选择= { “胭脂” , “垂直” , “蓝色” , “黄” } ;
召回标志= 0 ;
西北=新窗户( “测试” , //<<模态,
H 列表框(文本框( “选择颜色” ) , y =列表框(选择) ) ,
V 列表框(
按钮盒( “好的” ,
选择= ( y <<被选中) ;
::召回标志= 1 ;
选择= “'” ||选择[ 1 ] || “'” ;
为了(我= 2 ,我<= N 项(选择) ,我++,
选择=选择|| “,” ||选择[我] || “'”
);
选择= “选择...从...其中的颜色(” ||选择|| “)” ;
西北<<关闭窗口;
)
)
) ;
回复:JSL - 从列表中进行多选以插入 SQL 请求致敬安托万,
你可以这样做:
===========================================
选择 = {"rouge","vert","bleu", "jaune"};
召回标志 = 0;
NW=新窗口(“测试”,
H 列表框( 文本框( "选择颜色" ), y = 列表框( 选择 ) ),
V 列表框(
按钮框(“确定”,
选择 = (y << getselected);
::recall_flag = 1;
西北 << 关闭窗口;
)
)
);
选择=“选择...
从 ...
WHERE 颜色在 'strchoice' 中”;
/* Step1 : 使用循环从列表中创建一个字符串 - Creation d'une chaine de carcatère au format attendu en bouclant sur le nombre de valeurs */
string_color = "('" || 选择[1] || "'";
For( i = 2, i <= Nitems(选择), i++,
字符串颜色 = 字符串颜色 || “,”||选择|| “'”
);
字符串颜色 = 字符串颜色 || “)”;
/* Step2 : 用 string_color 的值替换 stingchoice */
选择=替代(选择,“'strchoice'”,string_color);
===========================================
亲切,
纪尧姆