<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中獲取它。否則,到現在為止會產生一些令人討厭的後果。