Re: データベースをクエリするにはどの方法を使用しますか?私は 3 番目のオプションを使用することを好みます。 その理由は (私の意見では) 最も明確で、データベース接続をいつ閉じるかを制御できるからです (これは私が初めて学んだ方法でもあります)。 新しい SQL クエリを使用するのは、クエリをバックグラウンドで実行する場合のみです。 何らかの理由がある場合は、新しい SQL クエリへの移行を検討することもできます (単に「推奨」されているだけでは、新しい SQL クエリに移行するのに十分ではありません)。
Re: データベースをクエリするにはどの方法を使用しますか?ありがとう@jthiあなたの答えに対して、
ドキュメント内で何も見つけることができなかったので、ここで JMP の開発者からの声明を聞きたいです。
@マーティンデメルまた@ブライアンコーコラン?
おそらく、データベースのさまざまな方法についてドキュメントにいくつかの言葉を追加できるでしょうか?
Re: データベースをクエリするにはどの方法を使用しますか?いくつかの追加のドキュメントと適切な動作例は間違いなく役立ちます (おそらく .sqlite データベースを使用して、それを $SAMPLE_IMPORT_DATA に追加しますか?)。
これにはドキュメントがあるようですが、Scripting Index のヘルプ ボタンに適切にリンクされていません。 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 。
これが本当に推奨される方法である場合 (異なるメソッド間のパフォーマンスがテストされているか)、<< フォアグラウンド実行ソリューションを使用するようにスクリプトを変更し始めることができる可能性が高くなります。
Re: データベースをクエリするにはどの方法を使用しますか?新しい SQL クエリでいくつかのテストを行ったところ、OnRunComplete/OnRunCanceled/OnError で使用される関数はグローバル名前空間に存在する必要があるなど、実際には使用しないような方法で実装されたいくつかの優れた機能があるように感じました。 。 おそらく、これらで使用できる非常に一般的な関数をいくつか書くことはできるでしょうが、それでも...それはグローバル名前空間です。
また、データベースを開くまたは SQL を実行するよりも遅いようです (特にクエリの開始前)。これは、複数の小さなクエリを実行する場合に問題になる可能性があります。 おそらく、新しい SQL クエリを使用するときに (ODBC: の追加以外に) 何らかの方法で DNS 文字列を変更する必要があるでしょうか?


おそらく、バックグラウンドでクエリを実行できる必要がない限り、クエリの「古い」方法に固執するでしょう。
Re: データベースをクエリするにはどの方法を使用しますか?こんにちは、ゲオルグ、ジャーモ、
新しい SQL クエリは将来拡張されるメソッドですが、データベース接続の作成と SQL の実行は主にメンテナンス (バグ修正) モードになります。 新しい JMP 18+ の取り組みでは、データベースへのより多くのアクセス方法を作成し、JSL ベースのデータ コネクタが新しい SQL クエリを使用するため、その接続情報を永続化します。 情報がより明確になる可能性があることをドキュメントに知らせます。
これがお役に立てば幸いです、
ブライアン・コーコラン
JMP開発
Re: データベースをクエリするにはどの方法を使用しますか?こんにちは。
私の場合、速度は最も重要ではありません。機能性と、接続文字列とパスワードに関してより安全であるため、「新しい SQL クエリ」が好きです。
「ODBC 接続文字列を非表示にする」設定が設定されていない場合、他の両方の方法ではパスワードが新しいテーブルのソース スクリプトに文字通り入力されます。 「new sql query」は接続文字列を保持しますが、パスワードを「%PWD%」に変更します。
「ODBC 接続文字列を非表示にする」設定が設定されている場合、スクリプト {"source"、"modify query"、"update from database"} が削除されます。jmp がテーブルに接続するのは素晴らしいことなので、これは好きではありません。データの生成方法とデータの更新の可能性。これは私が非常に頻繁に使用するオプションです。
さまざまなスクリプターがいる企業環境では、さまざまなメソッド (したがって、メソッドに応じて異なる設定) に対処するのは困難です。 それはすべてを複雑にしてしまいます。 だからこそ、私は明確なお気に入りを持つのが大好きです。
データベースをクエリするにはどの方法を使用しますか?親愛なるみんな、
私はデータベース クエリをカスタム SQL と組み合わせてよく使用します。 下記のような3つの方法があると思います。
私は「新しい SQL クエリ」が最も気に入っています。これは、最も強力で安全だからです (パスワード ... を参照)。
残念ながら、ODBC 接続文字列の非表示に関する動作は JMP17 で変更されましたが、修正される予定です。
「ODBC 接続文字列を非表示にする」設定での JMP17 の動作: 接続文字列... - JMPユーザーコミュニティ
シッチェスで開催された Discovery Summit Europe の開発者から聞いたところによると、新しい SQL クエリというメソッドが推奨されており、より安定していて、他のメソッドは両方とも時代遅れだそうです。 しかし、速度に問題があるとも聞きました。 ここでは、この推奨事項についてもドキュメントでも読んだことがありません。
次のことについて話し合いたいと思います。
どのような方法を使用しますか?またその理由は何ですか?
そして、どんな経験をしましたか?
よろしくお願いします、
ゲオルグ
名前のデフォルトは Here( 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 << run foreground(); // オープン データベースはワンライナーです。 // 「ODBC 接続文字列を非表示にする」が設定されていない場合、プレーン パスワードをテーブル スクリプトに保存します。 dt_open = open database(cnx_str, sql_str, "Open Database"); // SQL では、ステートメントを送信する前にデータベースを開く必要があります。 // 「ODBC 接続文字列を非表示にする」が設定されていない場合、プレーンなパスワードがテーブル スクリプトに保存されます。 dbc=create data connection(cnx_str); dt_execute = sql を実行(dbc, sql_str, "SQL を実行");データベース接続(dbc)を閉じます。 // イオス自動化とスクリプト作成