SQL Server実践的入門(第4回)
データフォームウイザードの全機能を活用
Visual Database Toolsの活用

横田 秀次郎

Visual Database Toolsについて


 本連載の第1および2回目で紹介したInterDevはVisual C++,Visual J++,Visual Basicと共通な統合ビジュアル開発環境を備えており,この中から直接データベースにアクセスし操作できるVisual Database Toolsと総称されるツール機能が組み込まれています.
 Visual Database Toolsは,下記の要素から構成されています.

(1) Data View
(2) Database Designer
(3) Query Designer
(4) SQLソースコードエディター


 (1)についてはすでに具体的に紹介済みですが,今回は(2)を利用して新規テーブルの作成を行います.


テーブルの新規作成


 すでに作成済みのcqtest_dbの中に次の仕様のテーブルを作成することにします.表1に示すテーブルは,本誌HelpDeskの索引情報をテーブルにしたものです.
 連載1回目にプロジェクト「test1」を作成し,その中でDSN「cqtest_ds」経由でデータベースcqtest_dbに接続するデータベース接続を定義しましたが,このプロジェクトをそのまま使用することにします.
 プロジェクト「test1」のData Viewの階層ツリーの中で,図1に示したように「テーブル」にマウスカーソルを当てて右クリックして,ショートカットメニューを呼び出します.

Image298 (2).gif (8992 バイト)


 ここで「新規テーブルの挿入(T)」を選ぶと,図2のテーブルの名前を指定するダイアログが呼び出されます.ここでテーブル名をBO_HelpDeskと入力して先へ進むと,図3のテーブル定義のダイアログが呼び出されます.

Image299 (2).gif (2702 バイト)  

Image300 (2).gif (21150 バイト)

hyou.gif (3042 バイト)


 図3の画面で計画したテーブル仕様のデータを入力します.この画面で最初の列「Q番号」にキーを付けるにはこの行を選択しておいて,図4の「テーブル」ツールバーを呼び出し,キーの形をしたアイコンをクリックします.するとこの行の左端にキーのマークが付きますので,この行で定義するテーブルの列にキーが付いたことが確認できます.
 テーブルツールバーがたまたま画面上に表示されていないときはメニューバーの「ツール(T)」-「カスタマイズ(C)」を選択することにより,カスタマイズウィンドウを呼び出し,「ツールバー」タブを選択して得られたウィンドウでテーブルにチェックマークを付けて戻ると,表示されます.
 テーブルの作成が終わると,図5に示したようにDataViewにテーブル名BO_HelpDeskが追加されます.

Image302 (2).gif (5812 バイト)

 DataViewの中でテーブル名BO_HelpDeskを選んでダブルクリックすると,図6のようにデータ参照変更画面が呼び出されます.この画面を使ってプログラムのテストデータを作成します.

Image303 (2).gif (10543 バイト)


データ変更が可能なホームページの作成

 本連載の2回目で,データベース参照専門のホームページの作成法を説明しましたが,ここではデータの変更,追加,削除,検索条件の指定が可能なものをデータフォームウィザードで作成することにします.
 まず図7の画面から始まりますが,ファイル名としてhelpdeskを指定することにします.

Image304 (2).gif (7722 バイト)

 作成手順は前回と同じですが,途中のオプション機能の選択が異なりますので,相違点のみを紹介します.
 プロジェクトtest1とデータベース接続cqtest_dpは前回のものをそのまま使います.使用するテーブルはBO_HelpDeskですので,図8の画面を経由します.行データの追加も行うのですべての列を指定します.

Image305 (2).gif (15216 バイト)

 図9のデータアクセスモードの指定画面では,すべての機能を生かすように指定します.

Image306 (2).gif (12633 バイト)


 図10の表示オプション指定画面では,フォームビュー,リストビューの両方の画面を使用するように指定します.改頁のレコード数は20と指定しています.

Image307 (2).gif (12359 バイト)


 その他は前回と同じ要領でデータフォームウィザードの条件設定を行って,ASPファイルを作成すると図11のFile Viewに示されたように下記の3つのファイルが作成されています.これでデータベースとリンクしたホームページの作成作業は終了します.

Image308 (2).gif (9842 バイト)


 この3つのファイルの中身についてはサポート技術情報J030780で下記のような内容が説明されています.
(1) helpdeskAction.asp
 helpdeskAction.aspファイルは,helpdeskList.aspファイルとhelpdeskForm.aspファイルと連動し,ユーザーからの操作に対して処理を返す役割をします.
 helpdeskAction.aspファイルには,.aspファイルの先頭に記述した<SCRIPT>タグで定義した関数がいくつか使われています.
 helpdeskAction.aspファイルは,呼び出されると押されたボタンが何かを確認し,ボタンに応じた処理を実行します.処理を終えると,Webブラウザを経由してxxxForm.aspファイルとhelpdeskList.aspファイルの両方に結果を返します.
(2) helpdeskForm.asp
 helpdeskForm.aspファイルは初期に呼び出され,データベーステーブルあるいはレコードセットから取得した1レコードを表示します.
 helpdeskForm.aspファイルは,4つのセクションから成ります.最初のセクションでは,フォームから呼び出すVBScript関数を定義します.中でも重要なのが,ShowFields関数です.
 この関数は,フィールド名を取得して,HTMLドキュメントに表示します.次に重要なセクションは,Design-Time ActiveX ControlであるData Range Headerコントロールです.
 Data Range Headerの後には,レコードセットからフィールドを取得する ShowFields 関数を呼び出す VBScript コードが記述されます.
 最後のセクションは,Design-Time ActiveX ControlであるData Range Footerコントロールです.Data Range Footerは,Data Range Headerで開始したループを停止させます.
