我正在尝试通过脚本建立与数据库的连接,这是我第一次这样做。 我能够创建以下脚本,但似乎有一个错误,每次连接不成功时,都会弹出一个默认的“JMP Alert”(见快照)而不是包含在“Try”函数中(我正在尝试导致弹出窗口的“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>

你好@Mark_Bailey . 是的,你是对的。 绝对是利用 Source 表脚本的良好起点。 我正在探索其他方法,因为我可能需要将此脚本的使用扩展到我的组织中可能不熟悉 JMP 的其他潜在用户,更不用说脚本了。 感谢您的建议:)
我建议,在未来,你首先以交互方式连接,以证明连接是可能的。 另一个好处是 JMP 将使用正确的 JSL 编写源表脚本以获得相同的结果。 您可以将此脚本复制到自己的脚本中,而不是自己编写和调试,
啊,对不起,漏掉了。 如果 JMP 认为它在批处理模式下运行(关于批处理数据的古老术语,没有用于用户输入的终端),那么这些警报将写入日志并做出默认响应。 否则,在交互模式下,JMP 会打开一个模式对话框以获取响应。 大多数情况下,如果按下按钮来启动某些 JSL,则交互行为是正确的。 如果提交了一个脚本(也许是在午餐时间),你宁愿不要回到“好吗?”对话。 按钮脚本往往很短,因此启发式往往会起作用。
谢谢@Craige_Hales . 我不明白“Batch Interactive ()”到底是做什么的,但它解决了这个问题。 
尝试一些变化。
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 . 搜索社区将产生更多关于批处理交互的历史。