用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

数据库 事务处理

2013-03-07 作者: 海大软件1102班举报

[c++]代码库

#include "stdafx.h"
using namespace System;
using namespace System::Data;
using namespace System::Data::OleDb;

ref struct MyEventHandler
{
    static void RowUpdated(Object^ sender, OleDbRowUpdatedEventArgs^ e)
    {
        if ( e->Status == UpdateStatus::ErrorsOccurred )
            throw "Row update failed!";
    }
};

void main()
{
    OleDbConnection^ myConnection = nullptr;
    OleDbTransaction^ myTransaction = nullptr;
    
    try
    {
        myConnection = gcnew OleDbConnection(
             "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music.mdb");
        myConnection->Open();
        
        OleDbDataAdapter^ dataAdapter = gcnew OleDbDataAdapter(
             "SELECT * FROM Music", myConnection);
        OleDbCommandBuilder^ commandBuilder = gcnew OleDbCommandBuilder(dataAdapter);
        dataAdapter->UpdateCommand = commandBuilder->GetUpdateCommand();
        
        dataAdapter->RowUpdated += gcnew OleDbRowUpdatedEventHandler(MyEventHandler::RowUpdated);
        
        DataSet^ myDataSet = gcnew DataSet();
        dataAdapter->MissingSchemaAction = MissingSchemaAction::AddWithKey;
        dataAdapter->Fill(myDataSet);
        
        myTransaction = myConnection->BeginTransaction();
        
        DataTable^ myTable = myDataSet->Tables[0];
        
        DataRow^ row = myTable->Rows->Find("Automatic");
        if ( row != nullptr )
            row["Title"] = "Automatic (Dance Mix)";

        row = myTable->Rows->Find("EnTrance");        
        if ( row != nullptr )
            row["GenreName"] = "Trance";
        
        dataAdapter->Update(myDataSet);
        myTransaction->Commit();
    }
    catch(Exception^ e)
    {
        Console::WriteLine(e->Message);
        if ( myTransaction != nullptr )
        {
            myTransaction->Rollback();
            Console::WriteLine("Transaction rolled back.");
        }
    }
    finally
    {
        myConnection->Close();
    }
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...