第1回 DBアプリのデータソースとなるデータベースの作成連載:Visual Studio 2005によるWindowsデータベース・プログラミング(1/3 ページ)

非常にリッチだが結構複雑なVS 2005のDBアプリ作成支援機能を使いこなすための新連載。まずはDBの作成から。

» 2007年01月20日 00時00分 公開
[遠藤孝信デジタルアドバンテージ]
連載:Visual Studio 2005によるWindowsデータベース・プログラミング
業務アプリInsider/Insider.NET

powered by Insider.NET

「連載:Visual Studio 2005によるWindowsデータベース・プログラミング」のインデックス

連載目次

 Visual Studio 2005(以下、VS 2005)は、以前のVisual Studioに比べて、データベース・アプリケーション(以下、DBアプリ)を作成するための機能が非常に充実しています。うまく活用すれば、DBアプリの基本的な部分はコードやSQL文を記述しなくても作成できるほどです。

 しかしこれらのVS 2005の機能は豊富であるがゆえに、初心者にとっては使いこなすのが少々困難な部分も多く、初心者でなくとも1度や2度触ったぐらいではなかなか覚えきれるものではないはずです。

 また、VS 2005のIDE機能により作成されるDBアプリは、コンポーネントやコントロールと、デザイナやウィザードなどが自動生成するソース・コードの組み合わせで実現されています。特にVS 2005では「テーブルアダプタ(TableAdapter)」というコンポーネントが新しく導入されて、より多くのソース・コードが自動生成されるようになっています。

 もちろんこれらをブラックボックス的に扱うことにより基本的なDBアプリの機能は実現できますが、それを修正したり、拡張したり、デバッグしたりするには、IDEによる構築手順だけを知っていればよいということでは済みません。コンポーネントの組み合わせ方や自動生成されるコードの働きをよく理解しておく必要があります。

 そこで本連載では、VS 2005を使ってWindows向けのDBアプリを構築する際の操作手順をまとめつつ、.NET Frameworkで用意されているDBアプリ構築のための各種機能や、IDEによって自動生成されるDBアプリの仕組みについて解説していこうと思います。それらを理解することで、IDEで行う操作の意味もより理解できるようになるはずです。

 開発環境としては、Visual Basicが使えるVS 2005の無償版である「Visual Basic 2005 Express Edition」(以下、VB 2005)を基本的に使用していきます。VB 2005は無償といっても、Windowsアプリケーションの構築に関しては有償版のVS 2005とほとんど同じ機能が使えます。そのため本連載で解説する内容は、ほとんどそのままVB 2005以外のVS 2005のエディションにも当てはまります。

 データベースとしては、SQL Server 2005の無償版である「SQL Server 2005 Express Edition」を利用します(SQL Server 2005 Express EditionのインストールはVB 2005やVS 2005のセットアップにも含まれています)。次で触れているように、本番環境でExpress Edition以外のSQL Server 2005を使用する場合でも、SQL Server 2005 Express Editionを開発マシンにインストールしておくとDBアプリの開発/テストが便利に行えます。

便利なSQL Server 2005 Express EditionのDBファイル

 まずはデータベースとして利用するSQL Server 2005 Express Editionについて少し触れておきます。

 Windows向けのDBアプリには、これまで主に次の2つのパターンがありました。

(1)データベース製品(SQL ServerやOracle)がインストールされたDBサーバに接続してデータベースを操作

(2)AccessのDBファイル(.mdbファイル)を開いてデータベースを操作

 DBサーバでSQL Server 2005を使用する環境では当然ながら(1)のパターンが利用できますが、SQL Server 2005 Express Editionがインストールされているマシンでは、これまでSQL Serverが管理していたデータベースが格納されているファイル*1だけを抜き出し、(2)のパターンでデータベースを操作することが可能になりました。つまり、SQL Server用のDBファイルを、AccessのDBファイルのように扱えるわけです。

図1 SQL Server 2005 Express Editionが扱うDBファイル
SQL Serverのデータベースは複数のDBファイルから構成されるが(画面右側)、SQL Serverの稼働中にはそれらのDBファイルを操作することはできない(デタッチやアタッチの操作が必要)。SQL Server 2005 Express EditionがインストールされているマシンではDBファイルを単体で扱え、AccessのDBファイルのようにDBアプリからアクセスできる(実際にはSQL Server 2005 Express Editionが動的にDBファイルのアタッチ/デタッチを行う)。

