うなまな Blog /Blog/unaap VB覚え書き ja AILight RSS ブログ移行 /Blog/unaap/Archive/2008/9/23/%E3%83%96%E3%83%AD%E3%82%B0%E7%A7%BB%E8%A1%8C?info=rss /Blog/unaap/Archive/2008/9/23/%E3%83%96%E3%83%AD%E3%82%B0%E7%A7%BB%E8%A1%8C?info=rss 128666494200000000 うなまな http://www.higuchi.dev-asp.net/

に移行中です。

]]>
0 /Blog/unaap/RSS/%E3%83%96%E3%83%AD%E3%82%B0%E7%A7%BB%E8%A1%8C
岡山勉強会-第3回 /Blog/unaap/Archive/2008/9/1/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC3%E5%9B%9E?info=rss /Blog/unaap/Archive/2008/9/1/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC3%E5%9B%9E?info=rss 128662824000000000 うなまな 意見交換などは、こちらでお願いします。
現在、内容は全く未定なので、要望セッションなどお気軽に・・・ ]]>
0 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC3%E5%9B%9E MVP
ギターヒーロー3 /Blog/unaap/Archive/2008/8/30/%E3%82%AE%E3%82%BF%E3%83%BC%E3%83%92%E3%83%BC%E3%83%AD%E3%83%BC3?info=rss /Blog/unaap/Archive/2008/8/30/%E3%82%AE%E3%82%BF%E3%83%BC%E3%83%92%E3%83%BC%E3%83%AD%E3%83%BC3?info=rss 128645570400000000 うなまな とてもよくできていて、これは買いかなと・・・
次は負けないように練習しとかなきゃと。。。]]>
0 /Blog/unaap/RSS/%E3%82%AE%E3%82%BF%E3%83%BC%E3%83%92%E3%83%BC%E3%83%AD%E3%83%BC3 Xbox360
Live Mesh インストール /Blog/unaap/Archive/2008/8/30/Live%20Mesh%20%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB?info=rss /Blog/unaap/Archive/2008/8/30/Live%20Mesh%20%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB?info=rss 128645565600000000 うなまな なんかいいねぇ。
今後に期待です。]]>
0 /Blog/unaap/RSS/Live%20Mesh%20%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB e.t.c
TechEd2008 コミュニティ ライトニング トーク /Blog/unaap/Archive/2008/8/27/TechEd2008%20%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%20%E3%83%A9%E3%82%A4%E3%83%88%E3%83%8B%E3%83%B3%E3%82%B0%20%E3%83%88%E3%83%BC%E3%82%AF?info=rss /Blog/unaap/Archive/2008/8/27/TechEd2008%20%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%20%E3%83%A9%E3%82%A4%E3%83%88%E3%83%8B%E3%83%B3%E3%82%B0%20%E3%83%88%E3%83%BC%E3%82%AF?info=rss 128642976600000000 うなまな 技術的な話ではなく、コミュニティに関しての話でしたが、
このような場で話せて大変よかったです。

ちょっと真面目に話しすぎたのが悔やまれます。
関係者・登壇者・参加された方々、ありがとうございました。

企画された原水さんのブログでも紹介されています。

]]>
0 /Blog/unaap/RSS/TechEd2008%20%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%20%E3%83%A9%E3%82%A4%E3%83%88%E3%83%8B%E3%83%B3%E3%82%B0%20%E3%83%88%E3%83%BC%E3%82%AF e.t.c
岡山勉強会-第2回の1セッションを担当してくれる方 /Blog/unaap/Archive/2008/7/22/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E3%81%AE%EF%BC%91%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8B%85%E5%BD%93%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E6%96%B9?info=rss /Blog/unaap/Archive/2008/7/22/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E3%81%AE%EF%BC%91%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8B%85%E5%BD%93%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E6%96%B9?info=rss 129456346216000000 うなまな どなたか、セッションを担当していただける方、いませんか?

