发新话题
打印

一条insert语句同时插入两个表,如何解决?

方法一   

利用ASP内置ADO组件中的Connection对象可以实现对数据库操作的事务性处理。Connection对象的部分方法如下:   

●Connection.BeginTrans方法:启动一个事务;   

●Connection.CommitTrans方法:完成/提交一个事务;   

●Connection.RollBackTrans方法:撤消/放弃一个事务。   

//启动一个事务操作   

  Conn.BeginTrans        

  sqlText=“Insert  into  USER(userName,userPasswd)  values(‘”      

  sqlText=sqlText  &  request(“usrName”)  &  “’,‘”&request(“usrPasswd”)&“’)  ”      

  conn.execute(sqlText)      

  if  conn.Errors.Count>0  then        

  conn.Errors.Clear      

//如果插入数据操作失败,则事务向前回滚   

  conn.RollBackTrans        

  response.Redirct  RegisterFail.html      

  end  if      

  sqlText=“Insert  into  USERDOC(userName,Age,Sex,PhoneNumber,Address)  ”   

  sqlText=sqlText  &  “values(‘”&  request   

(“usrName”)  &  “’,  ”  &  request(“Age”)      

  sqlText=sqlText  &  “,‘”  &  request   

(“PhoneNum”)  &  “’,‘”      

  sqlText=sqlText  &  request(“Address”)  &  “’)  ”      

//执行事务单元中的第二条插入语句   

  conn.execute(sqlText)        

  if  conn.Errors.Count>0  then      

  conn.Errors.Clear      

//如果操作失败,则事务向前回滚   

  conn.RollBackTrans        

  response.Redirct  RegisterFail.html      

  end  if      

//如果整个事务操作执行正确,则提交事务   

  Conn.CommitTrans        

//转向注册成功处理页面   

  response.Redirct  RegisterOk.html

TOP

发新话题