ASP には最も重要な機能の 1 つがあり、それはデータベースに非常に簡単に接続できることです。通常、Access または SQL データベースに接続されます。 Access は最も簡単に始めることができ、Access はすでにマシンにインストールされている可能性があるため、次の例では Access を使用します。 ASP データベースと Access データベースを接続するための中心となる技術的方法を学習すると、SQL サーバーを使い始めると、両方に必要な主要なテクノロジが基本的に同じであることがわかります。
データソース名(DSN)の作成
コントロール パネルでデータベースのシステム DSN を作成すると、データベースを ASP で使用できるようになります。ローカル コンピューター上に複数の DSN を作成でき、各 DSN は使用する異なるデータベースに対応します。 DSN を設定したら、ローカル サーバーでページをテストできます。 Web サイトが
ISP によって提供されており、その ISP が ASP をサポートしている場合、データベースの DSN を作成するための GUI インターフェイスが提供される可能性が高くなります。
Windows 95/98/NT では、コントロール パネル ([スタート] メニュー -> 設定 -> コントロール パネル) を開き、ODBC をダブルクリックして入ります。
システム DSN を選択し、「追加」をクリックします。
「Microsoft Access Driver」を選択し、「完了」をクリックします。
データソース名を入力します。これはデータベースに付ける名前なので、エイリアスと同じ操作です。
データベース選択の [選択] ボタンをクリックして、作成した Access データベースが保存されているシステム内の場所を参照します。
「OK」をクリックします
新しい DSN がシステム DSN に表示され、ローカル サーバーで使用できるようになります。
データベースへの接続 DSN なしの接続を設定し、データベースへの接続方法を見てみましょう。 DSN を作成すると、データベースに関する情報がすでに保存されているため、データベースの種類、名前、保存場所、オプションのプロパティ、ユーザー、パスワードなどの情報を使用する必要があるたびに DSN を繰り返す必要はありません。
DSN なしの接続を作成するには、同じ情報を指定する必要があります。次の例は、products というデータベースへの DSN なしの接続を確立する方法を示しています:
<%
StrConnect = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:dbproducts.mdb"
objConn = Server.CreateObject (「ADODB.Connection」) を設定します。
objConn.OpenStrConnect
%>
2 行目は、データベースのドライバーと物理パスを定義します。 DSN なしの接続を使用するには、実際のファイルの場所 (絶対パス) を知っている必要があります。 Server.MapPath は、ホスティング サービスを使用する誰でも、見つけにくい実際のアクセス パスを見つけるためのシンプルな作業環境を提供します。
products という名前のシステム DSN を作成した場合、接続コードは次のようになります:
<%
objConn = Server.CreateObject (「ADODB.Connection」) を設定します。
objConn.Open「製品」
%>
データベースが開いたので、何ができるでしょうか?もちろん最初に行うことは、データベース内の一連のレコードを読み取り、ページに挿入することです。ただし、その前にレコードセットが必要です。
レコードセット
レコードセットは、特別なデータベース テーブルに保存されているすべての情報です。したがって、このレコードセットを開くと、テーブル内のすべての行と列の内容にアクセスできます。データベース接続を開くのと同じように、このレコードセットを開く必要があります。これらのコマンドは似ています:
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "downloadable", strConnect, 0,1,2 は
、downloadable table という名前のレコードセット (objRec) を作成します。このレコードセットは、製品データベースの strConnect で定義されます。 Recordset open を使用すると、このテーブルをループして、そのすべての内容を画面に表示できます。あるいは、特定のフィールドの内容をテストしたり、関心のある内容を画面に書き込むこともできます。
各列はフィールドを表します。したがって、データベース テーブルが次のようになっているとします。
製品 ID | SKU | 名 | ファイル |
1 | PR12345 | 製品 A | install_a.exe |
2 | PR12346 | 製品 B | Install_b.exe |
次に、ProductID、SKU、Name、および File フィールドの内容が得られます。テーブルには多くの追加フィールドがあり、価格や製品 (品目) の説明など、さまざまなものが含まれる可能性があります。ただし、この概略図は、データベース テーブルの最も基本的な概念を提供します。
レコードセットを使用すると、レコードセットの内容を入力するのが非常に簡単です。データベースをループしてすべての情報を画面に出力したい場合は、次の操作を行うことができます
。
' ファイルの終わりに達していない限りこれを行うように指示します
Response.WriteobjRec("製品ID") & ", "
Response.WriteobjRec("SKU") & ", "
Response.WriteobjRec("名前") & ", "
Response.WriteobjRec("ファイル") & "<BR>"
objRec.MoveNext
ウェン;
この方法でループを使用したことがない場合でも、このコードを読んでカンマ区切りの文字列に情報を書き込むことができ、データベース テーブルに新しい行が作成されると、新しい行を作成してその行をテーブルに記録することができます。同じ方法を使用して、HTML テーブルにデータを書き込むことができます。
HTML タグと引用符内のコンテンツなど、
いくつかの点に留意する必要があります
。
タグまたはコンテンツで引用符を使用する場合は、必ず二重引用符を使用してください。
<FONT SIZE=""+2"">。
& を使用して変数と HTML/コンテンツ情報を接続し、レコードセット内のフィールドを選択します。このフィールドには OS というフィールドも含まれているとします。もう一度、このフィールドに保存できるデータは、Windows NT、Windows 95、Windows 98、Windows、Mac、Unix、または Linux のみであると仮定します。
次に、どのフィールドを画面に出力する必要があるか、どのフィールドを無視するかを確認します。あるいは、ある形式を使用するフィールドと、別の色を使用するなど、別の形式を使用するフィールドを選択することもできます。
単純な If... ループを使用すると、データベースをより詳細に制御できるようになります。まず、Windows NT 製品に関するレコードを出力しましょう。
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>Windows NT 製品</B></FONT></TD></ TR>
<%
objRec.EOF ではありませんが
、 objRec("OS") = "Windows NT" THEN ' 条件を指定します
。Response.Write "<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
Response.Write "<TD>" & objRec("SKU") & "</TD>"
Response.Write "<TD>" & objRec("Name") & "</TD>"
Response.Write "<TD>" & objRec("File") & "</TD></TR>"
end if
objRec.MoveNext
ウェン
%>
</テーブル>
レコードの追加 レコードセットと ASP の使用を開始すると、ネットワーク経由でデータベースにデータを追加できるようになりたいと思うようになります。コンテンツの追加は、Web 訪問者に意見や意見を残してもらう必要がある場合や、管理上の更新を行いたい場合などに重要です。
次のコードは、書籍とその著者の名前を含むデータベース テーブルに関連するレコードセットを開きます。これは以前にも見たことがあるかもしれませんが、今回は、最後の 3 つの仕様で、adOpenStatic、adLockOptimistic、adCmdTable という異なるポインタ タイプが定義されています。
<% ' データベース接続はすでに作成されています。コードはここには示されていません。
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "書籍"、bookdb、adOpenStatic、adLockOptimistic、adCmdTable
%>
(adovbs.inc のコピー ファイルを使用していない場合、3 行目は objRec.Open "books", bookdb, 3,3,2 になります。
これでレコードセットはデータを受信する準備が整いました。必要なのは、これだけです。何を追加するかを伝えます。この場合、テーブルから変数 strBookTitle と strBookAuthor を取得するとします。私たちのテーブル、books には Title と Author という 2 つのフィールドがあるため、次のステートメントを使用して新しいレコードを追加できます:
<%
objRec.AddNew
ObjRec("タイトル") = strBookTitle
objRec("著者") = strBookAuthor
objRec.Update
%>
strBookTitle と strBookAuthor は値を表し、通常はユーザーによってアクセスされます。追加機能をテストしたいだけの場合は、タイトルと作成者の変数を追加できます。引用符を使用することを忘れないでください。初めて使用するときは、おそらくすぐにデータベースを開いて、更新が行われることを確認するでしょう。
レコードセットの種類 示されている objRec.Open の例では、最後に単語 0、1、および 2 が見つかります。これらの数字は、さまざまなポインターの型を表します。使用するタイプは、使用目的によって異なります。たとえば、レコードを変更または追加する必要がない場合は、ロック タイプを使用できます。データベースの変更または更新を計画している場合、選択するタイプは異なります。
0、1、2 は実際には、
adOpenForwardOnly、adLockReadOnly、adCmdTable を表します。
もちろん、サーバー上に adovbs.inc のバックアップがある場合は、数字を使用せずにこれらの単語を直接使用することもできます。 adovbs.inc には、これら 3 つの定数と他の定数のリストが含まれています。