- 论坛徽章:
- 0
|
各位大虾,请指教:
我有一服务端的帐务处理程序,用CLI编写,事务处理方式,大概如下:
ret1=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
ret2=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
ret = 0;
ret = insert_table1(hstmt_db1,...);
if ( !ret )
ret = update_table2(hstmt_db1,...);
if (ret)
{
ret3=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_ROLLBACK);
ret4=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
}
else
{
ret5=Sqltransact(SQL_NULL_ENV,hdbc_db1,SQL_COMMIT);
ret6=Sqlsetconnectoption (hdbc_db1,
SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON);
}
其中ROLLBACK时大部分时间没有问题,但是偶尔ret3返回-1,
导致数据不一致,严重影响帐务。
======
烦恼的人!
====== |
|