Hola,
Estoy teniendo un problema al compartir los scripts JMP que creo en mi organización. El problema surge porque las credenciales que uso para conectarme a nuestra base de datos SQL son diferentes a las credenciales que usan otros para conectarse a la misma base de datos. Por ejemplo, una consulta que puedo ejecutar en mi máquina para conectarme a la base de datos "Database" en el servidor "SQLServer", se verá así:
Open Database(
"DSN=SQLServer;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Sin embargo, la consulta que funcionaría en la máquina de mi colega para consultar la misma tabla se ve así:
Open Database(
"DSN=Database;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Entiendo que esto tiene algo que ver con la forma en que se configuraron inicialmente las conexiones de la base de datos en la máquina de cada usuario, por lo que hay bastantes configuraciones diferentes para conectarse a la misma base de datos dentro de JMP en mi organización. Esto hace que sea bastante difícil tener en cuenta las diferentes credenciales de la base de datos de varias personas cada vez que necesito crear un script de JMP que será utilizado por un grupo grande.
He ideado una forma de comprobar las credenciales del usuario cuando se ejecuta inicialmente un script, sin embargo, este método solo funciona cuando conozco las credenciales exactas tanto de mí como de la persona a la que le estoy enviando el script para que lo use en su máquina. Cómo funciona esto es, inicio el script ejecutando dos consultas simples y rápidas utilizando los dos conjuntos diferentes de credenciales descritos anteriormente. Dependiendo de qué consulta devuelva una tabla, puedo elegir entre dos expresiones diferentes que contienen el script real que quiero ejecutar, donde cada expresión contiene el mismo script, solo que con los diferentes conjuntos de credenciales en las conexiones de la base de datos. El problema es que, si hay más de dos conjuntos de credenciales, este método aún no funcionará para todos, y también se vuelve difícil corregir errores del script si tengo que corregir un error en dos o más lugares en lugar de solo uno.
En resumen, quiero crear un único script que puedan utilizar varias personas que tengan distintas credenciales de base de datos. ¿Existe alguna forma en JMP 16 de verificar las credenciales de base de datos del usuario para cambiar dinámicamente las cadenas de consulta SQL en función de estas credenciales para cada usuario diferente que ejecute el script?
Gracias
Lo que estás buscando es una conexión sin DSN
Esto parece:
"DATABASE=[NOMBRE DE LA BASE DE DATOS];DRIVER={SQL Server Native Client 11.0};SERVER=[NOMBRE DEL SERVIDOR]"
En tu caso podría verse así:
"CONTROLADOR={SQL Server Native Client 11.0};SERVIDOR=[NOMBRE DEL SERVIDOR];Trusted_Connection=Sí;APP=JMP;WSID=MYWSID;DATABASE=Base de datos;"
La diferencia es que usted agrega la información de conexión a la cadena de conexión en lugar de usar un DSN.
Específicamente, la información de DRIVER= y SERVER=