*1 SQL Server(SQL Server 2000やSQL Server 2005)では、1つのデータベースは、レコードが格納されたDBファイル(.mdfファイル)と、そのログ・ファイル(.mdlファイル)の2つで構成されます。


 このことは、DBアプリとDBファイル、そしてSQL Server 2005 Express EditionのパッケージをセットにしてスタンドアロンなDBアプリを構築できるだけでなく、サーバ/クライアント形式のDBアプリを構築する開発者にとっても非常に便利な機能です。

 というのも、DBアプリのテスト時にDBサーバに接続せずに、DBファイルだけをローカルにコピーして自由にテストができるためです。テスト時にレコードの追加や更新を行ってデータベースが“ごみレコード”だらけになっても、あらかじめコピーしておいたオリジナルのDBファイルで上書きすれば、すぐに元の状態に戻せます。

 また逆に、データベースの新規作成時には、手元のマシンでDBファイルとして作成しておき、それを後でDBサーバにコピー(およびアタッチ)して使うこともできます。

 同じ構成のデータベースであれば、DBファイルのデータベースを利用するか、DBサーバ上のデータベースを利用するかの切り替えは、アプリケーションの設定ファイル(アプリケーション構成ファイルである「.configファイル」)内にある「接続文字列」を書き換えるだけです。接続文字列には、DBアプリで使用するデータベースの位置(DBサーバのアドレスあるいはDBファイルのパス)や接続のための認証情報などが記述されています。

データベースの追加

 今回は1回目ということで、データベースの作成から始めてみましょう。前述のSQL Server 2005 Express Editionの機能を利用して、VB 2005でDBファイルによるデータベースを作成します。さらにはデータベース内にテーブルを作成し、そこにいくつかのレコードも作成します。

■Windowsアプリケーション・プロジェクトの新規作成

 まずはVB 2005を起動しましょう。次の図はVB 2005の起動時の画面です。

図2 VB 2005(Visual Basic 2005 Express Edition)の起動時の画面

 そして新しいプロジェクトを作成します。プロジェクトのテンプレートとしては「Windowsアプリケーション」を選択します。

■プロジェクトへのDBファイルの追加

 Windowsフォームの画面が開いたら、プロジェクトに新しい項目としてDBファイルを追加します。これにはまず、次の画面のようにプロジェクトを右クリックしてメニューから[新しい項目]を実行します。

図3 プロジェクトに新しい項目を追加
ソリューション・エクスプローラでプロジェクト名の部分を右クリックし、メニューから[新しい項目]を実行する。

 [新しい項目の追加]ダイアログが開きますので「SQL データベース」を選択します。これはSQL Server用の空のDBファイルを意味しています。ファイル名の欄にはDBファイルのファイル名を指定します。

図4 [新しい項目の追加]ダイアログ
テンプレートとして「SQL データベース」を選択し、DBファイルのファイル名を指定する。[追加]ボタンをクリックするとプロジェクトに空のDBファイルが追加される。

 [追加]ボタンをクリックするとプロジェクトに空のDBファイルが追加されますが、続けて「データソース構成ウィザード」が実行されます。

図5 データソース構成ウィザード

 データソース構成ウィザードの「データソース」とは「データを供給する源」のことです。マクロ的に見ると、DBアプリでは「データベースがアプリケーションのデータソース」となります。たいていの場合、データソースは単一のデータを返すものではなく、テーブル内のレコードのような複数のデータを返します。

 ここでは「データセット内に指定するデータベース オブジェクト」を選択するように指示されています。「データベース オブジェクト」とはデータベースに含まれるオブジェクトで、例えばデータベースに含まれるテーブルはデータベース・オブジェクトの1つです。

 「データセット」は次回で解説しますが、簡単にいうと「データベースから取得したレコードをメモリ上に持つため入れ物」です。例えばDBアプリで、グリッド・コントロール(DataGridViewコントロールなどの表形式のコントロール)によりデータを表示する場合には、いったんレコードをデータセットに読み込み、それをグリッドに表示します。ちなみにこの場合には、「データセットがグリッド・コントロールのデータソース」となります。

 今回では詳しく述べませんが、データセットには単にデータベースのレコードだけではなく、レコードを含んだテーブル全体をそのままデータベースからコピーしてきて格納することが可能です。

 現時点ではまだ新規作成したばかりなので、当然ながらデータベース・オブジェクトは何もありません。取りあえず[完了]ボタンをクリックしてデータソース構成ウィザードを完了しておきます。

       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。