SAK 図書館
MySQL 編2 - ODBC + VB ADO、テーブル作成、レコード更新、レコード参照
■MySQL ODBC + VB ADO テーブル作成 ・テーブル作成で、日本語項目名が指定できるかテストする。 問題なく作成できる。 Dim cn As Variant Dim sql As String '** ODBC 接続 Set cn = 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 ■MySQL ODBC + VB ADO レコード更新 ・レコード追加で、日本語データが指定できるかテストする。 問題なく追加できる。 Dim cn As Variant '** ODBC 接続 Set cn = 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 ■MySQL ODBC + VB ADO トランザクションロールバックテスト ・昔の MySQL はトランザクションをサポートしていなくて悲しかったが、 最近のはトランザクションを利用する設定は面倒であるが、ちゃんと ロールバックすることができる。 Dim cn As Variant '** ODBC 接続 Set cn = 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 ■ロールバック確認 select * from testm; +--------+---------+---------+---------+ | キー | データ1 | データ2 | データ3 | +--------+---------+---------+---------+ | x001 | 1 | 2 | 3 | | x002 | 10 | 20 | 30 | | 日本語 | 1 | 2 | 3 | | かんじ | 10 | 20 | 30 | +--------+---------+---------+---------+ ■MySQL ODBC + VB ADO レコード参照 ・レコード参照で、日本語項目、日本語データが参照できるかテストする。 問題なく参照できる。 Dim cn as Variant Dim rs as Variant '** ODBC 接続 set cn = CreateObject ("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** レコードセットオープン set rs = cn.Execute("select * from testm") '** レコード処理 do until rs.EOF print rs("キー").name & " | " & rs("キー") rs.MoveNext loop '** レコードセットクローズ rs.Close '** ODBC 接続解除 cn.Close ■その他 ADO 操作 ・SQL に多少の違いはあっても、ADO そのものの操作は Oracle と変わらない。 『VB ADO + SQL 応用編』、『ASP VB Script ADO + SQL 応用編』 を参考にして下さい。 ■MySQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料