ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for 9月 2010

Microsoft TechEd 2010 ライトニングトーク「InfoPathとともに使うSQLServerの様々な機能」フォロー – 03

leave a comment »

データに対してまとまった処理を行うためにSQL Serverにストアドプロシージャを作ります。ではInfoPathからストアドプロシージャを実行する方法があるでしょうか。InfoPathのデータ接続はSQL文を自由に書けるので、ストアドプロシージャの実行も可能なように思えます。データ接続を編集すればいいはずです。まずSQL Serverにストアドプロシージャを作りましょう。
 
(slide.15 SQL Serverに作ったストアドプロシージャの例)
 
———————————————————
create procedure テストプロシージャ
as
update テスト set 氏名 = ‘松本 吉生’ where 学年 = 2
———————————————————
 
上のcreate文で生成するストアドプロシージャは、「テスト」テーブルのデータのうち、学年が2年のデータの氏名を全部「松本 吉生」に変更するストアドプロシージャです。InfoPathからこのストアドプロシージャを実行できるようにデータ接続を作りましょう。データ接続ウィザードによってInfoPathで新しいデータ接続を作り、データ接続ウィザードの最終場面で、SQLの編集によってストアドプロシージャを実行するSQL文に書き換えるのです。
 


(slide.16 データ接続ウィザード1)


(slide.17 データ接続ウィザード2)


(slide.18 データ接続ウィザード3)


(slide.19 データ接続ウィザード4)


(slide.20 データ接続ウィザード5)

上のスライド20のステップでは、とりあえず適当なデータ接続またはテーブルを選んでおきます。


(slide.21 データ接続ウィザード6)

とりあえず仮のデータ接続ができました。では「SQLの編集」ボタンをクリックしてSQL文を書き換えましょう。


(slide.22 データ接続ウィザードの最後でSQLの編集を行う)

「SQLの編集」ボタンをクリックすると、ウィザードで自動的に生成したSQL文が表示されます。これをストアドプロシージャを実行するSQL文に書き換えます。書き換えた後、SQL文に誤りはないか、実行できるか、をチェックするために「SQLステートメントのテスト」ボタンで調べます。


(slide.23 データ接続を書き換えるSQL文)

ここで書き換えるSQL文は上のスライド23のようなものです。ストアドプロシージャを実行するにはexecute文だけでよいのですが、InfoPathのデータ接続はselect文以外のものを書くと、InfoPathがエラーと判断してしまいます。そこでまずset nocount onコマンドを書き、ダミーのselect文を書き、そのうえでexecute文を書くようにするのです。


(slide.24 InfoPathフォームにボタンを作りストアドプロシージャを実行するデータ接続を実行する1)

ストアドプロシージャを実行するexecute文を書いたデータ接続ができたら、フォームにボタンを作ります。ボタンのプロパティで「動作規則」をクリックします。


(slide.25 InfoPathフォームにボタンを作りストアドプロシージャを実行するデータ接続を実行する2)

ボタンのプロパティで「動作」としてexecute文を書いたデータ接続を使用してクエリを送信する、とします。クエリを送信するとデータ接続に書いたexecute文がSQL Serverに渡され、ストアドプロシージャが実行するようになります。
広告

Written by Yoshio Matsumoto

2010年9月16日 at 8:40 PM

Microsoft Expression Blend 4の新機能をまとめる(1) – アセット

leave a comment »

昨日からMicrosoft Expression Blend 4を使っているが、まずメニューなど目に付くところの新機能をまとめてみる。

Expression Blendではコントロールやスタイルなどの「部品」を選ぶ、いわば「道具箱」に相当するものを「アセット」と呼んでいる。「アセット」は「Asset」つまり「資産・財産」という意味だ。

<アセットの内容>

Expression Blend 3のアセットは次のような項目でできている。

・プロジェクト
・コントロール
・スタイル
・ビヘイビアー
・効果
・メディア
・カテゴリ
・場所

これに対してExpression Blend 4のアセットは「図形」の項目が増えて以下のようになっている。

・プロジェクト
・コントロール
・スタイル
・ビヘイビアー
・図形
・効果
・メディア
・カテゴリ
・場所

次回はこのアセット各項目の内容についてまとめよう。

Written by Yoshio Matsumoto

2010年9月15日 at 9:56 PM

