<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>SQLServer</title><link>http://blogs.wankuma.com/pandora/category/646.aspx</link><description>SQLServerに関する話題</description><managingEditor>pandora</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>pandora</dc:creator><title>データベースからの変更通知(SqlDependency)の調査結果 Part02</title><link>http://blogs.wankuma.com/pandora/archive/2008/12/15/163776.aspx</link><pubDate>Mon, 15 Dec 2008 12:18:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2008/12/15/163776.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/163776.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2008/12/15/163776.aspx#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/163776.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/163776.aspx</trackback:ping><description>&lt;P&gt;SqlDependencyを使ったサンプルがないか調べたらマイクロソフトサポートに下記のサイトが&lt;/P&gt;
&lt;P&gt;あったので、それを参考にしながら調査をしていきました。&lt;/P&gt;
&lt;P&gt;参考サイト&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C# Windows アプリケーションが SQL Server 2005 クエリ通知を実装します。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;A href="http://support.microsoft.com/kb/555893/ja"&gt;http://support.microsoft.com/kb/555893/ja&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;使用するデータベースは、ID,名前,郵便番号だけという簡単なテーブルを作成して実行しました。&lt;/P&gt;
&lt;P&gt;一応、サンプルコードを参考にしながら作成し動作させると、通知イベントは発生するが、&lt;/P&gt;
&lt;P&gt;その通知イベントの情報(Info)が常に SqlNotificationInfo.Invalid になってしまう。&lt;/P&gt;
&lt;P&gt;そのため、どのような変更がなされたのかが判断できない。&lt;/P&gt;
&lt;P&gt;これは、なにかおかしいと思い、色々調べてみようと思いましたが、&lt;/P&gt;
&lt;P&gt;そういや「えムナウさん」が勉強会の時になにか注意しなければいけないことを&lt;/P&gt;
&lt;P&gt;話していたことを思い出しその時の資料を探しペラペラめくる。&lt;/P&gt;
&lt;P&gt;あったあった「プログラムの注意点」に"SELECT文はスキーマ名から指定する"&lt;/P&gt;
&lt;P&gt;という言葉が。&lt;/P&gt;
&lt;P&gt;そういうことでテーブル名にdbo.を付加して再度実行。&lt;/P&gt;
&lt;P&gt;　変更前:"select Id,Name,Zip from ResarchTable_1";&lt;BR&gt;　変更後:"select Id,Name,Zip from dbo.ResarchTable_1";&lt;/P&gt;
&lt;P&gt;結果、うまくイベントの情報がとれました。(^^)v&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/163776.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>データベースからの変更通知(SqlDependency)の調査結果 Part01</title><link>http://blogs.wankuma.com/pandora/archive/2008/12/10/163303.aspx</link><pubDate>Wed, 10 Dec 2008 15:23:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2008/12/10/163303.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/163303.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2008/12/10/163303.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/163303.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/163303.aspx</trackback:ping><description>&lt;P&gt;最近少し暇になってきたので、以前から興味があったSqlDependencyクラスを&lt;BR&gt;利用してデータベースからの変更通知を受けとる仕組みを昨日から調査しています。&lt;/P&gt;
&lt;P&gt;どうやら SQL Server Service Broker を利用しているみたいで、まず最初に対象&lt;BR&gt;となるデータベースのに対して Service Broker を有効にしないとダメみたいです。&lt;/P&gt;
&lt;P&gt;設定にする方法は、下記になります。&lt;/P&gt;
&lt;P&gt;　(1)スクリプトの場合&lt;BR&gt;　　・有効にする設定&lt;BR&gt;　　　ALTER Database データベース名 SET ENABLE_BROKER&lt;BR&gt;　　・無効にする設定&lt;BR&gt;　　　ALTER Database データベース名 SET DISABLE_BROKER&lt;BR&gt;　(2)SMOの場合&lt;BR&gt;　　　Server server = new Server(サーバー名);&lt;BR&gt;　　　Database database = server.Databases[データベース名];&lt;BR&gt;　　　・有効にする設定&lt;BR&gt;　　　　database.DatabaseOptions.BrokerEnabled = true;&lt;BR&gt;　　・無効にする設定&lt;BR&gt;　　　　database.DatabaseOptions.BrokerEnabled = false;&lt;BR&gt;　　　database.Alter();&lt;/P&gt;
&lt;P&gt;　SMOの詳細は、下記を参照して下さい。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://blogs.wankuma.com/pandora/archive/2006/10/26/42581.aspx"&gt;http://blogs.wankuma.com/pandora/archive/2006/10/26/42581.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ほんとうに久々の書き込みです。(^_^;)&lt;BR&gt;わんくまの勉強会にも顔をだせていない。(&amp;gt;_&amp;lt;)&lt;BR&gt;来年は少なくとも３回は参加しようと思う。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/163303.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>インストールトラブル対応で大忙しでした。</title><link>http://blogs.wankuma.com/pandora/archive/2007/11/13/108061.aspx</link><pubDate>Tue, 13 Nov 2007 15:29:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/11/13/108061.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/108061.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/11/13/108061.aspx#Feedback</comments><slash:comments>402</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/108061.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/108061.aspx</trackback:ping><description>&lt;P&gt;先月の下旬に店頭販売の業務ソフトを発売しました。&lt;/P&gt;
&lt;P&gt;その業務ソフトのインストール時に SQL Server2005 Express もインストールするのだが、&lt;/P&gt;
&lt;P&gt;これが素直に正常にインストール終了してくれなくてそのサポートで最近まで大忙しでした。&lt;/P&gt;
&lt;P&gt;購入者のマシン環境がまちまちで色々なエラーメッセージに遭遇しました。&lt;/P&gt;
&lt;P&gt;原因及び対応策がわかったものから順にインストールプログラムにチェック及び対応策を&lt;/P&gt;
&lt;P&gt;入れ込んできたので、最近は少しづつ落ち着いてきていますが．．．&lt;/P&gt;
&lt;P&gt;とりあえず、報告できるものから報告していこうと思います。&lt;/P&gt;
&lt;P&gt;Summary.txt に下記のエラーがある場合の対応策&lt;/P&gt;
&lt;P&gt;１．メッセージ&lt;/P&gt;
&lt;P&gt;&amp;nbsp;「マネージオブジェクト形式（MOF）のファイルC:\Program Files\Microsoft SQL Server\90\Shard\sqlmgmproviderxpsp2up.mof をコンパイルできませんでした。．．．．」&lt;/P&gt;
&lt;P&gt;２．発生OS&lt;/P&gt;
&lt;P&gt;　　Windows Vista Business&lt;/P&gt;
&lt;P&gt;３．原因&lt;/P&gt;
&lt;P&gt;　　なんでこのようになったかは不明。&lt;/P&gt;
&lt;P&gt;４．対応策&lt;/P&gt;
&lt;P&gt;　　ネット等で調べた結果、WMIサービスコントロールユーティリティ(winmgmt.exe)を&lt;BR&gt;　　使用して修復することができました。&lt;/P&gt;
&lt;P&gt;　　(1)WMIレポジトリに対して整合性チェックを行う。&lt;BR&gt;　　&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; winmgmt /verifyrepository&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ここで、「WMIデータベースに矛盾があります。」とでれば(2)以降で修復します。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; しかし、「WMIデータベースに矛盾はありません。」とでれば別原因ですので、&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ここでの対応策は無効です。&lt;/P&gt;
&lt;P&gt;　　(2)WMIレポジトリに対して再構築を行う。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; winmgmt /salvagerepository&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用中として回収に失敗するが、再度実行することで再構築できるみたいです。&lt;/P&gt;
&lt;P&gt;　　(3)WMIレポジトリに対して再構築を行う。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; winmgmt /salvagerepository&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「WMIデータベースが回収されました。」&lt;/P&gt;
&lt;P&gt;　　(4)再度、WMIレポジトリに対して整合性チェックを行う。&lt;BR&gt;　　&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; winmgmt /verifyrepository&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「WMIデータベースに矛盾はありません。」とでれば成功です。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/108061.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQL Server Express をコマンドラインからのインストールについて(確定) </title><link>http://blogs.wankuma.com/pandora/archive/2007/05/01/75221.aspx</link><pubDate>Tue, 01 May 2007 18:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/05/01/75221.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/75221.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/05/01/75221.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/75221.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/75221.aspx</trackback:ping><description>&lt;P&gt;以前の日記でインストールの実行のコマンドの /qb オプションと /L*V オプションの併用時に正常に動作しない&lt;/P&gt;
&lt;P&gt;(ログを記録するオプション(/L*V)がうまいこと働いていない)旨の日記を書きました。&lt;/P&gt;
&lt;P&gt;この問題について、本日、確定しましたので、報告しておきます。&lt;/P&gt;
&lt;P&gt;結論から申し上げますと、SQL Server 2005 では、 ログを記載するオプション(/L*V)は、サポートされていない&lt;/P&gt;
&lt;P&gt;ようです。&lt;/P&gt;
&lt;P&gt;ログを記載するオプション(/L*V)は、SQL Server 2000&amp;nbsp;Desktop Engine (MSDE) で有効なオプションみたいです。&lt;/P&gt;
&lt;P&gt;ただ、/qb オプションをつけなければ今まで通りのログの作成はできるのですが．．．&lt;/P&gt;
&lt;P&gt;少し、サポートされていないというのは、おかしくないかい！MSさん (^ム^)&lt;/P&gt;
&lt;P&gt;サポートされていないそうなので、/L*V オプションを付加したインストールは保証されないみたいですので、&lt;/P&gt;
&lt;P&gt;皆さん、気をつけて下さいね。&lt;/P&gt;
&lt;P&gt;ただ、 /L*V オプションをつけなくても、下記の場所にログができているみたいなので、解析は、可能みたいです。&lt;/P&gt;
&lt;P&gt;場所:C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG&lt;/P&gt;
&lt;P&gt;以前みたいに１つのファイルではなく、複数のファイルで構成されているため、エンドユーザーからログを&lt;/P&gt;
&lt;P&gt;もらう時には、少し困りますね。&lt;/P&gt;
&lt;P&gt;このログの見方も調査していかなくてはいけないと思うと少しブルーになります。&lt;/P&gt;
&lt;P&gt;これも経験ですね．．．．&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/75221.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQL Server Express をコマンドラインからのインストールについて(訂正)</title><link>http://blogs.wankuma.com/pandora/archive/2007/04/21/72335.aspx</link><pubDate>Sat, 21 Apr 2007 11:50:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/04/21/72335.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/72335.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/04/21/72335.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/72335.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/72335.aspx</trackback:ping><description>&lt;P&gt;以前の日記でインストールの実行のコマンドを下記のように記述していましたが、&lt;/P&gt;
&lt;P&gt;C:\work\ExpressSP2\setup.exe /qb /settings C:\work\ExpressSP2\setup.ini /Lv* C:\work\log.txt&lt;/P&gt;
&lt;P&gt;/qb では、ログを記録するパラメータ(/Lv*)がうまいこと働いていないことがわかりました。&lt;/P&gt;
&lt;P&gt;ので、もう少し調査してみて、対応方法が解りしだい報告します。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/72335.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQL Server Express をコマンドラインからのインストールについて(補足)</title><link>http://blogs.wankuma.com/pandora/archive/2007/04/20/72194.aspx</link><pubDate>Fri, 20 Apr 2007 10:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/04/20/72194.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/72194.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/04/20/72194.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/72194.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/72194.aspx</trackback:ping><description>&lt;P&gt;昨日、書いた日記に Windows Vista での注意点が抜けていましたので補足しときます。&lt;/P&gt;
&lt;P&gt;Windows Vista から導入されたUAC(ユーザーアカウント制御)により、BUILTIN\Administrators の&lt;BR&gt;メンバでも sysadmin の権限を得ることはできなくなっています。&lt;/P&gt;
&lt;P&gt;なので、sysadmin の権限が必要な場合は、アプリケーション側でなんらかの対応が必要になってきます。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/72194.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQL Server Express をコマンドラインからのインストールについて</title><link>http://blogs.wankuma.com/pandora/archive/2007/04/19/72109.aspx</link><pubDate>Thu, 19 Apr 2007 18:49:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/04/19/72109.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/72109.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/04/19/72109.aspx#Feedback</comments><slash:comments>62</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/72109.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/72109.aspx</trackback:ping><description>&lt;P&gt;ご存知の通り Windows Vista では MSDE2000 のサポートがなくなり、Windows Vistaで動作する多くのデータベースアプリケーションでは、SQL Server Express を使用するのではないかと思います。&lt;/P&gt;
&lt;P&gt;SQL Server Express GUIインストールもよくできているので、GUIインストールをそのまま使用するかも知れませんが、色々な設定ができるようになっているので、一般ユーザーには少し難しいかもしれません。&lt;/P&gt;
&lt;P&gt;そこで、あらかじめ用意しておいた値を使用して SQL Server Express をインストールする方法を書き留めておきます。&lt;/P&gt;
&lt;P&gt;１．SQL Server Express SP2 (SQLEXPR_JPN.EXE)を下記のサイトからダウンロードします。&lt;/P&gt;
&lt;P&gt;　　&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=31711D5D-725C-4AFA-9D65-E4465CDFF1E7&amp;amp;displaylang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=31711D5D-725C-4AFA-9D65-E4465CDFF1E7&amp;amp;displaylang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;２．コマンドラインを指定するために、 SQLEXPR_JPN.EXE を解凍します。&lt;/P&gt;
&lt;P&gt;　　SQLEXPR_JPN.EXE -x で解凍します。(C:\work\ExpressSP2\に展開したとします。)&lt;/P&gt;
&lt;P&gt;３．あらかじめ用意する値を Setup.ini に記述します。&lt;/P&gt;
&lt;P&gt;　　使用可能なパラメータは、たくさんありますので、詳細は下記のサイトを参照して下さい。&lt;/P&gt;
&lt;P&gt;　　&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms144259.aspx"&gt;http://msdn2.microsoft.com/ja-jp/library/ms144259.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;　　ここでは、パラメータ INSTANCENAME、DISABLENETWORKPROTOCOLS、ADDLOCAL を&lt;/P&gt;
&lt;P&gt;　　使用しています。(ADDLOCALは省略できません。)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSTANCENAME：使用するインスタンス名を指定します。&lt;/P&gt;
&lt;P&gt;　　DISABLENETWORKPROTOCOLS：ネットワークプロトコルを指定します。&lt;BR&gt;　　&amp;nbsp; 0 : 共有メモリ=On 名前付きパイプ=On&amp;nbsp; TCP/IP = On&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 : 共有メモリ=On 名前付きパイプ=Off&amp;nbsp; TCP/IP = Off&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 : 共有メモリ=On 名前付きパイプ=Off&amp;nbsp; TCP/IP = On&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDLOCAL：インストールするコンポーネントを指定します。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL_Engine：SQL Server Database Services&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL_Data_Files ：SQL Server データ ファイル&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL_Replication ：レプリケーション&lt;/P&gt;
&lt;P&gt;　例)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Options]&lt;BR&gt;　　INSTANCENAME=使用するインスタンス名&lt;BR&gt;　　DISABLENETWORKPROTOCOLS=2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDLOCAL=SQL_Engine,SQL_Data_Files&lt;/P&gt;
&lt;P&gt;４．インストールの実行を行います。&lt;/P&gt;
&lt;P&gt;　　C:\work\ExpressSP2\setup.exe /qb /settings C:\work\ExpressSP2\setup.ini /Lv* C:\work\log.txt&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/72109.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQLServer管理オブジェクト(SMO)の探索結果 Part05</title><link>http://blogs.wankuma.com/pandora/archive/2007/03/27/69213.aspx</link><pubDate>Tue, 27 Mar 2007 19:04:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2007/03/27/69213.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/69213.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2007/03/27/69213.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/69213.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/69213.aspx</trackback:ping><description>&lt;P&gt;久しぶりに、ＳＭＯを使用する状況になり、また探索しました。&lt;/P&gt;
&lt;P&gt;今回は、データベースのアタッチ及びデタッチなので、過去の遺産の延長なので、何の苦しみもなく&lt;/P&gt;
&lt;P&gt;探索も終え、該当機能も作成できた。&lt;/P&gt;
&lt;P&gt;使用するクラスは、データベースサーバーを表わしている Server クラスです。&lt;/P&gt;
&lt;P&gt;使用するメソッドは、AttachDatabase　と DetachDatabase です。&lt;/P&gt;
&lt;P&gt;サンプルのコードを下記に載せておきます。&lt;/P&gt;
&lt;P&gt;[アタッチ]&lt;/P&gt;
&lt;P&gt;public bool AttachDatabase(string databasePath,string databaseName)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; if(this.server.Databases.Contains(databaseName)==true){return false;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; StringCollection fileList = new StringCollection();&lt;BR&gt;&amp;nbsp;&amp;nbsp; fileList.Add(Path.Combine(databasePath,databaseName+".MDF"));&lt;BR&gt;&amp;nbsp;&amp;nbsp; fileList.Add(Path.Combine(databasePath,databaseName+".LDF"));&lt;BR&gt;&amp;nbsp;&amp;nbsp; try{this.server.AttachDatabase(databaseName,fileList);}&lt;BR&gt;&amp;nbsp;&amp;nbsp; catch{return false;}&lt;BR&gt;&amp;nbsp;&amp;nbsp; return true;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;[デタッチ]&lt;/P&gt;
&lt;P&gt;public bool DetachDatabase(string databaseName)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; if(this.server.Databases.Contains(databaseName)==false){return false;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; try{this.server.DetachDatabase(databaseName,true);}&lt;BR&gt;&amp;nbsp; catch{return false;}&lt;BR&gt;&amp;nbsp; return true;&lt;BR&gt;}&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/69213.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQLServer管理オブジェクト(SMO)の探索結果 Part04</title><link>http://blogs.wankuma.com/pandora/archive/2006/11/02/43392.aspx</link><pubDate>Thu, 02 Nov 2006 16:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2006/11/02/43392.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/43392.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2006/11/02/43392.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/43392.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/43392.aspx</trackback:ping><description>&lt;P&gt;今回は、SQLServer サービスの開始／停止についてです。&lt;/P&gt;
&lt;P&gt;Part01 で紹介した参照設定に下記のコンポーネントを追加する必要があります。&lt;/P&gt;
&lt;P&gt;・Microsoft.SqlServer.Management.Smo.Wmi&lt;BR&gt;　(C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.WmiEnum.dlll)&lt;/P&gt;
&lt;P&gt;使用するクラスは、 ManagedComputer クラスと Service クラスです。&lt;/P&gt;
&lt;P&gt;ManagedComputer クラスは、 SQLServer &amp;nbsp;のインスタンスのWMI(Windows Management Instrumentation)&lt;/P&gt;
&lt;P&gt;を表現しています。&lt;/P&gt;
&lt;P&gt;Service クラスは、 SQLServer サービスのインスタンスを表現しています。&lt;/P&gt;
&lt;P&gt;Service クラスは、コンストラクタが存在しないため、インスタンスができませんので、 ManagedComputer &lt;/P&gt;
&lt;P&gt;オブジェクト経由で取得するようになります。&lt;/P&gt;
&lt;P&gt;コードとしては、下記のようになります。&lt;/P&gt;
&lt;P&gt;ManagedComputer managedComputer = new ManagedComputer();&lt;BR&gt;Service service =&amp;nbsp;managedComputer.Services[サービス名];&lt;/P&gt;
&lt;P&gt;サービス名は、既定のインスタンスであれば "MSSQLSERVER" で、名前付きインスタンスであれば&lt;/P&gt;
&lt;P&gt;"MSSQL$インスタンス名"になります。&lt;/P&gt;
&lt;P&gt;Service オブジェクトが作成できたので、後は該当のメソッドを呼び出すだけになります。&lt;/P&gt;
&lt;P&gt;サービスの開始であれば、 service.Start() でサービスは開始されます。&lt;/P&gt;
&lt;P&gt;サービスの停止であれば、service.Stop() でサービスは停止されます。&lt;/P&gt;
&lt;P&gt;サービスの状態を判断したい場合は、 service.ServiceState で取得できます。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/43392.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandora</dc:creator><title>SQLServer管理オブジェクト(SMO)の探索結果 Part03</title><link>http://blogs.wankuma.com/pandora/archive/2006/11/01/43247.aspx</link><pubDate>Wed, 01 Nov 2006 14:09:00 GMT</pubDate><guid>http://blogs.wankuma.com/pandora/archive/2006/11/01/43247.aspx</guid><wfw:comment>http://blogs.wankuma.com/pandora/comments/43247.aspx</wfw:comment><comments>http://blogs.wankuma.com/pandora/archive/2006/11/01/43247.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pandora/comments/commentRss/43247.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pandora/services/trackbacks/43247.aspx</trackback:ping><description>&lt;P&gt;今回は、バックアップ／リストアについてです。&lt;/P&gt;
&lt;P&gt;使用するクラスは、バックアップでは Backup クラス、リストアでは Restore クラスになります。&lt;/P&gt;
&lt;P&gt;SQL-DMOの時代と違って長いファイル名にもSMO側で吸収してくれているみたいで、意識せずに使用できる&lt;/P&gt;
&lt;P&gt;のは大変うれしいです。(^^)v&lt;/P&gt;
&lt;P&gt;結構、色々なプロパティ・メソッドも公開されているので細かいこともできそうです。&lt;/P&gt;
&lt;P&gt;今回は、データベースのバックアップとリストアでしか必要ないのでそれしか作成していませんが、必要になれば&lt;/P&gt;
&lt;P&gt;簡単に作成できそうなぐらい楽になっています。&lt;/P&gt;
&lt;P&gt;データーベースのバックアップ／リストアのサンプルコードを掲載しておきます。&lt;/P&gt;
&lt;P&gt;[バックアップ]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;public bool BackupDatabase(string databaseName,string backupFileName)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Backup backup = new Backup();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.Action = BackupActionType.Database;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.Initialize = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.Database = databaseName;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.Devices.AddDevice(backupFileName,DeviceType.File);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.PercentCompleteNotification = 10;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;backup.PercentComplete += new PercentCompleteEventHandler(On_PercentComplete);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{backup.SqlBackup(this.server);}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch{return false;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;[リストア]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;public bool RestoreDatabase(string databaseName,string backupFileName)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Restore restore = new Restore();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.Action&amp;nbsp;&amp;nbsp; = RestoreActionType.Database;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.ReplaceDatabase = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.Database = databaseName;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.Devices.AddDevice(backupFileName,DeviceType.File);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.PercentCompleteNotification = 10;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;restore.PercentComplete += new PercentCompleteEventHandler(On_PercentComplete);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{restore.SqlRestore(this.server);}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch{return false;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/pandora/aggbug/43247.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>