Flex Builder でつくる データベースアプリケーション SQL Server 編

はたしてどのくらい需要があるのか疑問ですが。
10月に出たFlex Builder Beta 2から web サービス作成ウィザードが動くようになったので、これを使って SQL Server などのデータベースにアクセスできます。
Flex Builder で作れるということはここから Adobe Air アプリケーションに変換もできます。

SQL Server 2005 のサンプルデータベースである、AdventureWorks を使って説明を行います。他のデータベースでももちろんOKです。
あと、Windows 認証では動作しないようなので SQL Server 認証を受け入れる設定にしておかねばなりません。SQL Server Management Studio からサーバ名右クリック → プロパティ、セキュリティでサーバ認証を「SQL Server 認証モードとWindwos 認証モード」にしてください。設定を変更した場合は SQL Server サービスの再起動が必要です。ログイン、ユーザ等セキュリティの設定は適宜行ってください。

Flex Builder 3 をまだインストールしていないという方は http://d.hatena.ne.jp/p-nix/20070802 などをご参照ください。バージョンひとつ古いけど。

では早速はじめましょー。

Flex Builder 3 起動。

File → New → MXML Application

Project Name を入力します。(ここでは test01 とします。)
Application server type を「ASP.NET」にします。
[Next]ボタンを押します。


Server の Web Application Root はどちらでもいいのですが、「Use Internaet Information Server(IIS)」にする。
Server Location はとりあえず 「C:\inetpub\wwwroot」、Web Application URL は「http://localhost」にする。
設定が正しいか念のために[Validate Configuration]ボタンを押して確認しよう。設定が正しければ画面上部に

と表示されます。
[Next]ボタンを押す。



そのまま [Finish] ボタンを押す。

データベース開発用に画面(パースペクティブ)を変更する。ここがポイントです。
Windows → Perspective → Other...
パースペクティブ選択画面が現れるので Database Development を選択する。

[OK] ボタンを押す。
画面左側が変化します。この左側の部分を「Data Source Explorer」といいます。

Data Source Explorer の Databases を右クリック → New



Simple Microsoft SQL Server Connection をクリックして [Next] ボタンを押す。



Name を conn1 とでもしましょう。Description は空でOK。
[Next] ボタンを押す。



Server Name を「localhost
Database Name を「AdventureWorks」
UserName、Password はSQL Server 認証で使用するものを。
[Next] ボタンを押す。



[Finish] ボタンを押す。
これにて Connection(接続)設定完了。Data Source Explorer に conn1 が表示されます。


conn1 を右クリック → connect
conn1 の下にデータベース名が表示されます。ダブルクリックして進んでいくとテーブル一覧が表示されます。


では Contact テーブルを表示するアプリケーションを作ってみましょう。

Contact を右クリック → Create Application from Database

Project は現在のProject、Connection は conn1、Table は Contact が指定されていることを確認します。[Next] ボタンを押す。

Class Name は Contact そのままで。[Next] ボタンを押す。

表示する列を選択する画面。とりあえずデフォルトのままで。[Finish] ボタンを押す。



わーい、画面にグリッドが表示され、新規作成ボタン、ゴミ箱、検索ボタンまでついているという至れり尽くせり。

早速実行しましょう。Run → Run または緑地に白三角ボタンをクリック。


エラーでした。。「予期せぬエラー」って。log に書き込みましたとあるけどログを見つけることができず、しばし呆然。

気を取り直して SQL ServerSQL Profiler で投げられた SQL 文を確認。どうやら テーブルの指定が
from Contact
となっているのですが、
from Person.Contact
でなければならないみたい。SQL 文を手作業で修正しましょう。ここまでコードを書かずにきたのでかえって分かりづらくなっていますが、DB へのアクセスは C# の web サービスとして実装されています。C:\inetpub\wwwroot\App_Code に、conn1.cs と Contact.cs というファイルがあります。Adobe製のソフトがC#を吐くというだけでも感激。
Contact.cs の26行目くらいに
sql.Append(" FROM Contact ");
というのがあるので
sql.Append(" FROM Person.Contact ");
と変更しましょう。

保存したら再度 Flex Builder から実行。

見事動きました。これを Adobe Air 形式にするには http://d.hatena.ne.jp/p-nix/20070802 などをご参照ください。


もちろんこれだけではとても実用に耐えうるアプリとはいえません。しかし web サービスを経由したアプリケーションがこんなにお手軽にできるというのは魅力的なのではないでしょうか。Flex だと Flashとの親和性も高いのでRIAなリッチなアプリケーションもできるわけですし。Flashみたいにかっこよくて、かつWebサービス経由なフレキシブルなアプリケーションが構築できるのではないでしょうか。


参考ページ
アダルト・風俗情報まとめ ラブスタイル