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 件のコメント:
コメントを投稿