数据库并发访问
应用程序运行的windows terminal server上,在多用户情况下,如果两个用户同时修改同一个表的时候,就会发生错误.对这个表的修改是在用户做拷贝动作的时候发生的,在第一个用户拷贝的时候,这时候另外一个用户也去拷贝,他们都需要修改同一个表,这时候冲突就发生了,不可接受的时候,这个时候,第一个用户的操作也会中途失败.
抛异常的地方 recordset::update()调用的dbcore.cpp:ThrowDBException((RETCODE)(lRowsAffected ==0 ?
AFX_SQL_ERROR_NO_ROWS_AFFECTED:
AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED))
异常信息的pexception->m_strError是 no rows were affected by the update or delete operation.
我想知道,有没有好的建议,在两个用户同时update一个表的时候,能够协调好.
谢谢大家了.
大概源代码是这样:
void getID()
{
begintrans;
update(table);//这个函数出错,用的是ODBC机制
committrans;
}