Sub InsertDB()
Global cnn As New ADODB.Connection
cnn.Open "Provider=SQLOLEDB;" & _
"Data Source=" & srvName & ";" & _
"Initial Catalog=" & databaseName & ";", user, pass
Dim cmdIns As ADODB.Command
Set cmdIns = New ADODB.Command
cmdIns.ActiveConnection = cnn
cmdIns.CommandTimeout = 0
cmdIns.CommandType = adCmdText
cmdIns.CommandText = "INSERT INTO myTable(id,name,price,bigmoney) VALUES(?,?,?,?)"
'DB定義: id int
Set param = cmdIns.CreateParameter("id", adInteger, adParamInput)
cmdIns.Parameters.Append param
'DB定義: name nvarchar(50)
Set param = cmdIns.CreateParameter("name", adVarWChar, adParamInput, 100)
cmdIns.Parameters.Append param
'DB定義: price decimal(12, 6)
Set param = cmdIns.CreateParameter("price", adDecimal, adParamInput)
param.Precision = 12 '全桁数
param.NumericScale = 6 '小数桁数 こんな感じ:123456.123456
cmdIns.Parameters.Append param
'DB定義: price bigmoney(12, 0)
Set param = cmdIns.CreateParameter("bigmoney", adDecimal, adParamInput)
param.Precision = 12 '全桁数
param.NumericScale = 0 '小数桁数 こんな感じ:123456123456
cmdIns.Parameters.Append param
cmdIns.Parameters("id").Value = 1
cmdIns.Parameters("name").Value = "かげんぱぱ"
cmdIns.Parameters("price").Value = 1999.123
cmdIns.Parameters("bigmoney").Value = 10000000000
cnn.BeginTrans 'トランザクション開始
cmdIns.Execute 'インサート実行
'cnn.RollbackTrans 'ロールバック
cnn.CommitTrans 'コミット
End Sub
2012年11月22日木曜日
SQLOLEDB INSERT トランザクション付き
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