データを視覚的に表示する簡単な方法 Part II: データの本格運用
Robert Carter, MSDN Online Technical Writer
December 30, 1998 日本語版最終更新日 1999 年 9 月 7 日
目次
はじめに
Web ページがデータベースにアクセスする方法
ローカル DSN の設定
接続に関するオブジェクト
データベースにアクセスするためのコード
ローカル サーバーの構成
「ライブ」サイトの設定
ISP へのファイルの転送
運用データベースの設定
自分のサイトをホストしてくれる ISP を探す方法
結論
はじめに
「データを視覚的に表示する簡単な方法 Part I: データの準備」が公開されたのはかなり前のことになります。この記事では、データベースから得られた情報をグラフィカルに表示するためのきわめて簡単な、また私から見るときわめてクールな方法をいくつか説明しました。そのときには、新しく作ったきれいなページを運用環境に持っていくためのフォローアップ記事を書くことをお約束しました。
記事を書けるほどにこの主題を十分に理解するためには、かなりの時間がかかりました。インターネット上でデータベースにアクセスするのが難しいと嘆くハードコアの開発者たちから慰めの言葉ももらいましたが(Dr. GUI、ありがとう)、それでもこれはフラストレーションの溜まる作業でした。
この記事では、ローカルなステージング サーバー (Peer Web Services for Microsoft® Windows NT® Workstation) 上にページを作成し、これにアクセスして、それをリモートの運用サーバーに発行する方法を説明するという離れ技を演じます。私は Microsoft Access と Microsoft SQL Server 6.5 の両方でデータベースを作成しました。また、各セクションで、SQL Server データベースでデータベースを作成し、アクセスし、運用サーバーにアップロードするための追加のステップについて、ある程度のスペースを割いて説明しています。
ただし、Web ページからデータベース レコードにアクセスし、操作を行う方法を十分に詳しく説明するためには、幅広い Microsoft テクノロジのオブジェクト、メソッド、およびプログラミングといった本格的なコーディング手続きに立ち入らなくてはならないということを前もって警告しておきます。
Back to top
Web ページがデータベースにアクセスする方法
Part I では、単純なサンプル データベースを作成し、Access の Web 発行ウィザードを使って、インターネット上でデータベースにアクセスし、表示を行うための Active Server Pages (ASP)ページを生成しました。これは、[ファイル] メニューの [HTMLとして保存] オプションを選択し、表示されるダイアログ ボックスを操作することによって行いました。
図1. Microsoft Access の [Publish to the Web] ダイアログ ボックス
Part I では、データ ソース名 (DSN) の重要性についてはあまり触れませんでした。簡単に述べると、DSNは、Microsoft が Open Database Connectivity (ODBC)プログラミング インターフェイスを開発したときに、一意のデータベースを識別するための規約として作ったものです。ODBC は、特定のデータベースにアクセスするために、デバイス レベルのコードを含める必要をなくすために作られました。プログラマは ODBC を使ってデータベース コマンドを実行するだけで、デバイス依存の呼び出しとプロシージャはすべて ODBC ドライバに埋め込まれています。後にこのアプリケーションを ISP を使ってホストするときには、独自の DSN を指定できるかどうかを問い合わせる必要があります(名前が同じサーバーの他の DSN と衝突していなければ、可能だと思われます)。
ローカル DSN の設定
データベースをホストするコンピュータに直接アクセスできる場合には、DSNを自分で作成し、変更することができます。DSN をセットアップするには、ODBC コントロール パネルを起動します。図 2 のように、7 つのタブを持つダイアログ ボックスが表示されます。[システムDSN] タブを選択します。
図2. ODBC の [システムDSN] ダイアログ ボックス タブ
ODBC ドライバを追加するには、[追加] ボタンをクリックします。どのドライバを使用したいかを尋ねられるので、いずれかを強調表示し、[完了] ボタンをクリックします。
図3. ODBC ドライバの選択
Access ODBCドライバの設定
Access データベースに接続する場合には、プロセスはきわめて簡単です。 [完了] ボタンを選択すると(実際にはまだ完了していないのですが)、セットアップするデータ ソースに関する情報を要求する新しいダイアログ ボックスが表示されます。
図4. Access DSN の構成
[Data Source Name] テキストボックスに、前に Access の [HTMLとして保存] メニュー項目で入力した DSN の名前を入力します。また、後々のために詳しい情報を追加しておきたい場合には、DSN が接続するデータベースの説明を入力します。すでにデータベースを作成している場合には、[Select] ボタンをクリックし、そのデータベース ファイルにナビゲートします。おめでとうございます。これで Access DSN の準備は完了です。
SQL Server ODBCドライバの設定
サイトのトラフィックが大きくなると予想される場合には、SQL Server を使用することをお勧めします。これは、「コネクション プーリング」といった複雑な事柄の多くを、SQL Server が Access よりも効率的に処理してくれるからです。Access はデータベースのセットアップに使うには素晴らしいツールですが、多数の訪問者に同時に対応し、できるだけ迅速にページを提供したい場合には、アップグレードする価値が十分にあるでしょう。ローカル ODBC ドライバを SQL Server データベースに接続するようにセットアップするためには、いくつか余分なステップを実行する必要があります。上で述べたダイアログで [完了] を選択すると、SQL Server ODBC connection ウィザードが起動します。
図5. SQL Server DSN の構成
最初のダイアログは、Access の接続ウィザードと似たような情報を要求します。つまり、データベースの名前、説明、そして具体的な SQL Server インスタンスです(Access とは違って、ファイルではなく「デバイス」に接続します)。Access ODBC ドライバのときと同様に、テキスト ボックスに情報を入力します。どの SQL Server に接続するかを尋ねるドロップダウン メニューで、そのサーバーを選択します。SQL Server を自分のマシン上で実行している場合には、"(local)" を選択します。
ダイアログ ボックスの [Name] と [Server] に入力を行うと ([Description] はオプションです)、[Next] ボタンが有効となります。ボタンをクリックしてください。SQL Server デバイスへのアクセス方法を尋ねる新しいダイアログ ボックスが表示されます。
図6. SQL Server ODBC アクセス方式の構成
このダイアログ ボックスの最初の質問が示しているように、SQL Server デバイスへのアクセス方法には、Windows NT 認証と SQL Server 認証の 2 つがあります。ローカルの場合には、どちらの方式でも使用できます。システム管理者として、どちらの方式でもアクセス可能なように構成できるからです。匿名 Web アクセスの場合には、SQL Server オプションを選択し、個々の権限を反映したログイン ID とパスワードを使用するのが一番です。たとえば、このクライアントは更新クエリーを実行できるのか、アプリケーションを実行できるのか、などです。複数の DSN を構成し、さまざまなアクセス権限を用意することができます。
私は SQL Server Enterprise Manager を使って "datavis" という名前の新しいデータベースを作成し、[Manage] メニューの [Logins] を選択して、"sample" という新しいログイン ID を構成しました。次の図に示すように、このユーザーの"datavis"データベースに対するアクセスは制限されています。
図7. SQL Server ログインの構成
ODBC の構成プロセスに戻ると、私は SQL Server 認証オプションをチェックし、[Connect to SQL Server to obtain default settings for the additional configuration options] チェック ボックスを有効にし、SQL Enterprise Manager で作成したログインのためのログイン ID とパスワードの設定を入力して、 [Next] をクリックしました。
次のダイアログ ボックスのセットでは、SQL Server のデフォルト構成が事前に設定されています。ここで行う必要があるのは、デフォルト データベースをデータが置かれているデータベースに変えるということだけです。すでに SQL Server 内にデータベースを作成している場合には、そのデータベースがドロップダウン メニューに表示されます。まだ作成していない場合には、この時点で作成し、プロセスを最初からやり直してください。
図8. デフォルト データベースの設定
他のオプションを特に変更する必要がなければ、デフォルトの SQL Server オプションで問題ないので、残りのダイアログ ボックスをクリックして進んでいきます。最後のダイアログ ボックスには、データ ソース接続をテストするオプションが表示されるので、テストを行ってください。テストが失敗した場合には、ODBC の [システムDSN] タブの入力をクリアし、操作をやり直してください。
接続に関するオブジェクト
これで ODBC ドライバのセットアップが終わったので、次に、データベースにアクセスするためのコードを Web ページに組み込まなくてはなりません。ただし、コードの解説を始める前に、接続とセッションの概念と、Microsoft が自社で開発したいくつかのオブジェクト モデルと API を通して、接続とセッションをどのように扱っているかということを説明しておきましょう。次の図は、クライアント コンピュータが、データベース コンテンツを含んでいる Web ページを要求したときに、その要求に応えるために必要な一連のステップを示しています。
図9. データベース コンテンツを含んでいる Web ページの配信
ステップ 1 はおなじみのステップでしょう。データベース サーバーへの接続を確立するステップ 2 では、Active Data Objects (ADO) という名前の COM コンポーネントを使用します。ADO には、ODBC データベース(およびその他のさまざまなタイプのデータ)にアクセスするための独自のオブジェクトが含まれています。これは ASP をインストールしたときに、デフォルトでインストールされます(また、最新バージョンの ADO とそのドキュメンテーションをダウンロードすることも可能です )。後に述べるように、Web ページにデータベース アクセス コードを挿入するときには、ADO インターフェイスのオブジェクトを使ってデータの呼び出しと操作を行います。
データベースへの接続(実際には、データを格納しているほぼあらゆる種類のファイルまたはデバイスへの接続)には、さまざまな方法があります。ここでは Application、Session、および Recordset という3つのタイプの接続オブジェクトについて説明します。
ASP Application オブジェクトを通して確立されるアプリケーション レベルの接続は、サーバー上の特定の仮想ディレクトリからページを要求するすべてのユーザーが使用することができます。サイト内の特定のエリアへの訪問の数を数えるヒット カウンタは、アプリケーション レベル オブジェクトに格納すべき値の一例です。
一方、Session オブジェクトは、サイトにアクセスする個々のユーザーに固有のものです(また特定の仮想ディレクトリにも結び付けられていません)。セッションは、訪問者がデータベースを操作するときに、データベースに対して複数のクエリーを発行する場合、あるいはクエリーを 1 回しか発行しないとしても、クエリーが返すデータが多すぎて、データの表示を複数のページに分割しなくてはならないような場合に使うと便利でしょう。
ところでセッションを管理する能力は、ASP が提供する主な利点の1つでもあります。ご存じのように、HTTP プロトコルは「ステートレス」であり、Web サーバーは特定のページを要求するコンピュータについて何も知っている必要がありません(これが匿名アクセスが可能である理由です)。このため、特定のユーザーからの要求に対する前処理やカスタマイズといった作業はまったく行うことができません。
これは新聞の自動販売機のようなものです。ページを要求すると(機械に硬貨を入れると)、ページが得られます(ラッチが開いて、新聞を取り出せるようになります)が、それ以上のことは何もありません。しかし、ASP を使うと、そのユーザーが新聞を買ったばかりであることを判別し、今回は何か違うものをオプションとして提示することが可能になります。ASP は、クライアントのブラウザに cookie を格納することで、HTTP の持つステートレスという性質を回避しています。クライアント コンピュータが、cookie が関連付けられている URL を要求すると、クライアント コンピュータのブラウザが作成する HTTP 要求文字列にその cookie の内容が追加されます。
ASP は、cookie の生成と更新、サーバーへのユーザー情報の格納といった、ユーザー セッションを追跡するための作業をすべて自動的に行ってくれます。プログラマが行うのは、Session オブジェクトにデータベース接続を割り当てることだけです。すべてのセッション情報は 20 分だけ保持されますが、この時間は SessionTimeout プロパティを変更することで変えることができます。20 分が経過する前に、ユーザーがデータベースに再びアクセスした場合、その接続はまだオープンされています(タイマーはリセットされます)。20 分以上が経過すると、セッションは終了し、古いセッションの情報はすべて失われます。
最後に、データそのものに関する詳しい情報を取得したい場合には、Recordset オブジェクトを使用します。Recordset オブジェクトは実際には ADO データベース コンポーネントに属していますが(Application と Session は ASP に直接組み込まれています)、ASP コードを通してアクセスし、操作することができます。Recordset オブジェクトは特定のデータベース テーブルへの参照です。これはベース テーブルでも、特定のクエリーから生成された結果テーブルでもかまいません。
いずれのオブジェクトも、プロパティ、コレクション、およびメソッドのセットを持っており、この記事ですべてをカバーすることはできません。先ず、このページからご覧になってください。ADO に関しては、最新バージョンの ADO とそのドキュメント をダウンロードすることをお勧めします。
まとめると、データベース アクセスにアプリケーションのスコープを持たせたい場合には(つまり、特定の仮想ディレクトリからアクセスしてきたすべてのユーザーに結び付けたい場合には)、Application オブジェクトを使用します。アクセスを特定のユーザーに結び付けたい場合には、Session オブジェクトを使用します。また、特定のデータのセットを扱いたい場合には、Recordset オブジェクトを使用します。
データベースにアクセスするためのコード
ここまでで ASP または ADO オブジェクトを通してデータベースへの接続を確立する方法について説明したので、次はそのためのコードを紹介します。
接続の確立
Accessの "Save as HTML" ウィザードは、次のようなコードを自動的に生成します。
<%
If IsObject(Session("datavis_conn")) Then
Set conn = Session("datavis_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "datavis","",""
Set Session("datavis_conn") = conn
End If
%>
<%...%> のデリミタは、これが ASP コードであることを示しています。 If...Then の条件式は、データベースとの接続がそのユーザーに対してすでに確立されているかどうかをテストしています。確立されている場合、この要求はすでに確立されている接続を使用します。既存の接続を使えば、処理はより高速になり、サーバーのオーバーヘッドも軽減されます。接続のテストは、括弧内の式が有効なオブジェクトを参照している場合に True を返す、Microsoft Visual Basic® Scripting Edition (VBScript) の IsObject 関数を使用しています。
データベースとの接続がまだ確立されていない場合には、新しい接続をゼロから作成する Else のコードが実行されます。このために、まず conn という名前のオブジェクト参照を作成します(VBScript でオブジェクト参照を作成するためには Set 文を使用する必要があります)。conn を、Server オブジェクトの定義済みのメソッド CreateObject に設定し、適切なパラメータ構文 ("[Vendor.]Component[.Version]") を使って、作成したいサーバー コンポーネントが、ADO Connection オブジェクトを使用するADO互換のデータベースへの接続であることを識別します("ADODB.Connection")。
Connection オブジェクトの open メソッドを適用することで、データソースへの接続を物理的に確立します。open メソッドのオプションのパラメータは、ConnectionString、UserID、および Password です。ここでは接続文字列として "datavis" という DSN を使用し、他のパラメータは空白のままにします。
注: このデータベースへのアクセスを特定のユーザーまたはページに制限したい場合には、複数のユーザー グループを作成し、それぞれに適切なユーザー名とパスワードを割り当てることができます。
最後に、CreateObject メソッドはデフォルトではページ スコープしか持っておらず(つまり、作成されたオブジェクトは、ページの処理が終わった時点で、サーバーによって自動的に破棄されます)、われわれはユーザー セッションのコンテキストで処理を行いたいので、新しく作成した Connection オブジェクトのインスタンスを Session オブジェクト変数 datavis_conn に格納することで、接続にセッション スコープを与えます。
データへのアクセス
これで接続が確立されたので、その中のデータにアクセスすることができます。「データを視覚的に表示する簡単な方法 Part I」では、Access の "Save as HTML" ウィザードを使って、基本となるファイルを作成しました。作成された basic.asp ファイルに対し、テキスト エディタを使って、George が開発したファンキーなグラフ表示を追加しました。
ページへのアクセスには ADO の Recordset オブジェクトを使用しました。次に、Part I で使用した charter.asp の一部を示します。
sql = "SELECT Max(Apples) AS MaxApples FROM tblFruits "
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
lMaxApples = rs.Fields("MaxApples")
まず、SQL 文を変数 sql に代入しています。次に、rs オブジェクトをインスタンス作成します(これはオブジェクトなので、Set 文を使用します)。その後、rs に別の Server.CreateObject メソッド、今回は ADO Recordset オブジェクトへの参照を代入します。ADO Open メソッドを再び使用していますが、今回は Recordset をオープンしているので、若干異なる構文が適用されます。
厳密に言うと、Open メソッドを使用すると、SQL 文によって生成されたレコードをポイントするカーソルがセットアップされます。この例では、カーソルをオープンし、SQL 文を実行し、SQL 文の中で、MaxApples クエリーの結果を変数 lMaxApples に代入しています。われわれはカーソルとロックのタイプを指定していますが、これらの引数はオプションです(デフォルトでは最も制限の厳しいカーソル オプションが適用されます。つまり、カーソルはレコードの前方にしかスクロールできず、データを変更することはできません)。使用可能なカーソルとロックのオプションの詳細については、ADO ドキュメンテーションを参照してください(デフォルトの場所に ADO をダウンロードして、インストールしている 場合には、C:\Program Files\Common Files\System\ado\Docs\default.htmにあります)。
もちろん、データを取得するために SQL 文をどのように構成すべきかは、まったく別の話となります。マルチテーブル クエリーの作成、サーバーのパフォーマンスを最適化するためにストアド プロシージャを使用するべきかどうか、すべての訪問者が自分でデータベースを更新できるようにする方法などは、いずれもそれ自体が大きな問題であり、本稿の範囲を超えています。
Back to top
ローカル サーバーの構成
ASP はサーバー ベースのテクノロジなので、ブラウザ内で ASP ページを表示するためには、サーバーを避けては通ることは出来ません。Windows NT Peer Web Services (PWS) を使って、どのディレクトリがページをホストするのかという情報を追加し、これらのディレクトリに仮想的な名称と正しい構成を与えます。言い換えると、仮想ディレクトリを作成する必要があるのです。
仮想ディレクトリを作成するには、システム トレイの [PWS] アイコンをダブルクリックします。表示されるダイアログ ボックスで、左ペインの [Advanced] アイコンを選択します。次のようなダイアログ ボックスが表示されます。
図10. [Peer Web Services] ダイアログ ボックスの [Advanced options] 画面
注: 私は、ステージング サーバー上では [Allow Directory Browsing] チェック ボックスをチェックするようにしています。ディレクトリの参照が可能になっていれば、サイトが複雑になってくるにつれ、ホスティング ディレクトリの名前を覚えておくだけでよく、表示したいファイルの名前をいちいち思い出す必要がないという点が便利になってきます。
図11. [Allow Directory Browsing] が有効になっているときのディレクトリ ビュー
ディレクトリのリストが表示されない場合には、ディレクトリを追加する必要があります。[Add] ボタンを選択すると、次のようなダイアログ ボックスが表示されます。
図12. 仮想ディレクトリの構成
[Directory] フィールドに、サーバー上のフォルダの物理的な位置を入力します。一方、[Alias] 項目は Web サーバーが作成する仮想ディレクトリのことなので、URL のアドレスとして表示されるものを入力します。たとえば、"datavis" というエイリアスを選択した場合、ブラウザ内でそのフォルダにアクセスするには、"http://localhost/datavis/..." と入力することになります。
注: データベースそのものを仮想ディレクトリの中に置く必要はなく、それを参照する .asp ファイルを入れるだけで十分です。SQL Server を使用している場合には、どちらにしてもデータは別の場所に存在することになります。Access データベースの場合、ファイルへのパスは DSN に埋め込まれているので、他の Web ページとともに仮想ディレクトリの中に置いておく必要はありません。
ところで、サイトの本格運用を開始する前に、あらかじめいろいろな人を招待しておくというのはいいアイデアです。ステージング サーバーがインターネットへダイヤルアップ接続しかしていない場合でも、インターネットに接続している間に、いろいろな人にサイトにアクセスさせることが可能です。このためには、接続の IP アドレスを調べ、電子メールによってテスト グループにそのアドレスを通知し、ブラウザのアドレス バーに直接入力してもらいます(これらのユーザーは、IP アドレスの後に正しいディレクトリ情報を追加する必要があります)。
Microsoft Windows 95 または 98 を実行している場合には、[スタート] メニューの [ファイル名を指定して実行] を選択して "winipcfig" (もちろん引用符はなしです)と入力することで、IP アドレスがわかります。Windows NT を実行している場合には、 Download.com からさまざまなユーティリティをダウンロードすることができます。これらは [Search] ボックスに "IP Address" と入力すれば検索できます。
Back to top
「ライブ」サイトの設定
サイトの準備が整ったと思ったら、2 つの作業を行わなくてはなりません。必要なすべてのファイル(ページ、画像、データベース)を ISP に転送し、自分では直接行えない(または禁止されている)構成とセットアップを ISP にやってもらうということです。ファイル転送は、特にその ISP で FTP によるサイトへのファイル アップロードが許されている場合には、きわめて簡単です。
ISP へのファイルの転送
ここではファイルを ISP に転送するための方法を 2 つ紹介します。1 つはサードパーティの FTP ツールである WS_FTP を使用する方法です。もう 1 つは、Internet Explorer や Peer Web Services を含むさまざまな Microsoft 製品に付属している Microsoft Web Publishing Wizard を使用する方法です(Web Publishing Wizard がない場合には、Microsoft Update からアクセスすることができます)。
Web Publishing Wizard を使用する場合には、これをスムーズに実行できるようにするために、少しばかり準備作業を行うことをお勧めします。まず、Internet Explorer を使って、FTP サイトを表示し、ログオンします。FTP アドレスを知らない場合には、標準の HTTP アドレスを、ただし ftp://www.microsoft.com のように、アドレスの先頭に ftp を付けて試します。アドレスが正しければ、次の図のような、ユーザー名とパスワードを尋ねるログイン ダイアログ ボックスが表示されるでしょう。これでうまく行かない場合は、ISP に FTP アドレスを問い合わせ、同時にファイルをアップロードするための推奨方式についても尋ねてください。
図13. FTP サイトへのログイン ダイアログ
名前とパスワードを入力すると(これらは ISP から指定されているはずです)、次に示すようなサイトのビューが表示されます。ページのタイトルと、アドレス バーの URL を確認し、入力前の URL にリダイレクトされていないことを確認します。ここに表示されているのは、ファイルの送信先のアドレスです。
図14. Internet Explorer を使って FTP サイトを表示した様子
これでうまく行ったら、もう安心です。Web Publishing Wizard を使い始めることができます。このウィザードにアクセスするには、[スタート] メニューの [プログラム] を選択し、[Microsoft Web Publishing] を選択し、さらに [Web Publishing Wizard] を選択します。表示される第 2 のダイアログ ボックスには、発行の対象としてフォルダ全体と個々のファイルのどちらかを選べる便利な機能があります。
図15. Web Publishing Wizard のファイル選択ダイアログ ボックス
次に、ファイルのアップロード先のWebサーバーを指定するように求めるダイアログ ボックスが表示されます。[New] ボタンをクリックして、ファイルまたはフォルダの発行先のエリアの説明的な名前を入力します。[Next] ボタンを押すと、[URL or Internet address:] と [Local directory] というラベルの付いた2つの入力欄があるダイアログ ボックスが表示されます。URL のテキスト ボックスに、FTP サイトを表示したときに Internet Explorer のアドレス バーに表示された位置をそのまま入力します。アップロードするファイルを新しいディレクトリに格納したい場合には、URL の末尾にディレクトリの名前を追加します。 FTP サイト上にまだ存在しないフォルダにアップロードを行うと、フォルダは自動的に作成されます。
図16. Web Publishing Wizard での URL とディレクトリの指定
[Next] を押すと、ウィザードは指定された URL にアクセスします。必要ならばログイン ダイアログが再び表示されるので、適切なユーザー名とパスワードを入力して [OK] を押します。ここで Internet Explorer ウィンドウを再び開き、[更新] を選択すると、新しいディレクトリまたはファイルが表示されるはずです。
もう 1 つのオプションは、私の好きな WS_FTP などのサードパーティ ツールを使う方法です。このユーティリティでは、起動を行った後に、ユーザー名とパスワードを含めて、FTP サイトへの接続を直接に構成することができます。その後、[Connect] を押すと、接続が確立され、2 つのペインから成るウィンドウが表示されます。左ペインはローカル コンピュータで、右ペインは FTP サイトです。この画面では、2 つのペインの間でファイルを転送したり、フォルダとファイルの作成と削除を行うことができます。
運用データベースの設定
データベースをホストするサーバーの DSN を構成するためには、ISP に問い合わせる必要があります。ISP は基本的に、ローカル サーバー上に ODBC DSN を設定するためのプロセスと同じことを行い、また SQL Server の場合には若干の構成作業を追加で行うことになります。
Access データベースの場合のプロセスは単純です。データベースを目的のフォルダにアップロードし、そのパスを、DSN の名前と、使用したいユーザー名またはパスワードとともに ISP に知らせるだけです。これを受けて ISP が DSN を構成すれば、準備は完了です。
SQL Server データベースの場合のプロセスは、いくぶん複雑になります。これは主に、データベースが Access のようにモノリシックなファイルではなく、 SQL Server 用の大規模な設備の中に格納されているためです。バックアップ ファイルを作成し、ファイルを ISP に転送し、データベースをサーバー上に直接、復元してもらいます。また、ローカルなステージング サーバーで行ったのと同じように、そのサーバー上に ODBC DSN を作成してもらう必要もあります。
まず最初に、SQL Enterprise Manager を開き、データベースが格納されているサーバーを起動します。[Tools] メニューから [Database Backup/Restore] を選択します。次のようなダイアログ ボックスが開きます。
図17. [SQL Server Database Backup/Restore] ダイアログ ボックス
[New] ボタンをクリックしてバックアップ ファイルを生成します。図 18 に示すダイアログ ボックスが表示されます。[Name] テキスト ボックスにバックアップ ファイルの名前を入力し、ファイルをデフォルトの C:\MSSQL\BACKUP\ ディレクトリ以外の場所に格納したい場合には、[...] というラベルの付いたボタンをクリックして、希望のフォルダにナビゲートします。操作を終えたら、[Create] ボタンを選択します。
図18. 新しいバックアップ デバイスの入力
メインのバックアップ/リストア ダイアログ ボックスに戻ります。今回は [Backup Now] ボタンをクリックします。表示されるダイアログ ボックスの [OK] ボタンをクリックすると、SQL Server はバックアップ ファイルを作成します。
バックアップが完了したら、前に述べた、FTP サイトにファイルを FTP で転送する手順を実行します。ISP に連絡し、バックアップ ファイルのパスを教えて、データベースを運用サーバーに復元してもらいます。そのデータベースに対して作成してあった特殊な権限、グループ、ユーザー、またはストアド プロシージャも同時にリストアされます。最後に、ISP に SQL Server の ODBC DSN をセットアップするよう依頼します。
これで、アップロードした任意のページを、運用サーバーの URL を使って見られるようになるはずです。
Back to top
自分のサイトをホストしてくれる ISP を探す方法
自分のサイトをインターネット上にホストしたいが、まだ ISP を決めていない読者のために、いくつかのサイトを紹介しておきます。ただし、世の中には多数の ISP が存在することを忘れないでください。まず、作成するサイトの「必須条件」と「希望条件」をまとめておくのがいいでしょう。私の場合は、Windows NT Server 上でのデータベース ホスティングと ASP が必須条件でした。チャット機能、複数の電子メール アカウント、および匿名 FTP が二次的な条件としてありました。
ASPHole には、Windows NT、ASP、および IIS に力点を置いている ISP のリストがあります。このリストは、適度な長さにまとめられていて、レーティングが付いているという点で気に入っています。また、ASPHole は Microsoft 以外の ASP サポートの世界へのポータルとしても優れています。
ISP を見つけるのに役立つもう1つのサイトが、HostIndex です。私は特に、オペレーティング システムと、その他の (Microsoft SQL Server から非営利団体の割引までの)さまざまなオプションによる抽出が可能な検索機能が気に入りました。
このリスト は、最も古くからの、またたぶん世界最大の ISP に関するものです。検索機能はなく、また奇妙なことに州またはエリア コードによる検索しかできません(多くの ISP がテクニカル サポートに "800" 番台の番号を使用しており、またこれが Web であるということを考えると、近場の ISP を選ぶ必然性はないように思うのですが)。また当然ながら、Yahoo にもたくさんのリソースがあります。
ISP を探す旅のなかで(自分の書いていることが正しいことを確認しなくてはならなかったのです)、私は日頃から尊敬している何人かの友人から意見をもらいました。彼らの意見に基づき、トップ候補の数社に電子メールで問い合わせを出しました(価格、オプション、そしてサイトのプロフェッショナリズムと親切さに基づいて選んだものです)。結果として、すぐに返事が来たこと、私のニーズに合わせて柔軟な対応をしてくれたことから、私は DataReturn を選びました。この会社は、数人の同僚がそれぞれ別個に推薦してくれたISPでもあります。
ぜひあちこちを見て回ってください。あるISPのサービスと応答の速さが気に入ったが、別の ISP から同等の機能でより低い価格が提示された場合には、最初の ISP にその価格の分だけの価値があるかどうかを再検討してください。独自のドメイン名を登録してホストする予定がある場合には、ユーザーは (ISP の仮想ディレクトリではなく) サイトの URL をブックマークに登録することになるので、いっそう柔軟な対応を取ることができます。
Back to top
結論
Part II を世の中に出すのに、長い時間がかかったことを申し訳なく思っています。私は、Web アクセスにもっと直接の関係がある問題に集中すべきときに、複雑な SQL クエリーなどに大量の時間を費やしてしまいました。しかし、こうした作業の結果として、私は堅牢さとアクセスのしやすさが適切に組み合わされていると感じられるプラットフォーム (Windows NT Workstation) とテクノロジ(Peer Web Services、ADO、ASP、Access、およびSQL Server) を選択することができました。
この記事の焦点は、Web からのデータベース アクセスの基本的なコンポーネントをいくつか紹介することに当てられています。私は ASP と、ADO や ODBC などのデータベース インターフェイスについて説明し、Part I で作成したデータベースにアクセスする方法の概要を示しました。さらに、ローカルな開発サーバーのための DSN と仮想ディレクトリを構成し、そのデータをライブなサイトに発行する 2 つの方法を説明しました。また、サイトをホストする ISP をまだ決めていない読者のために、ISP を探すための出発点となるリンクをいくつか示しました。
このプロセスの中に、私が見落としたステップがある場合、または言及する価値があると思われるリソースやメカニズムが他にある場合には、ぜひお知らせください。作業を楽にしてくれるものならば、何でも歓迎です。
|