不安な方は、私がサポートしますので、二人で行うのもありです。
「やってみようかな」という方、ご一報頂ければと思います。 ]]>
2 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E3%81%AE%EF%BC%91%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8B%85%E5%BD%93%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E6%96%B9 INETAJ
岡山勉強会-第2回開催決定! /Blog/unaap/Archive/2008/7/9/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E9%96%8B%E5%82%AC%E6%B1%BA%E5%AE%9A%EF%BC%81?info=rss /Blog/unaap/Archive/2008/7/9/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E9%96%8B%E5%82%AC%E6%B1%BA%E5%AE%9A%EF%BC%81?info=rss 128606682600000000 うなまな 詳細・参加登録などは、以下を参照してください。

http://oitec.vbstation.net/modules/eguide/event.php?eid=1

?

]]>
0 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%8D%E7%AC%AC%EF%BC%92%E5%9B%9E%E9%96%8B%E5%82%AC%E6%B1%BA%E5%AE%9A%EF%BC%81 VB6.0
岡山・IT・エンジニアズ・コミュニティ立ち上げ /Blog/unaap/Archive/2008/7/3/%E5%B2%A1%E5%B1%B1%E3%83%BBIT%E3%83%BB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%82%BA%E3%83%BB%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92?info=rss /Blog/unaap/Archive/2008/7/3/%E5%B2%A1%E5%B1%B1%E3%83%BBIT%E3%83%BB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%82%BA%E3%83%BB%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92?info=rss 128606682600000000 うなまな Okayama IT Engineers Community
というコミュニティを立ち上げました。

http://oitec.vbstation.net/

興味にある方は、ぜひ、ユーザ登録してください。岡山県以外の方ももちろんOKです。]]>
3 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E3%83%BBIT%E3%83%BB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%82%BA%E3%83%BB%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92 OITEC
岡山の開発者のコミュニティを立ち上げたい /Blog/unaap/Archive/2008/6/26/%E5%B2%A1%E5%B1%B1%E3%81%AE%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%81%9F%E3%81%84?info=rss /Blog/unaap/Archive/2008/6/26/%E5%B2%A1%E5%B1%B1%E3%81%AE%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%81%9F%E3%81%84?info=rss 128606682600000000 うなまな 一応CMS立ち上げテストは行っているので、サイト名が決まれば、サブドメインを取得して、立ち上げる予定。

サイトの目的は、
1.意見交換
2.イベント告知・管理
3.コミュニケーションの場
がメインの目的です。

Okayama Developer Community(Communications、Circle)-->略してODC
Okayama Information Technology Community(Communications、Circle)-->略してOITC
Okayama Developer Exchange-->略してODE

などなど・・・
いい名前はないですかね~]]> 2 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E3%81%AE%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%81%9F%E3%81%84 INETAJ [覚書]PDFCreatorのファイル名 /Blog/unaap/Archive/2008/6/23/%5B%E8%A6%9A%E6%9B%B8%5DPDFCreator%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D?info=rss /Blog/unaap/Archive/2008/6/23/%5B%E8%A6%9A%E6%9B%B8%5DPDFCreator%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D?info=rss 128587092000000000 うなまな PDFCreatorを利用して、VBよりPDF出力しようとしているけど、
AutosaveFilenameオプションの設定は無効になるようですね。

出力完了後に、cOutputFilenameプロパティの値を利用すれば問題ないですけど、次バージョンでは
このあたりが改善されていればいいかなぁ。

]]>
0 /Blog/unaap/RSS/%5B%E8%A6%9A%E6%9B%B8%5DPDFCreator%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D VB6.0
第2回勉強会がなかなか・・・ /Blog/unaap/Archive/2008/6/19/%E7%AC%AC%EF%BC%92%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%81%8C%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8B%E3%83%BB%E3%83%BB%E3%83%BB?info=rss /Blog/unaap/Archive/2008/6/19/%E7%AC%AC%EF%BC%92%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%81%8C%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8B%E3%83%BB%E3%83%BB%E3%83%BB?info=rss 128583892200000000 うなまな 場所さえ決まれば、即決で開催決定なんですけどね。

