全部,
我有一个脚本可以拉取世界各地的各种数据库。 此脚本是计划和自动化的。 这意味着它会做它所做的事情,保存所有表,关闭 JMP,然后完成任务。
但是,有时一两个 DB 没有响应。 LDAP 服务器已关闭,不接受我的密码或某些数据库维护等。
在这种情况下,我会得到一个这样的弹出窗口:

即使发生这种情况时我在场并单击“取消”,脚本也会在未完成的情况下退出。
我有从封装在 try\catch 块中的 DB 中提取数据的功能 - 当我手动单击“取消”按钮时似乎没有帮助...... 但更重要的是 - 在这种情况下我如何在无人监督的情况下运行脚本? 我如何告诉它 - 如果您无法连接到数据库之一 - 让它去,从其余的数据库中提取数据并处理您拥有的... 不要仅仅因为其中一个数据库没有响应就挂断整个脚本...... 我如何摆脱那个弹出窗口并认为它尝试失败,移动到 catch 块并继续执行脚本?
这是负责此的脚本部分:
DBPaths = [
"Server1" => "ODBC:DSN=...PORT=5432;",
"Server2" => "ODBC:DSN=...PORT=5432;",
"Server3" => "ODBC:DSN=...PORT=5432;",
"Server4" => "ODBC:DSN=...PORT=5432;",
"Server5" => "ODBC:DSN=...PORT=5432;"];
myQuery = Function( {serverDBPath, server},
New SQL Query(
Version( 130 ),
Connection( serverDBPath ),
QueryName( server ),
Select( ... ),
From( ... ),
Where( ... ),
PostQueryScript( ... )
) << Run Foreground()
);
myDTs = {};
For Each( {{server, DBPath}, index}, DBPaths,
Show( server, DBPath, index );
Try( myDTs[index] = myQuery( DBPath, server ), writeToLog( server || " Query error... Using: " || DBPath ||" Error message: "||exception_msg[1] ) );
);谢谢,
M。