VBSでmysqlにアクセスする
VBS(VBScript)でADOを使ってMySQLにアクセスするプログラムです。
MySQLは5.1、Connector/ODBCは5.1を使用しています。
また、テーブルのエンコーディングはUTF-8です。
insert文ではプレースホルダーを使用しています。SQLインジェクションは怖いですからね(笑)
t_userのnameに値を登録する時にadVarCharですと文字化けします。adWCharにするとUnicodeで処理してくれます。
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
<<GroovyでDBアクセス | HOME | Macでバックスラッシュの入力>>
COMMENTS
No title
TYPEをadWCharにする部分、参考になりました。
COMMENT FORM
TRACKBACK
| HOME |