セッション内容はどうにかなると思うし。

なお、勉強会開催に向けて、協力していただける方も募集中!

]]>
5 /Blog/unaap/RSS/%E7%AC%AC%EF%BC%92%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%81%8C%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8B%E3%83%BB%E3%83%BB%E3%83%BB MVP
今年もいただけました /Blog/unaap/Archive/2008/4/8/%E4%BB%8A%E5%B9%B4%E3%82%82%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F?info=rss /Blog/unaap/Archive/2008/4/8/%E4%BB%8A%E5%B9%B4%E3%82%82%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F?info=rss 128521194000000000 うなまな Microsoft MVP for Visual Developer - Visual Basic
を頂けました。受賞できたのが不思議。

関係各位の方々、今年もよろしくです。]]> 2 /Blog/unaap/RSS/%E4%BB%8A%E5%B9%B4%E3%82%82%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F MVP Visual Basic Power Packs 3.0 /Blog/unaap/Archive/2008/3/25/Visual%20Basic%20Power%20Packs%2030?info=rss /Blog/unaap/Archive/2008/3/25/Visual%20Basic%20Power%20Packs%2030?info=rss 128509099200000000 うなまな 一番実装してほしかった、DataRepeater Control が実装されてました。

Visual Basic Power Packs 3.0
http://www.microsoft.com/downloads/details.aspx?FamilyId=371368A8-7FDC-441F-8E7D-FE78D96D4063&displaylang=en

細かく機能を確認していませんが、VB6時代のDataRepeaterと、ほぼ同じ
ことができそうです。本家サイトでTips公開しなければ・・・

]]>
0 /Blog/unaap/RSS/Visual%20Basic%20Power%20Packs%2030 VB6.0
岡山勉強会、無事終了 /Blog/unaap/Archive/2008/3/23/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%80%81%E7%84%A1%E4%BA%8B%E7%B5%82%E4%BA%86?info=rss /Blog/unaap/Archive/2008/3/23/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%80%81%E7%84%A1%E4%BA%8B%E7%B5%82%E4%BA%86?info=rss 128507455200000000 うなまな 講師、実行の関係者の方々、ありがとうございました。
また、休日に参加して頂いた方、ありがとうございました。

参加された方々と名刺交換などができなかったのが残念。
参加された方、よろしきれば、連絡を・・・

次回の勉強会のこともありますので・・・
よろしくです。

]]>
5 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%80%81%E7%84%A1%E4%BA%8B%E7%B5%82%E4%BA%86 e.t.c
岡山で勉強会! /Blog/unaap/Archive/2008/2/28/%E5%B2%A1%E5%B1%B1%E3%81%A7%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%81?info=rss /Blog/unaap/Archive/2008/2/28/%E5%B2%A1%E5%B1%B1%E3%81%A7%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%81?info=rss 128486623800000000 うなまな

このたび、岡山にてコミュニティ支援団体であるNPO法人アイネタ ジャパンと
マイクロソフトが共催で勉強会を開催します。

・日時 2008 年 3 月 22 日 (土) 13:00~18:30 (受付開始 12:30)
・会場 第一セントラルビル 3F 中ホール (岡山県岡山市) [詳細MAP]

岡山でのイベントは初めてなのですが、今後、定期的に行えるように
してく予定です。

詳細は、http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032370662

]]>
0 /Blog/unaap/RSS/%E5%B2%A1%E5%B1%B1%E3%81%A7%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BC%81 VS2005
広島CLTイベント終了 /Blog/unaap/Archive/2007/5/20/%E5%BA%83%E5%B3%B6CLT%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E7%B5%82%E4%BA%86?info=rss /Blog/unaap/Archive/2007/5/20/%E5%BA%83%E5%B3%B6CLT%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E7%B5%82%E4%BA%86?info=rss 128241319800000000 うなまな なんとか無事にこなせたという感じです。時間は、10分オーバー。。。
デモも削ってしまったので、blogなどで、別途公開していく予定です。

