回复: 查詢數據庫該走哪條路?我更喜歡使用第三個選項。 原因是最明確的(在我看來),它讓我可以控制何時關閉數據庫連接(這也是我學到的第一個)。 我使用新 SQL 查詢的唯一情況是當我想在後台運行查詢時。 如果有某種原因,我可以考慮轉向新的 SQL 查詢(僅僅“推薦”絕對不足以讓我轉向它)。
回复: 查詢數據庫該走哪條路?謝謝@jthi為了你的回答,
我很想在這裡聽到 JMP 開發人員的聲明,因為我在文檔中找不到任何內容,
@馬丁德梅爾或者@briancorcoran ?
也許可以在文檔中添加一些關於數據庫不同方式的內容?
回复: 查詢數據庫該走哪條路?一些額外的文檔和正確的工作示例肯定會很有用(也許使用 .sqlite 數據庫並將其添加到 $SAMPLE_IMPORT_DATA?)。
這似乎有一些文檔,但在腳本索引幫助按鈕中沒有正確鏈接https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-messages.shtml#然後我們有這個https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-functions.shtml#ww5089351 。
如果這確實是首選方法(不同方法之間的性能是否經過測試?)我很可能可以開始更改我的腳本以使用 << Run Foreground 解決方案。
回复: 查詢數據庫該走哪條路?我已經用 New SQL Query 做了一些測試,我覺得它確實有一些很好的功能,這些功能是以我不會真正使用它們的方式實現的,例如與 OnRunComplete/OnRunCanceled/OnError 一起使用的函數必須位於全局命名空間中。 也許我可以編寫一些非常通用的函數,可以與這些函數一起使用,但仍然......它是全局名稱空間。
它似乎也比打開數據庫或執行 SQL 慢(尤其是在查詢開始之前),如果您要運行多個小型查詢,這可能會成為問題。 也許我在使用新的 SQL 查詢時必須以某種方式修改我的 dns 字符串(除了添加 ODBC:)?


我很可能會堅持使用“舊的”查詢方法,除非我需要能夠在後台運行查詢。
回复: 查詢數據庫該走哪條路?嗨,格奧爾格,賈莫,
新的SQL查詢是未來將得到增強的方法,而創建數據庫連接和執行sql將主要處於維護(錯誤修復)模式。 新的 JMP 18+ 計劃圍繞創建更多數據庫訪問方法並將連接信息保留為基於 JSL 的數據連接器將使用新的 SQL 查詢。 我會讓文檔知道信息可以更清晰。
我希望這有幫助,
布賴恩·科科倫
JMP開發
回复: 查詢數據庫該走哪條路?嗨,jthi,
就我而言,速度並不是最重要的,我喜歡“新的sql查詢”,因為它的功能,並且因為它在連接字符串和密碼方面更安全。
如果未設置首選項“隱藏 ODBC 連接字符串”,則其他兩種方法都會將密碼逐字放入新表的源腳本中。 “new sql query”保留連接字符串,但將密碼更改為“%PWD%”。
如果設置了首選項“隱藏 ODBC 連接字符串”,它將刪除腳本 {“源”,“修改查詢”,“從數據庫更新”},我不喜歡這個,因為 jmp 使用 jmp 連接表很酷數據生成的方式以及更新數據的可能性,這是我經常使用的選項。
在具有不同腳本編寫者的公司環境中,很難處理不同的方法(因此根據方法不同的偏好設置)。 它讓一切變得複雜。 這就是為什麼我喜歡有一個明確的最愛。
查詢數據庫該走哪條路?各位,
我經常使用數據庫查詢,並結合自定義 sql。 我知道,有3種方法,如下所示。
我最喜歡“新的sql查詢”,因為它最強大,而且更安全(見密碼...)。
不幸的是,JMP17 中有關隱藏 ODBC 連接字符串的行為已更改,但將會得到糾正:
首選項“隱藏 ODBC 連接字符串”集上的 JMP17 行為:連接字符串... - JMP 用戶社區
在錫切斯的歐洲探索峰會上,開發人員告訴我,新的 sql 查詢方法是推薦的方法,更穩定,其他兩種方法都已經過時了。 但我也聽說有速度問題。 我從來沒有讀過這個建議,也沒有在文檔中讀過。
我想討論的是:
您使用什麼方法,為什麼?
你有哪些經歷?
謝謝並致以最誠摯的問候,
格奧爾格
名稱默認為此處( 1 ); // 3 種不同的數據庫訪問方式 // 常量 // 這適用於所有 Oracle DB 的 sql_str = "select * from Dual"; // 需要適應您的數據庫 cnx_str ="DSN=MYDSN_NAME;UID=USERNAME;PWD=PASSWORD"; // 新的 sql 查詢需要以“ODBC:”開頭的連接字符串 // 手冊中沒有好的文檔(腳本指南和 JMP 幫助) qry_obj = New SQL Query( query name("New SQL Query"), connection( " ODBC:"||cnx_str ), 自定義sql( sql_str ) ); dt_sqlquery = qry_obj << 運行前台(); // 打開數據庫是一個單行 // 未設置“隱藏 ODBC 連接字符串”,它將明文密碼保存到表腳本中 dt_open = open database(cnx_str, sql_str, "Open Database"); // 預計 sql 需要在發送語句之前打開數據庫 // 未設置“隱藏 ODBC 連接字符串”,它將明文密碼保存到表腳本中 dbc=create Database Connection(cnx_str); dt_execute = 執行sql(dbc, sql_str, "執行SQL");關閉數據庫連接(dbc); // EOS自動化和腳本編寫