ASP/VBScript

ASP(Classic ASP)とVBScriptを利用してSQL Serverに接続するプログラムを作成してみた

ASP(Classic ASP)内でVBScriptを利用するプログラムにおいて、データベースに接続するプログラムを作成することができる。

今回は、ASP(Classic ASP)とVBScriptを利用してSQL Serverに接続してみたので、そのプログラムを共有する。

前提条件

下記記事のASP(Classic ASP)とVBScriptを利用したプログラムを動かす環境構築が完了していること。

ASP(Classic ASP)とVBScriptを利用したプログラムを動かす環境構築をしてみたASP(Classic ASP)とは、HTMLなどで記述されたWebページの中にスクリプトを埋め込む形で記述することができる機能のことで...

また、下記記事のように、A5M2を利用してSQL Serverに接続できていること。

A5M2を利用して各DBに接続してみたA5M2(A5:SQL Mk-2)は、SQL文の入力支援やER図作成などの機能を備えていて、Oracle、MySQL、PostgreSQ...

サンプルプログラムの作成

作成したサンプルプログラムの内容は以下の通りで、ADO(ActiveX Data Objects)を利用してSQL Serverに接続している。

<%@ LANGUAGE="VBScript" %>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="Shift_JIS"/>
    <title>SQLServer接続</title>
</head>
<body>
  SQL Serverのユーザーデータテーブル(USER_DATA)から、全データを取得します。<br/><br/>
 
  <%
    'SQL Serverに接続する
    Dim objCon
    Dim objRS
    Set objCon = CreateObject("ADODB.Connection")
    objCon.Open "Driver={SQL Server};server=localhost;" _ 
              & "database=master;uid=USER01;pwd=USER01;"

    'USER_DATAテーブルから全データを取得する
    Set objRS = objCon.Execute("SELECT * FROM dbo.USER_DATA")
            
    If objRS.EOF Then
      'データが無い場合は、メッセージを画面表示し終了する
      Response.Write "ユーザーデータテーブルにデータはありません。"
    Else
      Response.Write "<table border='1' cellpadding='5'>"
      Response.Write "<tr><th>ID</th><th>名前</th><th>生年月日</th>" _ 
                   & "<th>性別</th><th>メモ</td></tr>"
               
      '取得したレコード数分、データを画面に表示する
      Do Until objRS.EOF
        Response.Write "<tr><td>"
        Response.Write objRS("id").Value
        Response.Write "</td><td>"
        Response.Write objRS("name").Value
        Response.Write "</td><td>"
        '生年月日(年・月・日)を結合して出力する
        Response.Write objRS("birth_year").Value & "年" & objRS("birth_month").Value _
             & "月" & objRS("birth_day").Value & "日"
        Response.Write "</td><td>"
        '性別を変換し出力する
        If objRS("sex").Value = "1" Then
          Response.Write "男"
        ElseIf objRS("sex").Value = "2" Then
          Response.Write "女"
        Else
          Response.Write ""
        End If
        Response.Write "</td><td>"
        Response.Write objRS("memo").Value
        Response.Write "</td></tr>"
                
        '次のレコードに進む
        objRS.MoveNext
      LOOP
      Response.Write "</table>"
            
      'SQL Serverから切断する
      objCon.Close
      Set objRS = Nothing
      Set objCon = Nothing
    End If
  %>
</body>
</html>

なお、DB接続先は、以下の接続先を利用している。
SQLServer接続先



「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) SQL Serverのデータ取得元となるテーブルのデータを、以下のように設定する。
サンプルプログラムの実行結果_1

2)「C:\inetpub\wwwroot」フォルダ下に、作成したサンプルプログラム(sqlserver.asp)を配置する。
サンプルプログラムの実行結果_2

3) ブラウザ上でURLに「http://localhost/sqlserver.asp」を入力すると、以下の画面が表示されることが確認できる。
サンプルプログラムの実行結果_3

4) SQL Serverのデータ取得元となるテーブルのデータを削除する。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2

5) ブラウザ上でURLに「http://localhost/sqlserver.asp」を再度入力すると、以下の画面が表示されることが確認できる。
サンプルプログラムの実行結果_5

要点まとめ

  • ASP(Classic ASP)内でVBScriptを利用するプログラムにおいて、SQL Server等のデータベースに接続するプログラムを作成することができる。