2009/04/30

楽観的

トランザクションとか抜きに楽観的に考えた。mySQLのTimeStampを利用。
分解能は1秒だから秒単位に同時更新するとどうなるかわからない。
たぶん、後だしが勝つのではないかと。

日時処理は、帳票見ながらのinsertと誤投入のUpdateなのだからさ。

更新したレコード数を取得(ADO Command)

RecordSetを返さないコマンド(アクションクエリやストアドプロシージャ)の場合

command
.Execute RecordsAffected

プロバイダがLongで返してくれる。

RecordSetを返すクエリなどについては、RecordCountで。

**********************************
Dim cn As New ADODB.Connection
Dim updateSQL As String
Dim ra As Long

updateSQL = "update TableName set column1 = '2009/1/1' where ID =1 and UpdateTime = '2009/1/1 00:00:00';"

cn.Open [ConnectionString]
cn.Execute updateSQL, ra
If ra = 0 Then MsgBox "更新されませんでした。", vbCritical

cn.Close:Set cn = Nothing