カテゴリー: Microsoft Expression

Microsoft TechEd 2010 ライトニングトーク「InfoPathとともに使うSQLServerの様々な機能」フォロー – 02

leave a comment »

InfoPathのフォーム作成でデータ接続先をSQL Serverにしたとき、データ接続ウィザードによってデータ接続を作ることができます。 
 
(slide.04 InfoPathのデータ接続ウィザード1)
 
(slide.05 InfoPathのデータ接続ウィザード2)
 
(slide.06 InfoPathのデータ接続ウィザード3)
 
(slide.07 InfoPathのデータ接続ウィザード4)
 
(slide.08 InfoPathのデータ接続ウィザード5)
 
(slide.09 InfoPathのデータ接続ウィザード6)
 
InfoPathのデータ接続ウィザードを行うと、上のスライド04から09のようにデータ接続を作成することができます。ここで「SQLの編集」ボタンをクリックすると、ウィザードによって生成した接続用のSQL文を編集することができます。「SQLの編集」によって次のスライドのようなSQL文を書きます。
 
(slide.10 InfoPathのデータ接続ウィザードで「SQLの編集」を行う)
 
「SQLの編集」では自由にSQL文を書くことができます。しかしInfoPathは、SELECT文以外を書くとエラーになってしまうので、「set nocount on」を実行し、ダミーのセレクト文を書いてから必要なSQL文を書くことにします。書いたSQL文がエラーにならないことを「SQLステートメントのテスト」ボタンをクリックして確かめるとよいでしょう。
 
(slide.11 InfoPathのデータ接続ウィザードで「SQLの編集」を行い記述したSQL文)
 
実行したいSQL文の本体はUPDATE文です。ここで使う「テスト」テーブルには、生徒の氏名や年齢などのデータが入っています。この「テスト」テーブルのデータに対して、学年が「1」年の生徒データの氏名を全部「松本吉生」に変更する、というUPDATE文になります。データ接続には以下のように記述します。
 
————————————————————
set nocount on
select ‘dummy’
update テスト set 氏名 = ‘松本吉生’ where 学年 = 1
————————————————————
 
このようにして実行したいSQL文をInfoPathの「データ接続」として作成します。ではこれをInfoPathフォームから実行するにはどうすれば良いでしょう。それはInfoPathのフォームで「ボタン」を作り、ボタンの動作に「データ接続を利用してクエリを送信する」とすればよいのです。
 
(slide.12 InfoPathのフォームでボタンを作り「クエリの送信」を動作に設定する1)
 
(slide.13 InfoPathのフォームでボタンを作り「クエリの送信」を動作に設定する2)
 
(slide.14 InfoPathのフォームでボタンを作り「クエリの送信」を動作に設定する3)
 
このようにしてボタンを作れば、ボタンをクリックすることでクエリが送信され、UPDATE文を実行することができます。

Written by Yoshio Matsumoto

2010年9月11日 at 5:48 PM

Microsoft TechEd 2010 ライトニングトーク「InfoPathとともに使うSQLServerの様々な機能」フォロー – 01

leave a comment »

Microsoft TechEd 2010 ライトニングトーク「InfoPathとともに使うSQLServerの様々な機能」について、スライドを使いながらふりかえってみる。
 

(Slide.01 InfoPathはXMLオーサリングソフトなのか)
 
MicrosoftのOffice製品情報のページには「Microsoft InfoPath 2010 は、ビジネス プロセスの合理化に役立つ、フォーム作成およびデータ収集のためのツールです。」といった説明があります。この説明は少しわかりにくいですが、Wikipediaによると「マイクロソフトが開発・販売しているXMLオーサリングソフトである。」とあり、その他の技術ページでもおおむね「XMLオーサリングソフト」といった記述が見られます。これはInfoPathの基本的な一面をあらわしていますが、それだけではありません。InfoPathはデータ接続を利用してSQL Serverなどのデータベースに接続することができ、データベースサーバーに対するクライアントアプリケーションとして利用できるのです。InfoPathはドロップダウンリストボックスやラジオボタンなどのリッチなコントロールを使い、動作規則や条件付き書式、データの入力規則など豊富な機能を使ってノンコードでデータ入力フォームを作ることができます。つまり、SQL ServerとInfoPathを組み合わせると、クライアントサーバー型のデータベース業務アプリケーションを構築することができるのです。
 