(3) helpdeskList.asp
 helpdeskList.aspファイルは,helpdeskForm.asp ファイルと大変よく似ています.
 helpdeskForm.aspファイルとの違いは,HTML テーブルに複数のレコードをリスト形式で表示することです.
(注)Design-Time ActiveX ControlとData Range HeaderコントロールについてはInterDevチュートリアルである「ガイドツアー」を参照ください.
作成したホームページの操作要領について
 図11のFileViewで,helpdeskAction.aspまたはhelpdeskForm.aspを右クリックし,呼び出されたショートカットメニューで「プラウザー(B)」を選びます.その次にブラウザーの種類としてインターネットエクスプローラを選びますと,図12のフォームビュー画面が呼び出されます.

Image309 (2).gif (33515 バイト)


 helpdeskList.aspを選び同様の操作を行うと,図13のデータリストビュー画面が呼び出されます.

Image310 (2).gif (23604 バイト)

 2つの画面間は画面の右上に位置するコマンドボタン「リストビュー」および「フォームビュー」により相互に呼び出すことが可能です.
 矢印ボタンは表示する行位置を変更するものです.「再クエリー」ボタンは最新のデータをデータベースから取り込み直すためのものです.
 両画面で「現在のフィルタなし」と表示されていますが,これは表示データにフィルタはかけていないということを示しています.それではフィルタをかけるときはどうするかということを知りたくなります.
 図12で「フィルタ」ボタンをクリックすると,図14のフィルタ条件入力画面が呼び出されます.ここで入力された列データが複数ある場合,たとえばQ番号に225を,著者名1に横田秀次郎を指定し「適用」ボタンを押すと2つの検索キーワードはAND条件で適用されます.
 以後フィルタ条件が変更されるまでは,図12と図13に表示されるデータはこの条件でフィルタがかかったものとなります.
 図12で「新規」ボタンを押すと,新しい行データを入力するための図15に示す新規レコード入力画面が呼び出されます.
 図12の画面で表示されている行データを修正し,「更新」ボタンをクリックすると,データベース収納データがここで入力された値に変更されます.

Image311 (2).gif (29701 バイト)

 図12の画面で「削除」ボタンをクリックすると,表示中の行データが削除されます.


InterDevバグ情報

(1) インターネットエクスプローラ4.xで,漢字が文字化けする件
 当連載2回目(1998年9月号.pp.156-159)の説明を参照してください.
(2)Database Designerのテーブル修正機能が働かない
 InterDevの統合開発環境の中からデータベースにアクセスするVisual Database Toolsのテーブル新規作成機能は,今回説明した通り正常に動作しますが,いったん作成済みのテーブルの仕様変更機能が正常に動作しない場合があります.
 現象は,列名や列仕様が表示されないというものです.このようなことが起こった場合は面倒でもエンタープライズマネージャを使用してください.
(3)フィードバック画面の文字配置が不適当である
 図12のフォームビュー画面で,データ修正を行い「更新」ボタンをクリックしたとき,および図15の新規レコード入力画面で追加データを入力し,「挿入」ボタンを押したときに図16のような内容確認のフィードバック画面が表示されますが,列名表示の幅が狭く,不自然です.

Image312 (2).gif (30119 バイト)

Image313 (2).gif (31645 バイト)


 これはサポート技術情報J028950で,VS97サービスパック1で修正されたとありますが,サービスパック3を当ててあっても修正されていません.
 そこでサポート技術情報J028950に従い下記の修正を施すと,図17のように好ましい画面に直っています.
 helpdeskAction.aspファイルの最後から36行目で,
<TD ALIGN=Left BGCOLOR=Silver><FONT SIZE=-1>・・・・・</B></FONT></TD>
とあるところに下記のようにWIDTH=30%を追加する.
<TD WIDTH=30% ALIGN=Left BGCOLOR=Silver><FONT SIZE=-1>・・・・・</B></FONT></TD>

Image314 (2).gif (33757 バイト)


まとめ
 インターネットホームページのしくみは結構分かりやすく,面白いものですが,一度理解するとあとは面倒なことはなるべく省力化したいという気持ちが出てきます.ですから,通常はこのフォームウィザードあたりを使って必要最小限のことを済ませられたら良いと考えていました.
 まずは,このフォームウィザードで作成したものの使い方を丁寧に説明した説明書が必要とかねがね感じていましたが,今回念願がかないました.
 操作方法が分かるとさらに機能を改善するためにできあがったプログラムの内容を解読したいということになります.今回紹介したバグ対策あたりがその切り口になりますが,容易ではありません.
 InterDev Visual Studio 6.0の正式出荷が近づいています.InterDev6.0になるとフォームウィザードがなくなることがわかりました.InterDevにもツールボックスが用意され,Visual Basicに似たものになるようです.InterDevで自動的に作成されるソースリストにはHTML文ばかりでなく,ダイナミックHTML文も採用されるようになります.
 ASPファイルの中身もだいぶ様変わりするかもしれません.しかし,安心してください.ソースリストを手直ししなくても満足できるような仕上がり度のものが容易に作成できるようになるのだと思います.
 次回は,作成したデータベース参照ホームページを既存のホームページと接続する方法(サイト管理,リンクビュー)について紹介したいと思います.


copyright 1998 横田秀次郎