Ciao,
Sto riscontrando un problema con la condivisione degli script JMP che creo nella mia organizzazione. Il problema nasce dal fatto che le credenziali che uso per connettermi al nostro database SQL sono diverse dalle credenziali che altri usano per connettersi allo stesso database. Ad esempio, una query che posso eseguire sulla mia macchina per connettermi al database "Database" sul server "SQLServer", apparirà così:
Open Database(
"DSN=SQLServer;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Tuttavia, la query che funzionerebbe sulla macchina del mio collega per interrogare la stessa tabella è la seguente:
Open Database(
"DSN=Database;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Capisco che questo ha a che fare con il modo in cui le connessioni al database sono state inizialmente impostate sulla macchina di ogni utente, quindi ci sono parecchie configurazioni diverse per connettersi allo stesso database all'interno di JMP nella mia organizzazione. Ciò rende piuttosto difficile tenere conto delle diverse credenziali del database di diverse persone ogni volta che devo creare uno script JMP che verrà utilizzato da un gruppo numeroso.
Ho ideato un modo per controllare le credenziali dell'utente quando eseguo inizialmente uno script, tuttavia questo metodo funziona solo quando conosco le credenziali esatte sia mie che della persona a cui sto inviando lo script affinché lo utilizzi sulla sua macchina. Il modo in cui funziona è questo: avvio lo script eseguendo due query semplici e rapide utilizzando i due diversi set di credenziali descritti sopra. A seconda della query che restituisce una tabella, posso quindi scegliere tra due diverse espressioni contenenti lo script effettivo che voglio eseguire, dove ogni espressione contiene lo stesso script, solo con i diversi set di credenziali nelle connessioni al database. Il problema è che se ci sono più di due set di credenziali, questo metodo non funzionerà comunque per tutti e diventa anche difficile correggere i bug dello script se devo correggere un errore in due o più punti invece che in uno solo.
Per farla breve, voglio creare un singolo script che possa essere utilizzato da più persone che hanno tutte credenziali di database diverse. C'è un modo in JMP 16 per uscire e controllare le credenziali di database dell'utente per modificare dinamicamente le stringhe di query SQL in base a queste credenziali per ogni utente diverso che esegue lo script?
Grazie
Quello che stai cercando è una connessione senza DSN
che sembra:
"DATABASE=[NOME DEL DATABASE];DRIVER={SQL Server Native Client 11.0};SERVER=[NOME DEL SERVER]"
Nel tuo caso potrebbe apparire così:
"DRIVER={SQL Server Native Client 11.0};SERVER=[NOME DEL SERVER];Trusted_Connection=Sì;APP=JMP;WSID=MYWSID;DATABASE=Database;"
La differenza è che le informazioni di connessione vengono aggiunte alla stringa di connessione anziché utilizzare un DSN.
In particolare, le informazioni DRIVER= e SERVER=