(slide.02 InfoPathとSQL Serverによるクライアントサーバー型データベースシステム概要)
 
InfoPathとSQL Serverで構築したクライアントサーバー型データベースアプリケーションはこのような構成になります。データベースはSQL Server、クライアントコンピュータにはInfopath、そしてユーザー管理のためにActive Directoryを使います。データベースの個々のデータを参照したり、登録、修正の業務は、InfoPathを使って行いますが、システム管理にはどうしても「一括操作」といった場面があります。テーブルの全部のデータをある値で更新したい、ある条件のデータに対して特定の更新業務を行いたい、ある基礎データから別のデータを一括で作成したい、といった場面です。このような一括処理はInfoPathだけではできません。そこでSQL Serverが持っている機能を使うことになりますが、SQL Serverの中で動く仕掛けを作ったときに、InfoPathからどのようにコントロールのかを知る必要があります。
 
(slide.03 SQL Serverでデータを一括して処理する方法)
 
データを一括して処理する方法には色々ありますが、InfoPathからコントロールできる手法としては、次のようなものが考えられます。まず「データ接続にクエリを書く」方法があります。InfoPathのデータ接続には、直接SQL文を書くことができるのです。次に「ストアドプロシージャ」を使う方法があります。SQL Serverにストアドプロシージャを作り、その実行をInfoPathからコントロールします。また「トリガ」を使う方法もあります。そして「ジョブ」を使う方法があります。

Written by Yoshio Matsumoto

2010年9月11日 at 5:47 PM

正式発表!待ち焦がれたMicrosoft Xbox360 「カラダまるごとコントローラー」Kinect

leave a comment »

ついに正式発表されたMicrosoft Xbox360 の Kinect。日本の発売は2010年11月20日に決定だ。

Microsoft Xbox360 Kinectの公式サイト
http://www.xbox.com/ja-JP/kinect/

新聞にも記事があったし、テレビでもニュース番組で取り上げられたらしい。Kinectは「キネクト」と発音するが、マイクロソフトがXbox 360向けに「Project Natal」というコードネームで開発してきたもので、RGBカメラなどを使ってユーザの身振り手振りや声、顔を認識し、ゲームに反映することができるコントロールシステムだ。つまり某社のゲームのように、コントローラーを手で持つ必要がない。ゲーマーはKinectの前に立つだけで、その動作を判断されゲームができる。だから「カラダまるごとコントローラー」というキャッチフレーズが使われている。

おそらくMicrosoftはこのKinectの技術を、単にXbox360のゲームコントローラーとしてだけに開発したのではないはずだ。いわばKinectの技術は、コンピュータ関連の基礎技術の集積である。つまりKinectはコンピュータやディジタルデバイスに対する新しい入力システムであるということだ。単にゲームのコントローラーに留まらない可能性を秘めている。近い将来、コンピュータに対するいくつかの操作は、顔を振ったり指を指す動作で実現できると期待される。もちろん携帯メディア端末やスレートPCといったデバイスにとってもだ。

もしKinectがコンピュータやディジタル機器にとって普遍的なものとなれば、これら機器の操作は一変するだろう。今後ますます家庭内にディジタル機器が導入されるはずなので、ホームコンピューティングのインターフェースとしても使われるのは間違いない。例えば風呂やトイレといった水周りのコントローラーを隠蔽することができるだろう。壁に液晶モニタとKinectコントローラーさえ取り付けておけば、腕を振ったり指を指し示すことで機器を操作することができるようになるはずだ。

夢は広がるKinectだが、まずはXbox360の入力コントローラーなので、対応するゲームソフトが必要だ。今回のアナウンスでは10本のゲームが発売されることがアナウンスされている。比較的地味なラインナップだが、最初のゲームとしては妥当なものだろう。個人的には「Kinectアドベンチャー」同梱のコントローラーを買い、パズル要素のある「体で答える新しい脳トレ」と音楽を楽しみながらエクセサイズができそうな「Dance Evolution」、雪の表現がどこまでリアルか体験してみたい「クロスボード7」あたりを買ってみたい。

Kinect対応のゲームも公式サイトにある。
http://www.xbox.com/ja-JP/kinect/

Written by Yoshio Matsumoto

2010年9月10日 at 2:45 AM

カテゴリー: Xbox360