DBアクセス

ASPでDBアクセスをサーバサイドで行う場合は、サーバサイドのVBScriptにてDBアクセスします。基本的なDBアクセスを掲載します。

  • DB接続・切断

Server.CreateObjectにて、ドライバのオブジェクトを生成します。今回はADODBを使っています。DBコネクションのOPEN,CLOSEにてDBアクセスを行います。

Set Con = Server.CreateObject("ADODB.Connection")

'DB接続コネクションをOPENする
Con.Open "test"

'コネクションをCLOSEする。
Con.Close
Set Con = Nothing
  • SQL発行(データ取得)

Server.CreateObjectにて、レコードセットのOPENを生成し、SQLの発行を行います。

Set Con = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")

'DB接続コネクションをOPENする
Con.Open "test"

'レコードセットをOPENする。(実行SQL,コネクションを指定)
Rs.Open "select * from testTable", Con

'取得されたレコード分、繰り返す
Do While not Rs.EOF

    'テーブルのカラム名を指定して値を取得
    Dim item =  Rs.Fields("item")

    '次のレコード
    Rs.MoveNext
Loop

'レコードセットをCLOSEする。
Rs.Close
Set Rs = Nothing

'コネクションをCLOSEする。
Con.Close
Set Con = Nothing

レコードセットに返却されたデータを、Rs.EOF(終了)するまで、Rs.MoveNextにて次レコードを参照します。レコードセットが完了後、レコードセットのCLOSEを行います。

  • SQL発行(データ登録・更新・削除)

Server.CreateObjectにて、レコードセットのOPENを生成し、SQLの発行(登録・更新・削除)を行います。

Set Con = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")

'DB接続コネクションをOPENする
Con.Open "test"

Dim SQL

SQL = "SELECT * FROM TEST "

'レコードセットのOPENする。(SQL発行)
RS.OPEN SQL,Con,1,3

'対象のデータの存在判定
If Rs.Eof = True Then

    '未存在時は、新規レコードを登録する
    Rs.AddNew
    Rs.Fields("INSERTITEM")   = "TEST"
    Rs.UpDate
Else
    '存在時は、レコードを更新する
    Rs.Fields("UPDATEITEM")   = "TEST"
    Rs.UpDate

    '存在時は、レコードを削除する
    Rs.Delete
End If

'レコードセットをCLOSEする。
Rs.Close
Set Rs = Nothing

'コネクションをCLOSEする。
Con.Close
Set Con = Nothing

データの登録、更新、削除をレコードセットで行う場合は、対象となるデータをSELECTし、データが存在しない場合は、AddNewで新規レコードを作成し、項目に値を設定御、Rs.Updateします。存在する場合は、更新項目に値を設定しRs.Updateします。また削除時は、Rs.Deleteします。