我正在嘗試通過腳本建立與數據庫的連接,這是我第一次這樣做。 我能夠創建以下腳本,但似乎有一個錯誤,每次連接不成功時,都會有一個默認的“JMP 警報”彈出窗口(參見快照)而不是包含在“嘗試”函數中(我正在嘗試使用導致彈出的錯誤數據庫名稱“TEST”。 有沒有辦法控制這個?
此外,是否有將 SQL 合併到 JMP 腳本的良好閱讀材料(例如基本最佳實踐)?
非常感謝!
names default to here(1);
//Standard SQL syntax string to create database connection from JMP
DB.SQL = "DSN="||"DSN_Name" ||";Description=" || "DSN_Desc" || ";
Trusted_Connection=Yes;APP=JMP;DATABASE="|| "DB_Name" || ";";
//Expression to arrange the User Interface of PODS setup
//Require users to input Database Source Name (DSN Name), Database Source Description (DSN Description) and Database Name
DB_Connection.UI = expr(
Hlistbox(spacerbox(size(5,5)),
Vlistbox(align("right"),spacerbox(size(5,5)),
vb1_1 = vlistbox(align("left"),
panelbox("Insert PODS Connection Info",
lineupbox(ncol(2),
Textbox("DSN Name : "),TEB_DSN_Name = Texteditbox("",set width(150)),
Textbox("DSN Description : "),TEB_DSN_Desc = Texteditbox("",set width(150)),
Textbox("Database Name : "),TEB_DB_Name = Texteditbox("",set width(150))
)
),
spacerbox(size(5,5)),
temp1_1 = Textbox("PODS Connection Status: ")
),
spacerbox(size(3,3)),
Test_DB_Connection.button,
spacerbox(size(3,3)),
button box(" Cancel ",currentwindow()<<CLOSE window=""></CLOSE>

嘗試一些變化。
bi = Batch Interactive( 1 );
Try(
db = Create Database Connection( DB.SQL_Updated );
If( Is Missing( db ),
Print( "unable..." ) // I think this is the right way to notice the error
);
,
Print( "Unable to connect to Database" ) // I think this may not happen?
);
Batch Interactive( bi );
如果日誌消息有問題,您可以使用 logcapture()。
我認為使用第一個批處理交互調用的返回值傳遞給第二個是推送/彈出標誌的正確方法。 我認為當從按鈕運行腳本時,JMP 在內部為標誌推送“交互式”。
筆記從@Wendy_Murphrey . 搜索社區將產生更多關於批處理交互的歷史記錄。
謝謝@Craige_Hales . 我不明白“Batch Interactive ()”到底是做什麼的,但它解決了這個問題。 
啊,對不起,忽略了這一點。 如果 JMP 認為它在批處理模式下運行(關於批處理數據的古老術語,沒有用於用戶輸入的終端),那麼這些警報將寫入日誌並進行默認響應。 否則,在交互模式下,JMP 會打開一個模態對話框以獲取響應。 大多數情況下,如果按下按鈕來啟動某些 JSL,交互行為是正確的。 如果提交了腳本(也許是在午餐時間),您寧願不回复“還好嗎?”對話。 按鈕腳本往往很短,因此啟發式方法往往有效。
我建議,在未來,你首先以交互方式連接,以證明連接是可能的。 另一個好處是 JMP 將使用正確的 JSL 編寫源表腳本以獲得相同的結果。 您可以將此腳本複製到自己的,而不是自己編寫和調試,
你好@markbailey . 是的,你是對的。 絕對是利用 Source 表腳本的一個很好的起點。 我正在探索其他方法,因為我可能需要將此腳本的使用擴展到我的組織中可能不熟悉 JMP 的其他潛在用戶,更不用說腳本了。 感謝您的建議:)