例如一个上传的事务过程.
要求既又要往数据库中写纪录又往硬盘写文件.往往有这种情况,数据库中已经成功写入一条纪录,但是写入文件失败。这种情况下如何做回滚处理?

解决方案 »

  1.   

    帮你顶下,sql里面用事务,但是写文件的不懂。
      

  2.   

    如果只是这种情况,那么,非常简单啊
    你先写入硬盘,判断是否正确写入,正确,则写入数据库,不正确,则不写数据库try
    {
    //保存到硬盘
    。。
    //保存到数据库
    。。
    }
    catch
    {
    //输出错误信息
    }
      

  3.   

    只要数据库事务没有Commit,就可以回滚
    try
    {
    //保存到硬盘
    。。
    //保存到数据库
    。。
    //事务Commit
    }
    catch
    {
    //回滚RollBack//输出错误信息
    }
      

  4.   

    你可以在catch里面,只要是出错,就删除硬盘文件.
    因为上传文件在前而写入数据库在后,如果上传失败,则数据库肯定不会写入;如果上传成功而数据库写入失败,那么,你删除硬盘文件也就没有问题.
    注意删除的时候要先判断有无该文件,如果有再删除.
      

  5.   

    原来如此.我一直以为有自动回滚连上传的文件都可以滚掉.既然没有就只有写到catch里了。