当使用savepoints, 记住仅仅是回滚savepoints并不是足够的.当局部回滚后事务必须仍被提交.同时,如果你选择实施它们,如何通知用户或处理局部完成事务是非常重要的. 【相关文章:第四章 账号和组管理(续3)(Solar】
使用savepoints 【扩展阅读:第四章 账号和组管理(Solaris认证】
using system; 【扩展信息:[Palm]关于 Modal Dialo】
接下来的代码描述创建一个新的客户,同时处理客户请求.你不得不执行慢的连接,或某些原因在检查库以前的操作库存等级成本是被禁止的.时间的99.9%整个过程应该被成功结束.然而,如果在siteinventory表 保持最小的库存等级限制,它将会失败.你可以看一下的代码:
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;
using system.data;
using system.data.sqlclient;
using system.data.sqltypes;
…public void savepointtransaction()
{
// create and open the connection.
sqlconnection conn = new sqlconnection();
string connstring = "server= sqlinstance;database=test;"
+ "integrated security=sspi";
conn.connectionstring = connstring;
conn.open();
// create the commands.
// cmdinsertcustomer creates a new customer record
// by calling the debitwarehouseinventory
// stored procedure.
sqlcommand cmdinsertcustomer =
new sqlcommand("createcustomer", conn);
cmdinsertcustomer.commandtype = commandtype.storedprocedure;
cmdinsertcustomer.parameters.add
("@firstname", sqldbtype.nvarchar, 50, "firstname");
cmdinsertcustomer.parameters.add
("@lastname", sqldbtype.nvarchar, 50, "lastname");
cmdinsertcustomer.parameters.add
("@email", sqldbtype.nvarchar, 50, "email");
cmdinsertcustomer.parameters.add("@cid", sqldbtype.int, 0);
cmdinsertcustomer.parameters["@firstname"].direction =
parameterdirection.input;
cmdinsertcustomer.parameters["@lastname"].direction =
... 下一页