안녕하세요,
저는 제 조직 전체에서 제가 만든 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 없는 연결입니다
그것은 다음과 같습니다:
"DATABASE=[데이터베이스 이름];DRIVER={SQL Server Native Client 11.0};SERVER=[서버 이름]"
귀하의 경우에는 다음과 같습니다.
"DRIVER={SQL Server Native Client 11.0};SERVER=[서버 이름];Trusted_Connection=예;APP=JMP;WSID=MYWSID;DATABASE=데이터베이스;"
차이점은 DSN을 사용하는 대신 연결 정보를 연결 문자열에 추가한다는 것입니다.
구체적으로 DRIVER= 및 SERVER= 정보