関係者の方々、ご苦労さまでした。

]]>
2 /Blog/unaap/RSS/%E5%BA%83%E5%B3%B6CLT%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E7%B5%82%E4%BA%86 INETAJ
Vistaの音声合成は英語のみ? /Blog/unaap/Archive/2007/3/5/Vista%E3%81%AE%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%81%AF%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BF%EF%BC%9F?info=rss /Blog/unaap/Archive/2007/3/5/Vista%E3%81%AE%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%81%AF%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BF%EF%BC%9F?info=rss 129456855220830000 うなまな なので、Office2003で提供されているKenjiを利用してみるとうまく日本語を話す。
これでマイクロソフトナレータも利用できますね。

ナレータを利用したいんでなくて、System.Speech名前空間を利用したプログラムで
遊びたかっただけなのだが、SpeakProgressイベントなどが日本語だとダメみたい。

SAPI5.3の情報も少ないし、Microsoft Anna以外の音声はいものか・・・("Takashi","Keiko"?)

]]>
3 /Blog/unaap/RSS/Vista%E3%81%AE%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%81%AF%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BF%EF%BC%9F WPF/XAML
Visual Studio Code Name "Orcas" - March 2007 CTPが・・・ /Blog/unaap/Archive/2007/3/1/Visual%20Studio%20Code%20Name%20Orcas%20-%20March%202007%20CTP%E3%81%8C%E3%83%BB%E3%83%BB%E3%83%BB?info=rss /Blog/unaap/Archive/2007/3/1/Visual%20Studio%20Code%20Name%20Orcas%20-%20March%202007%20CTP%E3%81%8C%E3%83%BB%E3%83%BB%E3%83%BB?info=rss 128172342000000000 うなまな http://www.microsoft.com/downloads/details.aspx?FamilyID=B533619A-0008-4DD6-9ED1-47D482683C78&displaylang=en

http://www.microsoft.com/downloads/details.aspx?FamilyID=281fcb3d-5e79-4126-b4c0-8db6332de26e&DisplayLang=en

は別モノなのか?

]]>
0 /Blog/unaap/RSS/Visual%20Studio%20Code%20Name%20Orcas%20-%20March%202007%20CTP%E3%81%8C%E3%83%BB%E3%83%BB%E3%83%BB VS2005
TableAdapterにトランザクションを実装 /Blog/unaap/Archive/2007/2/13/TableAdapter%E3%81%AB%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A3%85?info=rss /Blog/unaap/Archive/2007/2/13/TableAdapter%E3%81%AB%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A3%85?info=rss 130076900259730000 うなまな 複数のTableAdapterにトランザクションを実装したりするのも・・・
以下のようなクラスを作ってテスト中・・・

Imports System.Data.SqlClient
Imports System.Reflection
''' <summary>
''' TableAdapterにトランザクション機能を実装するクラス
''' </summary>
''' <remarks>
''' 利用方法の例
'''    Dim tat As New TableAdapterTransactor
'''    Dim taData1 As New Data1TableAdapter
'''    Dim taData2 As New Data2TableAdapter
'''    
'''    tat.AddTableAdapter(taData1)
'''    tat.AddTableAdapter(taData2)
'''    tat.BeginTransaction()
'''    Try
'''        taData1.Insert......
'''        taData2.Insert......
'''        tat.Commit()
'''    Catch ex As Exception
'''        tat.Rollback()
'''    End Try
''' </remarks>
Public Class TableAdapterTransactor
    Private _conn As SqlConnection = Nothing
    Private _trans As SqlTransaction = Nothing
    Private _tableAdapters As New List(Of Object)
