スクリプトを使用してデータベースへの接続を確立しようとしていますが、これを行うのは初めてです。 次のスクリプトを作成できましたが、接続に失敗するたびに、「Try」関数に含まれるのではなく、デフォルトの「JMP Alert」ポップアップ(スナップショットを参照)が表示されるというバグがあるようです( 「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()を使用できます。
最初のbatchinteractive呼び出しからの戻り値を使用して、2番目に渡すのは、フラグをプッシュ/ポップする正しい方法だと思います。 スクリプトがボタンから実行されるとき、JMPはフラグに対して内部的に「インタラクティブ」をプッシュしていると思います。
ノートから@Wendy_Murphrey 。 コミュニティを検索すると、バッチインタラクティブに関するより多くの履歴が生成されます。
ありがとう@Craige_Hales 。 「BatchInteractive()」が何をするのか正確にはわかりませんが、問題は解決します。 :NS
ああ、すみません、それを省きました。 JMPがバッチモード(バッチ処理データに関する古代の用語、ユーザー入力用の端末なし)で実行されていると判断した場合、それらのアラートはログに書き込まれ、デフォルトの応答が行われます。 それ以外の場合、インタラクティブモードでは、JMPはモーダルダイアログを開いて応答を取得します。 ほとんどの場合、ボタンを押してJSLを開始した場合、インタラクティブな動作は正しいです。 そして、スクリプトが提出された場合(おそらく昼食時に)、「大丈夫ですか?」に戻りたくないでしょう。ダイアログ。 ボタンスクリプトは短い傾向があるため、ヒューリスティックが機能する傾向があります。
将来的には、最初にインタラクティブに接続して、接続が可能であることを証明することをお勧めします。 追加の利点は、JMPが同じ結果に対して正しいJSLを使用してソーステーブルスクリプトを作成することです。 独自のスクリプトを作成してデバッグする代わりに、このスクリプトを独自のスクリプトにコピーできます。
やあ@markbailey 。 はい、その通りです。 ソーステーブルスクリプトを活用するための出発点として間違いなく良いでしょう。 スクリプトはもちろん、JMPに精通していない可能性のある組織内の他の潜在的なユーザーにこのスクリプトの使用法を拡大する必要があるかもしれないので、私は他の方法を模索していました。 アドバイスをありがとう:)