Archief - Transacties in ADO.net met ODAC

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

BE|Virus

Legacy Member
Ik ben momenteel bezig met een datalaag te maken in C# met het ADO.net framework. Als DBMS wordt momenteel Oracle 11G Enterprise gebruikt. We gebruiken de nieuwe componenten uit ODAC (Oracle Data Acces Components for Windows). De gebruikte namespace is Oracle.DataAcces en niet de verouderde System.Data.Oracle

De situatie is als volgt: Ik moet twee DataSets updaten met hun respectievelijke
DataAdapters. Dit moet in transactie gebeuren. Hiertoe vraag ik een nieuw DbConnection object aan de provider, en vraag aan dit connection object een nieuwe transactie aan (GetConnection() is een methode die het connectie object aanvraagt aan de provider, en de connectionstring toewijst):

Code:
DbConnection conn = GetConnection();
DbTransaction transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);

Bij die laatste regel loopt het fout. Ik krijg immer een NullReferenceException. Het connection object is wel degelijk geen null. De bijbehorende stacktrace:

Code:
   at Oracle.DataAccess.Client.OracleConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Oracle.DataAccess.Client.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel)
   at System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Net.Prunegoo.DataStorage.DataStorage.GetOrderForProcessing() in C:\svn-local\datastorage\prunegoodatastorage\DataStorage.cs:line 1616
   at Net.Prunegoo.DataStorage.Program.Main(String[] args) in C:\svn-local\datastorage\prunegoodatastorage\Program.cs:line 17
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Weet iemand hier raad mee? Bij andere providers ben ik dit nog nooit tegengekomen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan