<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我在Update函数中发现了一个潜在危险的“bug”。 使用“按匹配列”更新数据表时,如果省略最后的“s”,则此脚本将按行更新。 这是一个容易犯的错误,并且很难捕获(因为没有抛出错误)。 这可以在下一次JMP更新中解决吗?在JMP12上发现了此问题。
谢谢!!
名称默认为此处 ( 1 ) ;
DT = 打开 ( “$ SAMPLE_DATA / Big Class.jmp” ) ;
DT << 新栏目 ( “唯一身份” ,
字符 ,
公称 ,
式 ( : 名称 || “,” || 烧焦 ( : 年龄 ) || “,” || : 性别 || “,” || 烧焦 ( : 高度 ) || “,” || 烧焦 ( : 重量 ) )
) ;
DT << 新栏目 ( “数” ,数字 ,连续 ,格式 ( “最好” , 12 ) ,式 ( 序列 ( 1 , N行 () , 1 , 1 ) ) ) ;
柱 ( DT , “唯一身份” ) << 删除公式 ;
柱 ( DT , “数” ) << 删除公式 ;
DT2 = DT << 子集 ( 列 ( “唯一身份” , “数” ) ) ;
DT2 << 分类 ( 替换表 ,通过 ( : 数 ) ,订购 ( 降序 ) ) ;
DT2 << 新栏目 ( “一些专栏” ,字符 ,公称 ,设置每个值 ( “X” ) ) ;
DT << 更新 ( 同 ( DT2 ) ,通过匹配列 ( : 唯一身份 == : 唯一身份 ) ) ;
// dt << Update(With(dt2),By Matching Columns(:UniqueID ==:UniqueID));
DT << 把窗户带到前面 ;
JMP中要求对JMP平台,元素和消息采用特定,精确的措辞。 您必须认真对待语法的正确规范。
你好机器人 ,
我可以确认它也发生在JMP11中。
即使您使用“匹配列”,问题仍然存在。事实上,不是“通过匹配列”或“匹配列”的任何字母组合都会导致JMP忽略它并按行更新(默认情况除非由列说明)。
DT << 更新 ( 同 ( DT2 ) ,匹配列 ( : 唯一身份 == : 唯一身份 ) ) ; //仍然按行匹配
// dt << 更新 ( 同 ( DT2 ) ,匹配列 ( : 唯一身份 == : 唯一身份 ) ) ; //这很好 - 按列
// DT << 更新 ( 同 ( DT2 ) , Msfgsdfsfgatvvch专栏 ( : 唯一身份 == : 唯一身份 ) ) ; //也没有错误消息 - 按行匹配
确实是一种威胁。
唯一的安慰是包括我在内的大多数人几乎从未写过更新命令,只是在手动完成之后从JMP中获取它。否则,到现在为止会产生一些令人讨厌的后果。