我使用的环境是VC++ 6.0
采用ODBC操作数据库,采用直接执行SQL语句的方式,请问如何:
1. 开始一个事务?
2. 提交一个事务?
3. 回滚一个事务?我的部分代码如下:CDatabase db;
db.OpenEx( "DSN=vv;UID=;PWD=", CDatabase::noOdbcDialog );
CString strCmd;
strCmd.Format("INSERT INTO route ( typeID, type1,type2,cost) ) VALUES (1,1,1,0.5));
TRY {
db.ExecuteSQL( strCmd );
}
CATCH(CDBException, e) {
//此处应回滚事务
msg.Format( "向表route中追加数据失败!错误原因:%s",e->m_strError );
AfxMessageBox(msg);
return 1;
}
END_CATCH
//此处应提交事务
db.close();请教各位大虾,望不吝赐教!!
采用ODBC操作数据库,采用直接执行SQL语句的方式,请问如何:
1. 开始一个事务?
2. 提交一个事务?
3. 回滚一个事务?我的部分代码如下:CDatabase db;
db.OpenEx( "DSN=vv;UID=;PWD=", CDatabase::noOdbcDialog );
CString strCmd;
strCmd.Format("INSERT INTO route ( typeID, type1,type2,cost) ) VALUES (1,1,1,0.5));
TRY {
db.ExecuteSQL( strCmd );
}
CATCH(CDBException, e) {
//此处应回滚事务
msg.Format( "向表route中追加数据失败!错误原因:%s",e->m_strError );
AfxMessageBox(msg);
return 1;
}
END_CATCH
//此处应提交事务
db.close();请教各位大虾,望不吝赐教!!
如果执行前不写db.BeginTrans()启动事务,会自动提交的。