私はSSMSアドインを作成しようとしています。私がしたいことの1つは、新しいクエリウィンドウを作成し、それをプログラム上で(SQLログインのコンテキストで)サーバーインスタンスに接続することです。私は新しいクエリスクリプトウィンドウを作成することはできますが、最初に手作業でオブジェクトエクスプローラなどに接続することなく、接続方法を見つけることができません。言い換えれば、そう新しいクエリスクリプトをSSMSアドインに接続する方法は?
、私は手動でSQLインスタンスにObect Explorerを接続してから、私のアドインその方法を実行する場合、私はこのコードを使用して接続することができますクエリウィンドウを作成します。
ServiceCache.ScriptFactory.CreateNewBlankScript(
Editors.ScriptType.Sql,
ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo,
null);
しかし、私は接続のためのCurrentlyActiveWndConnectionInfo.UIConnectionInfoに依存したくありません。私はプログラムでSQLログインユーザー名とパスワードを設定したいと思います。
誰にもアイデアはありますか?
EDIT:
私はSystem.Data.SqlClient.SqlConnectionのインスタンスに最後のパラメータを設定することで、接続されているクエリウィンドウを得ることができました。しかし、接続は、私がプログラム的に設定しようとしているものの代わりに、最後に接続されたログインのコンテキストを使用します。つまり、接続するユーザーは、[新規クエリー]ボタンをクリックしてオブジェクトエクスプローラーを接続していないときに表示される[接続]ダイアログボックスで選択したものです。
EDIT2:
私が書く(または書き込みを期待して)いANアドイン当社の生産サーバーに対して実行したときに自動的に我々の場合、追跡システムにSQL文と実行結果を送信します。私が持っていた1つの考えは、書き込み権限を取り除き、このアドインを介してログインを割り当てることでした。ユーザーが強制的に#ステートメントをキャンセルするように強制します。もう一つの考えは、ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfoのサーバー名を調べて、実動サーバーのリストと比較することです。一致しても大文字小文字の区別がない場合は、クエリをキャンセルします。
ダイアログに独自の接続を作成しようとしていますか? –
はい、基本的に。ユーザーは、ログイン情報自体を入力することはありません。すでに動作している永続ストレージから取得されます。 – squillman
一度に、SSMSのアドインを作成する方法がないと聞いていました。それは変わったのですか? –