- - PR -
SQLServerのデータベース削除について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-29 12:08
SQLServerのデータベースの内容を確認し、データベースを削除するプログラムを作成しています。
その際、データベースの内容を確認するために、SQLConnectionにてOpenし確認後、Close→Disposeをおこなっているのですが、SQLServerのプロセス情報では状態がSloopingのままのこってしまい、データベース使用中のため削除できない状態です。 ちなみに、そのプログラムを終了させるとプロセス情報から消えデータベースは削除できる状態になるのですが、同じプログラム内で確認→削除を行いたいでのSQLConnectionをClose→Dispose後SQLServerのプロセス情報からSleepingの状態を消すことはできないでしょうか? わかられる方ご教授願います。 WindowsXP Pro SP2 SQLserver2000 SP3 VB.NET2003 FW1.1 SP1 | ||||
|
投稿日時: 2006-03-29 12:37
すみません、色んなパターンで読み取れる文章です。 「その際」が "どの際" なのかがわかりませんでした。 表題にある「データベース削除」を試みて "その際" なのでしょうか? それとも、"その際の間際の処理" は別の処理を指すのでしょうか? というのも、後の方でも「削除できない状態」とあるので、 どちらで削除しようとしているのかがわからないのです。 途中でインスタンスの破棄の話題もありますし、先に何かの作業をした後とも読み取れるわけです。 説明が面倒であれば、ミニマム コードを [code] を使用して貼り付けてください。 多分、その方が読解できます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-29 12:42
こんにちは。
Sleeping 状態のプロセスが残る原因は Connection Pooling 機能だと思います。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/cpconconnectionpoolingforsqlservernetdataprovider.asp Pooling キーワードを false に設定すれば接続の Close 時にログアウトされます。 | ||||
|
投稿日時: 2006-03-29 12:43
ConnectionをCloseしてもコネクションプーリングが有効のため、実際には切断されません。
接続文字列で、 Pooling=False; を指定して、コネクションプーリングを無効にするとどうなりますか? | ||||
|
投稿日時: 2006-03-29 13:38
じゃんぬねっとさん、ueさん、burton999さん返答有難うございます。
じゃんぬねっとさん
わかりにくくてすみませんでした。 「その際」はデータベースの削除を試みたときに、削除前に接続した情報がSQLserver上にSleeping状態となって残っているために削除できないということです。 接続文字列で、Pooling=False;を指定することで解決しました。 有難うございました。 [ メッセージ編集済み 編集者: HIRO 編集日時 2006-03-29 13:49 ] | ||||
|
投稿日時: 2006-03-29 13:47
丁寧にありがとうございます、理解できました。 どうも着眼点を誤ったようです。 Sleeping に着眼すべきだったようですね... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1