SAK 図書館
MySQL 編3 - ODBC + ASP ADO、テーブル作成、レコード更新、レコード参照
■MySQL ODBC + ASP VB Script ADO テーブル作成 ・テーブル作成で、日本語項目名が指定できるかテストする。 問題なく作成できる。 <%@ Language=VBScript %> <% Const title = "MySQL ODBC + ASP VB Script ADO テーブル作成" Dim cn Dim sql '** ODBC 接続 set cn = Server.CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** テーブル作成 sql = "create table testm (" sql = sql & "キー char(008)," sql = sql & "データ1 int8," sql = sql & "データ2 int8," sql = sql & "データ3 int8" sql = sql & ") type=InnoDB;" cn.Execute sql '** ODBC 接続解除 cn.Close %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE><% = title %></TITLE> </HEAD> <BODY> <P><% = title %></P> <P><% = sql %></P> <P>処理終了</P> </BODY> </HTML> ■MySQL ODBC + ASP VB Script ADO レコード更新 ・レコード追加で、日本語データが指定できるかテストする。 問題なく追加できる。 <%@ Language=VBScript %> <% Const title = "MySQL ODBC + ASP VB Script ADO レコード更新" Dim cn '** ODBC 接続 set cn = Server.CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** トランザクション開始 cn.BeginTrans '** レコード処理 cn.Execute "insert into testm values ('x001', 1, 2, 3)" cn.Execute "insert into testm values ('x002', 10, 20, 30)" cn.Execute "insert into testm values ('日本語', 1, 2, 3)" cn.Execute "insert into testm values ('かんじ', 10, 20, 30)" '** トランザクション終了 cn.CommitTrans '** ODBC 接続解除 cn.Close %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE><% = title %></TITLE> </HEAD> <BODY> <P><% = title %></P> <P>処理終了</P> </BODY> </HTML> ■MySQL ODBC + ASP VB Script ADO トランザクションロールバックテスト ・昔の MySQL はトランザクションをサポートしていなくて悲しかったが、 最近のはトランザクションを利用する設定は面倒であるが、ちゃんと ロールバックすることができる。 <%@ Language=VBScript %> <% Const title = "MySQL ODBC + ASP VB Script ADO ロールバックテスト" Dim cn '** ODBC 接続 set cn = Server.CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** トランザクション開始 cn.BeginTrans '** レコード処理 cn.Execute "insert into testm values ('t001', 1, 2, 3)" cn.Execute "insert into testm values ('t002', 10, 20, 30)" cn.Execute "insert into testm values ('トラン', 1, 2, 3)" cn.Execute "insert into testm values ('ザクシ', 10, 20, 30)" '** トランザクションキャンセル cn.RollbackTrans '** ODBC 接続解除 cn.Close %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE><% = title %></TITLE> </HEAD> <BODY> <P><% = title %></P> <P>処理終了</P> </BODY> </HTML> ■ロールバック確認 select * from testm; +--------+---------+---------+---------+ | キー | データ1 | データ2 | データ3 | +--------+---------+---------+---------+ | x001 | 1 | 2 | 3 | | x002 | 10 | 20 | 30 | | 日本語 | 1 | 2 | 3 | | かんじ | 10 | 20 | 30 | +--------+---------+---------+---------+ ■MySQL ODBC + ASP VB Script ADO レコード参照 ・レコード参照で、日本語項目、日本語データが参照できるかテストする。 問題なく参照できる。 <%@ Language=VBScript %> <% Const title = "MySQL ODBC + ASP VB Script ADO レコード参照" Dim cn Dim rs %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE><% = title %></TITLE> </HEAD> <BODY> <P><% = title %></P> <% '** ODBC 接続 set cn = Server.CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** レコードセットオープン set rs = cn.Execute("select * from testm") '** レコード処理 response.write(rs("キー").name & "<BR>") response.write("-------------<BR>") do until rs.EOF response.write(rs("キー") & "<BR>") rs.MoveNext loop response.write("-------------<BR>") '** レコードセットクローズ rs.Close '** ODBC 接続解除 cn.Close %> <P>処理終了</P> </BODY> </HTML> ■その他 ADO 操作 ・SQL に多少の違いはあっても、ADO そのものの操作は Oracle と変わらない。 『VB ADO + SQL 応用編』、『ASP VB Script ADO + SQL 応用編』 を参考にして下さい。 ■MySQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料