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します。