<

![endif]-->

fc2ブログ

VBSでmysqlにアクセスする

VBS(VBScript)でADOを使ってMySQLにアクセスするプログラムです。
MySQLは5.1、Connector/ODBCは5.1を使用しています。
また、テーブルのエンコーディングはUTF-8です。
insert文ではプレースホルダーを使用しています。SQLインジェクションは怖いですからね(笑)
t_userのnameに値を登録する時にadVarCharですと文字化けします。adWCharにするとUnicodeで処理してくれます。


Option Explicit

' コネクション生成
Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open "dsn=localhost;uid=user;pwd=password"
cn.CursorLocation = 3

Dim cmd
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cn

' テーブル生成
Dim sql
sql = "create table t_user("
sql = sql & "id integer, "
sql = sql & "name text, "
sql = sql & "primary key (id)"
sql = sql & ") type=InnoDB"
cn.Execute sql

' 登録
Dim par1
Dim par2
sql = "insert into t_user values (?, ?)"
cmd.CommandText = sql
Set par1 = CreateObject("ADODB.Parameter")
Set par2 = CreateObject("ADODB.Parameter")
par1.Type = 3 ' adInteger
par1.Direction=1 ' adParamInput
par1.Size = 1
par1.Value = 0
par2.Type = 130 ' adWChar
par2.Direction=1 ' adParamInput
par2.Size = 1
par2.Value = " "
cmd.Parameters.Append par1
cmd.Parameters.Append par2

Dim nameAry
Dim i
nameAry = Array("予定表", "?", "?", "ハンカク")
cn.BeginTrans ' トランザクション開始
For i = 0 To UBound(nameAry)
par1.Value = i+1
par2.Size = len(nameAry(i))
par2.Value = nameAry(i)
cmd.Execute
Next
cn.CommitTrans ' トランザクション完了

' 検索
Dim rs
sql = "select id, name from t_user order by id"
Set rs = cn.Execute(sql)
do until rs.EOF
WScript.echo(rs("id") & "," & rs("name"))
rs.MoveNext
loop

' テーブル削除
sql = "drop table t_user"
cn.Execute sql
cn.Close

Tag : mysql

COMMENTS

No title

TYPEをadWCharにする部分、参考になりました。

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)