Y
yihui
Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中需要Access数据库中对多个表进行统一提交,
查看了离线数据库,有的说Access不支持事务,
有的说必须通过BDE才能执行事务处理,
还有说必须通过ODBC才能执行事务处理...
请高手结合以上问题指点下面的代码.Thanks.
Var
TmpQry:TQuery;
....
Begin
.....
TmpQry:=TQuery.Create(dm); //dm是一个DataModule
TmpQry.DatabaseName:='dbMain'; //dmMain是DataModule上的DataBase,通过ODBC连接Access
TmpQry.Database.StartTransaction;
try
//第一个表fm执行删除
asql:='Delete From fm where JmNo='+inttostr(OldJmNo);
TmpQry.close;
TmpQry.SQL.clear;
TmpQry.sql.add(asql);
TmpQry.ExecSQL;
//第二个表Jm执行删除
asql:='Delete From Jm where JmNo='+inttostr(OldJmNo);
TmpQry.close;
TmpQry.SQL.clear;
TmpQry.sql.add(asql);
TmpQry.ExecSQL;
TmpQry.Database.commit;
except
TmpQry.database.rollback;
......
end;
....
查看了离线数据库,有的说Access不支持事务,
有的说必须通过BDE才能执行事务处理,
还有说必须通过ODBC才能执行事务处理...
请高手结合以上问题指点下面的代码.Thanks.
Var
TmpQry:TQuery;
....
Begin
.....
TmpQry:=TQuery.Create(dm); //dm是一个DataModule
TmpQry.DatabaseName:='dbMain'; //dmMain是DataModule上的DataBase,通过ODBC连接Access
TmpQry.Database.StartTransaction;
try
//第一个表fm执行删除
asql:='Delete From fm where JmNo='+inttostr(OldJmNo);
TmpQry.close;
TmpQry.SQL.clear;
TmpQry.sql.add(asql);
TmpQry.ExecSQL;
//第二个表Jm执行删除
asql:='Delete From Jm where JmNo='+inttostr(OldJmNo);
TmpQry.close;
TmpQry.SQL.clear;
TmpQry.sql.add(asql);
TmpQry.ExecSQL;
TmpQry.Database.commit;
except
TmpQry.database.rollback;
......
end;
....