Y
ynduanlian
Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是ACCESS的数据库,用一个ADOQuery执行两条更新语句: ADOQry2.Connection.BeginTrans;ADOQry2.SQL.Clear;if EdtOdograph.Text<>'' Then StrSql:='Update Rent set EndTime='''+ DateTimeToStr(Dt2)+''',Odograph2='+EdtOdograph.Text+' where RentID='+StrRentIDelse StrSql:='Update Rent set EndTime='''+ DateTimeToStr(Dt2)+''' where RentID='+StrRentID; ADOQry2.SQL.Add(StrSql); ADOQry2.ExecSQL; ADOQry2.SQL.Clear; if (iOdograph2>iOdograph1) then StrSql:='Update Car set State=''A'',Odograph='+EdtOdograph.Text+' where CarID='''+StrCarID+'''' else StrSql:='Update Car set State=''A'' where CarID='''+StrCarID+''''; ADOQry2.SQL.Add(StrSql); ADOQry2.ExecSQL; ADOQry2.Connection.CommitTrans;上述代码在我的测试系统下没有出现过错误,但是有一个用户的机器上确实出现了异常,并且根据他传达回的Access数据库发现,第一次ADOQry2.ExecSQL成功了,第二次却没有成功(第一句SQL的数据是修改了,但第二次没有修改),也就是说发生异常后“事务”更本没有起作用。 请高手指教: 1、是否ACCESS数据库不支持事务,为什么在程序异常后,事务的一部分成功了,另一部分却没有执行? 2、为什么在某些系统下会出现异常?代码有什么问题吗?在第二次执行ADOQry2.SQL.Clear前是否有必要增加一句:ADOQry2.Close()?