Sdílet prostřednictvím


Podpora transakcí v prostředí OLE DB

Transakce je způsob, jak seskupit (nebo dávkovat) řadu aktualizací zdroje dat tak, aby všechny proběhly úspěšně a byly potvrzeny najednou nebo (pokud některý z nich selže), žádné nejsou potvrzeny a celá transakce se vrátí zpět. Tento proces zajišťuje integritu výsledku ve zdroji dat.

OLE DB podporuje transakce s následujícími třemi metodami:

Vztah relací a transakcí

Jeden objekt zdroje dat může vytvořit jeden nebo více objektů relace, z nichž každý může být uvnitř nebo mimo rozsah transakce v daném okamžiku.

Pokud relace nezadává transakci, všechny práce provedené v rámci této relace v úložišti dat se okamžitě potvrdí při každém volání metody. (Tento režim se někdy označuje jako režim automatického dokončování nebo implicitní režim.)

Když relace zadá transakci, veškerá práce v rámci této relace v úložišti dat je součástí této transakce a je potvrzena nebo přerušena jako jedna jednotka. (Tento režim se někdy označuje jako režim ručního potvrzení.)

Podpora transakcí je specifická pro poskytovatele. Pokud poskytovatel, kterého používáte, podporuje transakce, objekt relace, který podporuje ITransaction a ITransactionLocal může zadat (vnořenou) transakci. Šablony OLE DB CSession podporují tato rozhraní a je doporučeným způsobem implementace podpory transakcí v jazyce Visual C++.

Zahájení a ukončení transakce

Volání StartTransaction, Commita Abort metody v objektu sady řádků příjemce.

Volání ITransactionLocal::StartTransaction spustí novou místní transakci. Při spuštění transakce se všechny změny, které vyžadují pozdější operace, nebudou použity v úložišti dat, dokud transakce nezapíšete.

Volání ITransaction::Commit nebo ITransaction::Abort ukončení transakce. Commit způsobí všechny změny v rozsahu transakce, které se použijí v úložišti dat. Abort způsobí, že všechny změny v rozsahu transakce budou zrušeny a úložiště dat zůstane ve stavu, který měl před zahájením transakce.

Vnořené transakce

Vnořená transakce nastane, když spustíte novou místní transakci, pokud aktivní transakce již v relaci existuje. Nová transakce se spustí jako vnořená transakce pod aktuální transakcí. Pokud zprostředkovatel nepodporuje vnořené transakce, volání StartTransaction , pokud už je aktivní transakce relace vrátí XACT_E_XTIONEXISTS.

Distribuované transakce

Distribuovaná transakce je transakce, která aktualizuje distribuovaná data; to znamená, že data ve více než jednom síťovém počítačovém systému. Pokud chcete podporovat transakce přes distribuovaný systém, měli byste místo podpory transakcí OLE DB použít rozhraní .NET Framework.

Viz také

Použití přístupových objektů