#Region "Pプロシージャ - GetConnection                     [TableAdapterのConnectionを取得する]"
    ''' <summary>
    ''' TableAdapterのConnectionを取得する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <returns>取得したConnection</returns>
    ''' <remarks></remarks>
    Private Function GetConnection(ByVal tableAdapter As ObjectAs SqlConnection
        Dim type As Type = tableAdapter.GetType()
        Dim connectionProperty As PropertyInfo = _
            type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim connection As SqlConnection = _
            CType(connectionProperty.GetValue(tableAdapter, Nothing), SqlConnection)
        Return connection
    End Function
#End Region
#Region "Pプロシージャ - SetConnection                     [TableAdapterのConnectionを設定する]"
    ''' <summary>
    ''' TableAdapterのConnectionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="connection">Connection</param>
    ''' <remarks></remarks>
    Private Sub SetConnection(ByVal tableAdapter As ObjectByVal connection As SqlConnection)
        Dim type As Type = tableAdapter.GetType()
        Dim connectionProperty As PropertyInfo = _
            type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
        connectionProperty.SetValue(tableAdapter, connection, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - GetAdapter                        [TableAdapterのDataAdapterを取得する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterを取得する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <returns>取得したDataAdapter</returns>
    ''' <remarks></remarks>
    Private Function GetAdapter(ByVal tableAdapter As ObjectAs SqlDataAdapter
        Dim type As Type = tableAdapter.GetType()
        Dim adapterProperty As PropertyInfo = _
            type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim adapter As SqlDataAdapter = _
            CType(adapterProperty.GetValue(tableAdapter, Nothing), SqlDataAdapter)
        Return adapter
    End Function
#End Region
#Region "Pプロシージャ - SetAdapter                        [TableAdapterのDataAdapterを設定する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="adapter">DataAdapter</param>
    ''' <remarks></remarks>
    Private Sub SetAdapter(ByVal tableAdapter As ObjectByVal adapter As SqlDataAdapter)
        Dim type As Type = tableAdapter.GetType()
        Dim adapterProperty As PropertyInfo = _
            type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        adapterProperty.SetValue(tableAdapter, adapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - InitAdapter                       [TableAdapterのInitAdapterメソッドを呼び出す]"
    ''' <summary>
    ''' TableAdapterのInitAdapterメソッドを呼び出す
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks>利用しない</remarks>
    Private Sub InitAdapter(ByVal tableAdapter As Object)
        Dim type As Type = tableAdapter.GetType()
        Dim mi As MethodInfo = _
            type.GetMethod("InitAdapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        mi.Invoke(tableAdapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - InitCommandCollection             [TableAdapterのInitCommandCollectionメソッドを呼び出す]"
    ''' <summary>
    ''' TableAdapterのInitCommandCollectionメソッドを呼び出す
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks>利用しない</remarks>
    Private Sub InitCommandCollection(ByVal tableAdapter As Object)
        Dim type As Type = tableAdapter.GetType()
        Dim mi As MethodInfo = _
            type.GetMethod("InitCommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
        mi.Invoke(tableAdapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - SetTransactionCommands            [TableAdapterのCommandCollectionのTransactionを設定する]"
    ''' <summary>
    ''' TableAdapterのCommandCollectionのTransactionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="transaction">Transaction</param>
    ''' <remarks></remarks>
    Private Sub SetTransactionCommands(ByVal tableAdapter As ObjectByVal transaction As SqlTransaction)
        Dim type As Type = tableAdapter.GetType()
        Dim commandsProperty As PropertyInfo = _
            type.GetProperty("CommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim commands As SqlCommand() = _
            CType(commandsProperty.GetValue(tableAdapter, Nothing), SqlCommand())
        For Each command As SqlCommand In commands
            command.Transaction = transaction
        Next
        Me.SetConnection(tableAdapter, transaction.Connection)
    End Sub
#End Region
#Region "Pプロシージャ - SetTransactionAdapter             [TableAdapterのDataAdapterのTransactionを設定する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterのTransactionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="transaction">Transaction</param>
    ''' <remarks></remarks>
    Private Sub SetTransactionAdapter(ByVal tableAdapter As ObjectByVal transaction As SqlTransaction)
        Dim adp As SqlDataAdapter = Me.GetAdapter(tableAdapter)
        If adp.InsertCommand IsNot Nothing Then
            adp.InsertCommand.Transaction = transaction
        End If
        If adp.DeleteCommand IsNot Nothing Then
            adp.DeleteCommand.Transaction = transaction
        End If
        If adp.UpdateCommand IsNot Nothing Then
            adp.UpdateCommand.Transaction = transaction
        End If
        Me.SetAdapter(tableAdapter, adp)
        'Me.InitCommandCollection(tableAdapter)
    End Sub
#End Region
#Region "メソッド - AddTableAdapter                        [TableAdapterを追加する]"
    ''' <summary>
    ''' TableAdapterを追加する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks></remarks>
    Public Sub AddTableAdapter(ByVal tableAdapter As Object)
        Me._tableAdapters.Add(tableAdapter)
    End Sub
#End Region
#Region "メソッド - BeginTransaction                       [トランザクションを開始する]"
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <remarks>開始する前に、AddTableAdapterメソッドで対象となるTableAdapterを追加すること</remarks>
    Public Sub BeginTransaction()
        Dim counter As Integer = 0
        For Each adapter As Object In Me._tableAdapters
            counter += 1
            If counter = 1 Then
                Me._conn = Me.GetConnection(adapter)
                If Me._conn.State <> ConnectionState.Open Then
                    Me._conn.Open()
                End If
                Me._trans = Me._conn.BeginTransaction()
            End If
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <param name="conn">コネクション</param>
    ''' <remarks></remarks>
    Public Sub BeginTransaction(ByVal conn As SqlConnection)
        Me._conn = conn
        If Me._conn.State <> ConnectionState.Open Then
            Me._conn.Open()
        End If
        Me._trans = Me._conn.BeginTransaction()
        For Each adapter As Object In Me._tableAdapters
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <param name="trans">トランザクション</param>
    ''' <remarks></remarks>
    Public Sub BeginTransaction(ByVal trans As SqlTransaction)
        Me._conn = trans.Connection
        Me._trans = trans
        For Each adapter As Object In Me._tableAdapters
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
#End Region
#Region "メソッド - Commit                                 [トランザクションをコミットする]"
    ''' <summary>
    ''' トランザクションをコミットする
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Commit()
        Try
            Me._trans.Commit()
        Catch ex As Exception
            Me._trans.Rollback()
            Throw ex
        Finally
            If (Me._conn.State = ConnectionState.Open) Then
                Me._conn.Close()
            End If
        End Try
    End Sub
#End Region
#Region "メソッド - Rollback                               [トランザクションをロールバックする]"
    ''' <summary>
    ''' トランザクションをロールバックする
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Rollback()
        Me._trans.Rollback()
        If (Me._conn.State = ConnectionState.Open) Then
            Me._conn.Close()
        End If
    End Sub
#End Region
End Class
]]>
2 /Blog/unaap/RSS/TableAdapter%E3%81%AB%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A3%85 VS2005
Visual Basic 2005 Power Packs /Blog/unaap/Archive/2007/1/19/Visual%20Basic%202005%20Power%20Packs?info=rss /Blog/unaap/Archive/2007/1/19/Visual%20Basic%202005%20Power%20Packs?info=rss 128137005600000000 うなまな Visual Basic 2005 Power Packs便利なものがあったんですね。
Microsoft Printer Compatibility Library 1.0
・Microsoft Interop Forms Toolkit 1.0
・Microsoft PrintForm Component 1.0
 
VB6時代の資産にPrinterオブジェクトでゴリゴリ書いて印刷していたものを、.NETへ移行するのは大変だけど、 Microsoft Printer Compatibility Library 1.0 を入れれば、幸せになれそうですね。

今後も便利なツールが提供されそうなので、要チェックですね。

]]>
0 /Blog/unaap/RSS/Visual%20Basic%202005%20Power%20Packs VB6.0