こんにちは、
作成した JMP スクリプトを組織全体で共有する際に問題が発生しています。この問題は、SQL データベースに接続するために使用する資格情報が、他のユーザーが同じデータベースに接続するために使用する資格情報と異なるために発生します。たとえば、サーバー「SQLServer」上のデータベース「Database」に接続するために自分のマシンで実行できるクエリは次のようになります。
Open Database(
"DSN=SQLServer;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
ただし、同僚のマシンで同じテーブルをクエリするために機能するクエリは次のようになります。
Open Database(
"DSN=Database;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
これは、各ユーザーのマシンでデータベース接続が最初にどのように設定されたかに関係していると思います。そのため、組織全体で JMP 内の同じデータベースに接続するためのさまざまな構成があります。そのため、大規模なグループで使用される JMP スクリプトを作成する必要がある場合、複数のユーザーの異なるデータベース資格情報を考慮するのは非常に困難です。
最初にスクリプトを実行するときにユーザーの資格情報を確認する方法を考案しましたが、この方法は、私自身と、スクリプトを送信してそのマシンで使用してもらう相手の両方の資格情報を正確に知っている場合にのみ機能します。これは、上記の 2 つの異なる資格情報セットを使用して 2 つのシンプルで迅速なクエリを実行してスクリプトを開始するという仕組みです。どのクエリがテーブルを返すかに応じて、実行する実際のスクリプトを含む 2 つの異なる式から選択できます。各式には同じスクリプトが含まれますが、データベース接続の資格情報セットが異なります。問題は、資格情報セットが 3 つ以上ある場合、この方法がすべての人に機能するわけではなく、1 か所だけでなく 2 か所以上でエラーを修正する必要がある場合は、スクリプトのバグ修正が困難になることです。
簡単に言うと、異なるデータベース認証情報を持つ複数のユーザーが使用できる 1 つのスクリプトを作成したいと考えています。JMP 16 内で、ユーザーのデータベース認証情報をチェックして、スクリプトを実行する各ユーザーの認証情報に応じて SQL クエリ文字列を動的に変更する方法はありますか?
ありがとう
あなたが探しているのはDSNレス接続です
それは次のようになります:
「DATABASE=[データベース名];DRIVER={SQL Server Native Client 11.0};SERVER=[サーバー名]」
あなたの場合は次のようになります:
「DRIVER={SQL Server Native Client 11.0};SERVER=[サーバー名];Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;」
違いは、dsn を使用するのではなく、接続文字列に接続情報を追加することです。
具体的には、DRIVER=とSERVER=の情報