J'essaie de créer un complément SSMS. Une des choses que je veux faire est de créer une nouvelle fenêtre de requête et de la connecter par programme à une instance de serveur (dans le contexte d'une connexion SQL). Je peux très bien créer la nouvelle fenêtre de script de requête, mais je ne trouve pas comment la connecter sans d'abord se connecter manuellement à autre chose (comme l'Explorateur d'objets).Comment connecter un nouveau script de requête avec le complément SSMS?
En d'autres termes, si je me connecte obect Explorer une instance SQL manuellement, puis exécutez la méthode de mon add-in qui crée la fenêtre de requête, je peux le connecter en utilisant ce code:
ServiceCache.ScriptFactory.CreateNewBlankScript(
Editors.ScriptType.Sql,
ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo,
null);
Mais Je ne veux pas compter sur CurrentlyActiveWndConnectionInfo.UIConnectionInfo pour la connexion. Je souhaite définir un nom d'utilisateur et un mot de passe SQL Login par programme.
Quelqu'un a-t-il des idées?
EDIT:
J'ai réussi à obtenir la fenêtre de requête connecté en définissant le dernier paramètre à une instance de System.Data.SqlClient.SqlConnection. Cependant, la connexion utilise le contexte de la dernière connexion qui a été connectée au lieu de ce que j'essaye de définir par programmation. C'est-à-dire, l'utilisateur qu'il connecte est celui qui est sélectionné dans la boîte de dialogue de connexion que vous obtenez lorsque vous cliquez sur le bouton Nouvelle requête et n'avez pas un Object Explorer connecté.
EDIT2:
J'écris (ou dans l'espoir d'écrire) un pour envoyer automatiquement ajouter dans une instruction SQL et les résultats d'exécution à notre système de suivi des dossiers lorsqu'il est exécuté sur nos serveurs de production. Une idée que j'ai eu était de supprimer les permissions d'écriture et d'assigner des connexions à travers ce complément qui forcera aussi l'utilisateur à entrer un cas # annulant l'instruction si elle n'est pas là. Une autre pensée que je viens de faire est d'inspecter le nom du serveur dans ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo et de le comparer à notre liste de serveurs de production. Si cela correspond et qu'il n'y a pas de cas, alors annulez la requête.
vous essayez de créer votre propre connexion à la boîte de dialogue? –
Oui, essentiellement. L'utilisateur n'entre pas les informations de connexion lui-même. Il sera récupéré du stockage persistant, que j'ai déjà travaillé. – squillman
À un moment donné, j'avais entendu dire qu'il n'y avait aucun moyen de créer un complément pour SSMS. Est-ce que cela a changé? –