SAK 図書館
ASP VB Script ADO + SQL 応用編 (その二) ADO 更新 - Execute
ADO による更新は、SQL 文法をそのまま送信して行います。 尚、SQL Plus 実行時の最後の『;』は、ASP からは必要ありません。 VB 固有の edit などによる更新は、言語に左右されやすいので説明しません。 10 万件程度の更新では、SQL をそのまま発行しても問題なしです。 もしかすると、edit 等の構文より高速かもしれません。 基本的に Oracle、SQL-Sever、MDB で共通です。 ■データ更新、レコード更新 (追加、修正、削除) '** ODBC 接続 if isempty(session("s3cn_ado")) then set session("s3cn_ado") = server.CreateObject ("ADODB.Connection") session("s3cn_ado").Open "dsn=SAK3_ADO;uid=SAK;pwd=SAK" session("s3cn_ado").CursorLocation = 3 end if '** RDB 処理 session("s3cn_ado").Execute "insert into sak.練習テーブル名 values " _ & "(データ1, データ2...)" 以上の様に、session("s3cn_ado").Execute で、SQL 文の insert、update、 delete を発行して、全ての更新が可能となります。 尚、create や drop などの命令も発行できます。 SQL すべてが発行可能ですので、色々と試してみると良いでしょう。 ■トランザクション 複数の session("s3cn_ado").Execute で発行したリクエストをひとつのトラン ザクションとして処理するには、 session("s3cn_ado").BeginTrans (トランザクション開始) session("s3cn_ado").CommitTrans (トランザクション終了) session("s3cn_ado").RollbackTrans (トランザクションキャンセル) を使用します。 ■現実的なコード例 <%@ Language=VBScript %> <% '======================================================================= ' SQL-RDB 処理 '======================================================================= dim dsn '** DSN 設定 dsn = "dsn=SAK3_ADO;uid=SAK;pwd=SAK" '// ODBC システム DSN を使用しての接続例である。 '** ODBC 接続 if isempty(session("s3cn_ado")) then set session("s3cn_ado") = server.CreateObject ("ADODB.Connection") session("s3cn_ado").Open dsn session("s3cn_ado").CursorLocation = 3 end if '** RDB 処理 if RdbShori(session("s3cn_ado")) = FALSE then response.write("RDB 更新に失敗しました。") else response.write("RDB 更新正常終了。") end if '======================================================================= ' RDB 処理 '======================================================================= function RdbShori(s3cn_ado) '** エラーセット RdbShori = FALSE '** トランザクション開始 session("s3cn_ado").BeginTrans '** エラートラップ開始 on error resume next '** RDB 処理1 session("s3cn_ado").Execute "insert into sak.練習テーブル名 values " _ & "(データ1, データ2...)" if err <> 0 then session("s3cn_ado").RollbackTrans exit function end if '** RDB 処理2 session("s3cn_ado").Execute "insert into sak.練習テーブル名 values " _ & "(データ1, データ2...)" if err <> 0 then session("s3cn_ado").RollbackTrans exit function end if '** エラートラップ終了 on error goto 0 '** トランザクション終了 session("s3cn_ado").CommitTrans '** 正常セット RdbShori = TRUE end function %> 以上で、おわかりのように、RDB 処理1 と 2 がどちらも正常に終了した場合の み更新結果が本当に反映され、どちらかがエラーになったときは、何ひとつ更新 がなかった状態に戻されます。 ■ASP VB Script ADO + SQL 応用編資料
■ASP VB Script oo4o + SQL 応用編資料
■ASP VB Script 基礎実地編資料
■ASP VB Script 基礎編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料