<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>Visual Studio</title><link>http://blogs.sqlpassj.org/mitsugi/category/485.aspx</link><description>Visual Studio に関連</description><managingEditor>おがわみつぎ</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>おがわみつぎ</dc:creator><title>[PASSJ]【Leaders'Report：Vol.330】　～SQL Server 2008 June CTP on VirtualPC～ サンプルコード訂正</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/14/23598.aspx</link><pubDate>Thu, 14 Jun 2007 23:06:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/14/23598.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/23598.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/14/23598.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/23598.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/23598.aspx</trackback:ping><description>&lt;P&gt;2007/06/14 配信の【Leaders'Report：Vol.330】　～SQL Server 2008 June CTP on VirtualPC～&lt;BR&gt;&lt;A href="http://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=0&amp;amp;current_page=1&amp;amp;disp_mode=0&amp;amp;detail_mode=1&amp;amp;message_id=21667"&gt;http://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=0&amp;#164;t_page=1&amp;amp;disp_mode=0&amp;amp;detail_mode=1&amp;amp;message_id=21667&lt;/A&gt;&lt;BR&gt;のサンプルコードで誤りがありましたので訂正します。&lt;/P&gt;
&lt;P&gt;&amp;lt;-- Sample Code Language C# --&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region CheckUnicodeCharacterType メソッド&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// UNICODE 文字の種別判定メソッド&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　基本多言語面&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　CJK 用の記号および分音記号濁音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ濁音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ小文字&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　結合分音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　結合半角記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　NULL 文字&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　スペース調整記号結合文字&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　補助文字（サロゲートペア）&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　を判定する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;PARAM name="value"&gt;UNICODE の種別を判定したい UNICODE 文字&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;RETURNS&gt;UnicodeCharacter 列挙体の値&lt;/RETURNS&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static UnicodeCharacterType CheckUnicodeCharacterType(SqlString value)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UnicodeCharacterType flag = UnicodeCharacterType.NULL;&amp;nbsp; // 判定結果フラグ&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] buffer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 一時格納用 byte 配列&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 引数の値チェック&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (value.IsNull || value.Value.TrimEnd().Length == 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // NULL を表す UnicodeCharacter.NULL を返す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return flag;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // デフォルトで UNICODE 基本多言語面文字とする&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag = UnicodeCharacterType.BMP;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // IME パッドに合わせ、BigEndianUnicode のエンコードを使用する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Encoding bigEndianUnicodeEncoding = Encoding.BigEndianUnicode;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // byte 配列取得&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer = bigEndianUnicodeEncoding.GetBytes(value.Value.TrimEnd());&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 補助文字（サロゲートペア）&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (buffer.Length == 4)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.&lt;FONT color=#ff0000&gt;SURROGATEPAIR&lt;/FONT&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // byte 配列長が 2 というのは UNICODE 基本多言語面（BMP）&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (buffer.Length == 2)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 半角カタカナレンジ判定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((buffer[0] == 0xFF))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 半角カタカナ&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((buffer[1] &amp;gt;= 0x61 &amp;amp;&amp;amp; buffer[1] &amp;lt;= 0x66) || (buffer[1] &amp;gt;= 0x70 &amp;amp;&amp;amp; buffer[1] &amp;lt;= 0x9D))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.HANKAKU_KATAKANA;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 半角カタカナ小文字&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (&lt;FONT color=#ff0000&gt;buffer[1] &amp;gt;= 0x67 &amp;amp;&amp;amp; buffer[1] &amp;lt;= 0x6F&lt;/FONT&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.HANKAKU_KATAKANA_KOMOJI;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 半角カタカナ濁音記号判定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (buffer[1] == 0x9E || buffer[1] == 0x9F)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.HANKAKU_KATAKANA_DAKUON;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CJK 用の記号および分音記号の濁音記号判定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (((buffer[0] == 0x30) &amp;amp;&amp;amp; (buffer[1] &amp;gt;= 0x99)) &amp;amp;&amp;amp; ((buffer[0] == 0x30) &amp;amp;&amp;amp; (buffer[1] &amp;lt;= 0x9C)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.CJK_DAKUON;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 結合分音記号判定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (((buffer[0] == 0x03) &amp;amp;&amp;amp; (buffer[1] &amp;gt;= 0x00)) &amp;amp;&amp;amp; ((buffer[0] == 0x03) &amp;amp;&amp;amp; (buffer[1] &amp;lt;= 0x6F)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.KETSUGO_BUON;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 結合半角記号判定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (((buffer[0] == 0xFE) &amp;amp;&amp;amp; (buffer[1] &amp;gt;= 0x20)) &amp;amp;&amp;amp; ((buffer[0] == 0xFE) &amp;amp;&amp;amp; (buffer[1] &amp;lt;= 0x2F)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.KETSUGO_HANKAKU_KIGOU;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // スペース調整文字の結合記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (((buffer[0] == 0x02) &amp;amp;&amp;amp; (buffer[1] == 0xE5)) || ((buffer[0] == 0x02) &amp;amp;&amp;amp; (buffer[1] == 0xE9)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UnicodeCharacterType.SPACE_TYOUSEI;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return flag;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region UnicodeCharacterType 列挙体&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// UNICODE 文字判定列挙体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enum UnicodeCharacterType&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 基本多言語面を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+0020 ～ U+FFFF&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ小文字&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　半角カタカナ濁音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　CJK 用の記号および分音記号濁音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　結合分音記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　結合半角記号&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 　スペース調整記号結合文字を除外&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BMP,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// CJK 用の記号および分音記号濁音記号を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+3099 ～ U+309C&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CJK_DAKUON,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 半角カタカナを表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+FF61 ～ U+FF66、U+FF70 ～ U+FF9D&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANKAKU_KATAKANA,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 半角カタカナ濁音記号を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+FF9E、U+FF9F&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANKAKU_KATAKANA_DAKUON,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 半角カタカナ小文字を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+FF67 ～ U+FF6F&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANKAKU_KATAKANA_KOMOJI,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 結合分音記号を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;FONT color=#ff0000&gt;U+0300&lt;/FONT&gt; ～ U+036F&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KETSUGO_BUON,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 結合半角記号を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+FE20 ～ U+FE2F&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KETSUGO_HANKAKU_KIGOU,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// NULL 文字を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// スペース調整記号結合文字を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+02E5、U+02E9&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPACE_TYOUSEI,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 補助文字（サロゲートペア）を表す&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// U+10000 ～ U+10FFFF&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ff0000&gt;SURROGATEPAIR&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;BR&gt;&amp;lt;-- Sample Code Language C# --&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;赤字&lt;/FONT&gt;になっている部分が訂正です。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/23598.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[PASSJ After School]CLT Event:Windows Vista 時代の SQL Server 2005 - PASSJ Special Edition </title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/03/23534.aspx</link><pubDate>Sun, 03 Jun 2007 00:47:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/03/23534.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/23534.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/06/03/23534.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/23534.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/23534.aspx</trackback:ping><description>&lt;P&gt;ちょっとフライングですが、とりあえずやる方向で検討中というか、やります。&lt;BR&gt;CLT イベントで東京・大阪とやりましたが、Microsoft からの JIS2004 対応の情報が少ない、資料はあるがどう解釈していいのかわからないという声を聞きました。&lt;BR&gt;JIS X 0213:2004(JIS2004) 規格における日本語処理のアプリケーションへの影響について、問題点、検討事項、回避策など網羅的にカバーしている資料が現在皆無です。&lt;BR&gt;Windows Server 2003/Windows XP の JIS2004 対応フォントの登場による影響、Windows Vista の JIS90 対応フォントによる影響、フォント搭載プリンタの影響、IME による影響、.NET Framework 2.0/3.0 における文字列処理の変更（文字列長が必ずしも 1 とは限らなくなったため）、補助文字・結合文字の判定、StringInfo を使ったあるべき実装、SQL Server 2005 の照合順序による影響、Transact-SQL 標準文字列操作関数の問題などなど、日本語は日本人にしか理解できないため、JIS2004 対応については日本人が声を上げる必要があります。&lt;BR&gt;声を上げるには、何が問題で、どういう実装になっているからと正しい知識を身についている必要があります。&lt;BR&gt;ということで、JIS2004 のサポートするにはどうするかをハイレベルではありますが、OS 回りと SQL Server 2005 をターゲットに解説したいと思います。&lt;/P&gt;
&lt;P&gt;Java 、超漢字、Vine Linux などなどはこの問題をそうそうに対応していたのに、何をいまさらと思われる方もいるでしょう。&lt;BR&gt;また、文字の符号化について意識したことがない方は何で JIS2004 で大騒ぎしているんだろうと思われると思います。&lt;BR&gt;規格自体は 2000 年の国語審議会の答申に基づくもので、その後改訂されて 2004 年に Fix したものですが、2007 年になって大騒ぎするのは何でと思われると思います。&lt;/P&gt;
&lt;P&gt;すべては、OS 市場シェア No.1 の Microsoft が Vista に JIS2004 対応を決めたことに事の発端があります。&lt;BR&gt;しかしながら、散在するホワイトペーパーを読んで理解できる方はそうはいません。&lt;BR&gt;私も理解するのに相当苦労しました。&lt;BR&gt;ですので、皆さんには私が味わった苦労を少しでも軽減できるようにと、PASSJ アフタースクールでやる決心をしました。&lt;/P&gt;
&lt;P&gt;正式アナウンスは近々あると思いますが、6/16（土）に Microsoft 新宿サザンタワー（OST）セミナールームで&amp;nbsp;3 時間コースとしてやりたいと思います。&lt;BR&gt;現在、河端さんと調整中ですが、私と河端さんのコンビでたぶん 1 日コースになると思います。&lt;/P&gt;
&lt;P&gt;CLT イベントでは消化不良だった方、CLT イベントに参加できなかった方、CLT イベント自体を知らなかった PASSJ 会員の方、純粋に参加したいと思われている方々は PASSJ 事務局からの「PASSJ News 特別号」をお待ちください。&lt;BR&gt;登録開始時期や登録 URL が記載されたものが近々配信されると思います。&lt;BR&gt;また、大阪や他の都市でも希望が多ければ、地元のコミュニティ（個人、団体、NPO、自治体などなど）をご紹介いただいて、参加者・会場・現地でお手伝いいただける方の確保ができれば、どこでもいく覚悟はありますので、事務局もしくは私の BLOG の「連絡をする」で連絡いただいても構いませんので、地方の方はご検討ください。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/23534.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[SQL Server 2005]「SQL Server の JIS2004 対応に関するガイドライン」の訂正すべき点</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/05/20/23441.aspx</link><pubDate>Sun, 20 May 2007 19:35:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/05/20/23441.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/23441.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/05/20/23441.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/23441.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/23441.aspx</trackback:ping><description>&lt;P&gt;SQL Server の JIS2004 対応に関するガイドライン (exe, 3.44 MB)&lt;BR&gt;&lt;A href="http://go.microsoft.com/?linkid=6302906"&gt;http://go.microsoft.com/?linkid=6302906&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;の P.73 の「3.14 REPLACE、replace_s」の case 7 の場合、データベースの照合順序が Japanese_90 系の照合順序を使用していないと結果が予期せぬものになります。&lt;BR&gt;訂正するならば、P.64 の「3.7 補助文字対応文字列操作 - StringManipulate サンプル」の「サンプルをビルド」の&lt;BR&gt;「2. AdventureWorks データベースがインストールされていることを確認。サンプルをビルドするデータベース "JIS2004" データベースを作成」&lt;BR&gt;を&lt;BR&gt;「2. AdventureWorks データベースがインストールされていることを確認。サンプルをビルドする "JIS2004" データベースの照合順序を Japanese_90_BIN2 で作成」&lt;BR&gt;に訂正すべきところでしょう。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/23441.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[DOWNLOAD]VS2005 SP1 Update for Vista, SQL Server 2005 SP2 Update &amp; SQL Server 2005 SP2</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/03/07/20916.aspx</link><pubDate>Wed, 07 Mar 2007 19:19:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/03/07/20916.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/20916.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/03/07/20916.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/20916.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/20916.aspx</trackback:ping><description>&lt;P&gt;長らくベータだった VS2005 の Vista 対応ですが、正式版がリリースされました。&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;amp;DisplayLang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=90e2942d-3ad1-4873-a2ee-4acc0aace5b6&amp;amp;DisplayLang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;また、SQL Server 2005 SP2 Update は 2007/03/05 以前に SP2 を適用した場合&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c358a1-ecc4-4c49-8f65-daa6b7800eec&amp;amp;DisplayLang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c358a1-ecc4-4c49-8f65-daa6b7800eec&amp;amp;DisplayLang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;を適用し、今ダウンロードできるものはマージしたもののようです。&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&amp;amp;DisplayLang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&amp;amp;DisplayLang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SQL Server 2005 SP2 の場合は 2007/03/05 が境目になるので覚えておくように。。。&lt;BR&gt;こんなクリティカルなものなんでわからんかな。。。&lt;BR&gt;これ、クレーム必至というか、クレームいれなきゃだめだろ！&lt;BR&gt;まぁ、リリースされて間もないので、正式環境に適用されているケースは少ないでしょうけど、これはふざけるな！っていってもいいぐらいな大問題じゃないですか。&lt;BR&gt;もう少しテストしましょうね、MS さん。&lt;BR&gt;最近クォリティ悪い気がしますよ。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/20916.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[VS]MSDN ライブラリ 2006 年 12 月版</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/22/20722.aspx</link><pubDate>Thu, 22 Feb 2007 16:36:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/22/20722.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/20722.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/22/20722.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/20722.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/20722.aspx</trackback:ping><description>&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=14&amp;amp;SrcDisplayLang=ja&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d94596af5-cc58-45af-a14b-df627a31e783%26DisplayLang%3dja"&gt;&lt;STRONG&gt;&lt;FONT color=#0033cc&gt;MSDN ライブラリ 2006 年 12 月版&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;がリリースされています。&lt;BR&gt;2321.4 MB もあるので空き容量を確保してくださいね。&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/20722.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[Fix]日本語(ISO-2022-JP) を Content-Transfer-Encoding: 7bit で送信する方法 </title><link>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/04/20604.aspx</link><pubDate>Sun, 04 Feb 2007 11:14:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/04/20604.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/20604.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2007/02/04/20604.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/20604.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/20604.aspx</trackback:ping><description>&lt;P&gt;MVP 意地で、MVP インシデント使って、メールヘッダの Content-Transfer-Encoding が sevenbit になる件を FIX させました。&lt;BR&gt;サンプルコードは&lt;A id=viewpost.ascx_TitleUrl href="/mitsugi/archive/2006/02/23/16237.aspx"&gt;&lt;FONT color=#000080&gt;[.NET 2.0]日本語(ISO-2022-JP) を Content-Transfer-Encoding: 7bit で送信する方法&lt;/FONT&gt;&lt;/A&gt;を見てください。&lt;BR&gt;FIX モジュールを使えば、サンプルコードの Text 形式のメール送信で正しく Content-Transfer-Encoding: 7bit として送信されます。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/default.aspx/KB/927858"&gt;http://support.microsoft.com/default.aspx/KB/927858&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;サポートに連絡して FIX モジュールを入手してください。&lt;BR&gt;※バグなのでおそらく無償で入手できると思います。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/20604.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[勉強会]PASSJ 勉強会 with Microsoft On</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2006/12/01/20150.aspx</link><pubDate>Fri, 01 Dec 2006 15:24:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2006/12/01/20150.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/20150.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2006/12/01/20150.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/20150.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/20150.aspx</trackback:ping><description>&lt;P&gt;今、PASSJ 勉強会 with Microsoft On の企画を練っています。&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/community/evangelists/ms-on/default.mspx"&gt;http://www.microsoft.com/japan/technet/community/evangelists/ms-on/default.mspx&lt;/A&gt;&lt;BR&gt;の中で受けてみたいセッションがあればご連絡いただければ考えます。&lt;/P&gt;
&lt;P&gt;現在スタッフの中では&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;チューニングとサイジングの必要性 
&lt;LI&gt;運用管理の強化ポイント 
&lt;LI&gt;WCF/WF アプリケーション開発 
&lt;LI&gt;.NET Framework 2.0 分散アプリケーション開発&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;があがっています。&lt;/P&gt;
&lt;P&gt;一応無料を考えています。&lt;BR&gt;もしかすると実費をいただくかもしれませんが。&lt;/P&gt;
&lt;P&gt;ぜひご意見いただければと思います。&lt;BR&gt;なお、PASSJ 単体ではなく、弟分の VSUG と共同で展開してみたいなとも思っていますので、ぜひよろしくお願いします。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/20150.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[Ajax]Atlas から AJAX へ</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/12/19294.aspx</link><pubDate>Tue, 12 Sep 2006 13:27:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/12/19294.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/19294.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/12/19294.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/19294.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/19294.aspx</trackback:ping><description>&lt;P&gt;Microsoft の Ajax 実装として、コードネーム "Atlas" があります。&lt;BR&gt;その正式名称が発表になりました。&lt;BR&gt;ただ大文字小文字の表記はちょっとまだわかりませんが。。。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;JavaScript -&amp;gt; Microsoft AJAX Library&lt;/LI&gt;
&lt;LI&gt;Server Side コントロール -&amp;gt; ASP.NET 2.0 AJAX Extensions&lt;/LI&gt;
&lt;LI&gt;"Atlas" Control Toolkit -&amp;gt; ASP.NET AJAX Control Toolkit&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2006/09/11/_2200_Atlas_2200_-1.0-Naming-and-Roadmap.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/09/11/_2200_Atlas_2200_-1.0-Naming-and-Roadmap.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;うれしいことに年内にリリースされる予定です。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/19294.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[.NET 3.0]Microsoft .NET Framework 3.0 RC</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/04/19137.aspx</link><pubDate>Mon, 04 Sep 2006 15:49:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/04/19137.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/19137.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2006/09/04/19137.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/19137.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/19137.aspx</trackback:ping><description>&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=1&amp;amp;SrcDisplayLang=ja&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d19e21845-f5e3-4387-95ff-66788825c1af%26DisplayLang%3dja"&gt;マイクロソフト プレリリース ソフトウェア Microsoft .NET Framework 3.0 - Release Candidate&lt;/A&gt;&lt;BR&gt;誰も書かないから書いてみた。&lt;BR&gt;.NET Framework 3.0 自体もですが&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=6&amp;amp;SrcDisplayLang=ja&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3de8232f93-48f0-4e74-b09d-b51f1d4231a4%26DisplayLang%3den"&gt;&lt;FONT color=#002c99&gt;Microsoft&amp;#174; Visual Studio&amp;#174; 2005 Extensions for Windows Workflow Foundation Release Candidate 5&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;も出てます。&lt;BR&gt;困ったことに他はアップグレードしていないという罠がありますが。&lt;BR&gt;ちなみに WinFX のアンインストールツール使うと Visual Studio 2005 の MSDN Library がごっそり消えます。&lt;BR&gt;可能であれば、正しくアンインストールしてくださいまし。&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/19137.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>おがわみつぎ</dc:creator><title>[SQL Server 2005]SQL CLR - 現在の AppDomain とロードされているアセンブリ一覧取得ユーザ定義関数サンプル</title><link>http://blogs.sqlpassj.org/mitsugi/archive/2006/08/07/17719.aspx</link><pubDate>Mon, 07 Aug 2006 23:39:00 GMT</pubDate><guid>http://blogs.sqlpassj.org/mitsugi/archive/2006/08/07/17719.aspx</guid><wfw:comment>http://blogs.sqlpassj.org/mitsugi/comments/17719.aspx</wfw:comment><comments>http://blogs.sqlpassj.org/mitsugi/archive/2006/08/07/17719.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/mitsugi/comments/commentRss/17719.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/mitsugi/services/trackbacks/17719.aspx</trackback:ping><description>&lt;UL&gt;
&lt;LI&gt;[SQL Server 2005]SQL CLR - 現在の AppDomain とロードされているアセンブリ一覧取得ユーザ定義関数サンプル&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;SQL CLR の AppDomain はデータベース単位に設定されています。&lt;BR&gt;AppDomain 名などの取得は&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;SELECT&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; &lt;SPAN style="COLOR: gray"&gt;*&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;FROM&lt;/SPAN&gt; &lt;SPAN style="COLOR: green"&gt;sys.dm_clr_appdomains&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN lang=en-us&gt;で、取得できますが、現在実行中の SQL CLR から AppDomain を取得するには System.Reflection を使って取得します。&lt;BR&gt;このサンプルはそれをユーザ定義スカラ値関数として実装しています。&lt;BR&gt;また、現在の AppDomain にロードされている Assembly 一覧を取得するユーザ定義テーブル値関数のサンプルを公開します。&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;&lt;BR&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System.Data;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System.Data.SqlClient;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System.Data.SqlTypes;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; Microsoft.SqlServer.Server;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System.Reflection;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; System.Collections;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt;public&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: &amp;#8218;l&amp;#8218;r ?S?V?b?N"&gt; &lt;SPAN style="COLOR: blue"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;UserDefinedFunctions&lt;BR&gt;&lt;/SPAN&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Microsoft.SqlServer.Server.&lt;SPAN style="COLOR: teal"&gt;SqlFunction&lt;/SPAN&gt;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt; AppDomainFriendlyName()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt;(&lt;SPAN style="COLOR: teal"&gt;AppDomain&lt;/SPAN&gt;.CurrentDomain.FriendlyName);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Microsoft.SqlServer.Server.&lt;SPAN style="COLOR: teal"&gt;SqlFunction&lt;/SPAN&gt;(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FillRowMethodName = &lt;SPAN style="COLOR: maroon"&gt;"AssembliesListFill"&lt;/SPAN&gt;,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TableDefinition = &lt;SPAN style="COLOR: maroon"&gt;"AssemblyName NVARCHAR(128), Version NVARCHAR(32), Culture NVARCHAR(32), PublicKeyToken NVARCHAR(32)"&lt;/SPAN&gt;)]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;IEnumerable&lt;/SPAN&gt; AssembliesList()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;AppDomain&lt;/SPAN&gt;.CurrentDomain.GetAssemblies();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; AssembliesListFill(&lt;SPAN style="COLOR: teal"&gt;Object&lt;/SPAN&gt; ass, &lt;SPAN style="COLOR: blue"&gt;out&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt; assemblyName, &lt;SPAN style="COLOR: blue"&gt;out&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt; version, &lt;SPAN style="COLOR: blue"&gt;out&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt; culture, &lt;SPAN style="COLOR: blue"&gt;out&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt; publicKeyToken)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Assembly&lt;/SPAN&gt; assembly = (&lt;SPAN style="COLOR: teal"&gt;Assembly&lt;/SPAN&gt;)ass;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;[] buffers = assembly.FullName.Split(&lt;SPAN style="COLOR: maroon"&gt;','&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;[] temp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assemblyName = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt;(buffers[0].Trim());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = buffers[1].Split(&lt;SPAN style="COLOR: maroon"&gt;'='&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; version = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt;(temp[1].Trim());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = buffers[2].Split(&lt;SPAN style="COLOR: maroon"&gt;'='&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; culture = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt;(temp[1].Trim());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = buffers[3].Split(&lt;SPAN style="COLOR: maroon"&gt;'='&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; publicKeyToken = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SqlString&lt;/SPAN&gt;(temp[1].Trim());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=en-us&gt;使い方は&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=en-us&gt;SELECT dbo.AppDomainFirendlyName()&lt;BR&gt;SELECT * FROM dbo.AssembliesList()&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=en-us&gt;という感じです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=en-us&gt;ちなみにアンマネージドのリソースの開放は、AppDomain がアンロードされるときとされていますので、SQL CLR では最低でも Using ステートメントを使ってください。&lt;BR&gt;それでも気になる方は System.GC.Collect を明示的に実行してください。&lt;BR&gt;※計測しましたが、System.GC.Collect は利きませんでした。。。&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src ="http://blogs.sqlpassj.org/mitsugi/aggbug/17719.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>