Hallo,
Ich habe ein Problem mit der Freigabe der von mir erstellten JMP-Skripte in meiner Organisation. Das Problem entsteht dadurch, dass die Anmeldeinformationen, die ich zum Herstellen einer Verbindung zu unserer SQL-Datenbank verwende, sich von den Anmeldeinformationen unterscheiden, die andere zum Herstellen einer Verbindung zu derselben Datenbank verwenden. Eine Abfrage, die ich beispielsweise auf meinem Computer ausführen kann, um eine Verbindung zur Datenbank „Database“ auf dem Server „SQLServer“ herzustellen, sieht folgendermaßen aus:
Open Database(
"DSN=SQLServer;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Die Abfrage, mit der auf dem Rechner meines Kollegen dieselbe Tabelle abgefragt werden könnte, sieht jedoch folgendermaßen aus:
Open Database(
"DSN=Database;Trusted_Connection=Yes;APP=JMP;WSID=MYWSID;DATABASE=Database;",
"SELECT * FROM [].Table"
)
Ich verstehe, dass dies damit zu tun hat, wie die Datenbankverbindungen ursprünglich auf den Computern der einzelnen Benutzer eingerichtet wurden. Daher gibt es in meiner Organisation ziemlich viele verschiedene Konfigurationen für die Verbindung mit derselben Datenbank innerhalb von JMP. Dies macht es ziemlich schwierig, die unterschiedlichen Datenbankanmeldeinformationen mehrerer Personen zu berücksichtigen, wenn ich ein JMP-Skript erstellen muss, das von einer großen Gruppe verwendet wird.
Ich habe eine Methode entwickelt, um die Anmeldeinformationen des Benutzers beim ersten Ausführen eines Skripts zu überprüfen. Diese Methode funktioniert jedoch nur, wenn ich sowohl meine eigenen Anmeldeinformationen als auch die der Person kenne, der ich das Skript sende, damit sie es auf ihrem Computer verwenden kann. Das funktioniert so: Ich starte das Skript, indem ich zwei einfache und schnelle Abfragen mit den beiden oben beschriebenen unterschiedlichen Anmeldeinformationen ausführe. Je nachdem, welche Abfrage eine Tabelle zurückgibt, kann ich dann aus zwei verschiedenen Ausdrücken wählen, die das eigentliche Skript enthalten, das ich ausführen möchte, wobei jeder Ausdruck dasselbe Skript enthält, nur mit den unterschiedlichen Anmeldeinformationen für die Datenbankverbindungen. Das Problem ist, dass diese Methode bei mehr als zwei Anmeldeinformationen trotzdem nicht für alle funktioniert und es auch schwierig wird, Fehler im Skript zu beheben, wenn ich einen Fehler an zwei oder mehr Stellen statt nur an einer beheben muss.
Kurz gesagt, ich möchte ein einzelnes Skript erstellen, das von mehreren Personen mit unterschiedlichen Datenbankanmeldeinformationen verwendet werden kann. Gibt es in JMP 16 eine Möglichkeit, die Datenbankanmeldeinformationen des Benutzers zu überprüfen und die SQL-Abfragezeichenfolgen abhängig von diesen Anmeldeinformationen für jeden Benutzer, der das Skript ausführt, dynamisch zu ändern?
Danke
Was Sie suchen, ist eine DSN-lose Verbindung
das sieht so aus:
„DATABASE=[DER DATENBANKNAME];TREIBER={SQL Server Native Client 11.0};SERVER=[DER SERVERNAME]“
In Ihrem Fall könnte es so aussehen:
„TREIBER={SQL Server Native Client 11.0};SERVER=[DER SERVERNAME];Trusted_Connection=Ja;APP=JMP;WSID=MYWSID;DATABASE=Datenbank;“
Der Unterschied besteht darin, dass Sie die Verbindungsinformationen zur Verbindungszeichenfolge hinzufügen, anstatt einen DSN zu verwenden.
Insbesondere die DRIVER= und die SERVER= Informationen