你好,
我在整個組織中共享我創建的 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 腳本時,這使得考慮幾個人的不同資料庫憑證變得非常困難。
我設計了一種在最初運行腳本時檢查使用者憑證的方法,但是只有當我知道我自己以及我向其發送腳本以供他們在自己的電腦上使用的人的確切憑證時,此方法才有效。其工作原理是,我透過使用上述兩組不同的憑證來執行兩個簡單而快速的查詢來啟動腳本。然後,根據哪個查詢返回表,我可以從包含要運行的實際腳本的兩個不同表達式中進行選擇,其中每個表達式包含相同的腳本,只是在資料庫連接處設定了不同的憑證。問題是,如果有兩個以上的憑證集,那麼這種方法仍然不適用於所有人,如果我必須修復兩個或多個位置而不是一個位置的錯誤,那麼修復腳本的錯誤也會變得很困難。
長話短說,我想創建一個腳本,可供具有不同資料庫憑證的多個人使用。 JMP 16 中是否有任何方法可以檢查使用者的資料庫憑證,以根據執行腳本的每個不同使用者的這些憑證動態更改 SQL 查詢字串?
謝謝
您正在尋找的是無 DSN 的連接
看起來像:
“資料庫=[資料庫名稱];驅動程式={SQL Server Native Client 11.0};伺服器=[伺服器名稱]”
在你的情況下,它可能看起來像:
“DRIVER={SQL Server Native Client 11.0};SERVER=[伺服器名稱];Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=資料庫;”
不同之處在於,您將連接資訊新增至連接字串中,而不是使用 dsn。
具體來說,DRIVER=和SERVER=訊息