Implicit transactions

Implicit transactions

Postby mlagasio » Mon 04 Apr 2011 09:07

In our application we have use implicit transactions (we have not explicit SqlTransaction instances).
How could we migrate these cases to dotConnect Universal?

Many Thanks

Marco
mlagasio
 
Posts: 43
Joined: Mon 14 Mar 2011 13:42

Postby Shalex » Wed 06 Apr 2011 12:22

I have tested the following code with dotConnect Universal v 3.20.44. The records are inserted to the database only after executing "COMMIT TRANSACTION;":
Code: Select all
    using (UniConnection conn = new UniConnection("Provider=SQL Server;Data Source=MSSQL2008RTM;user id=sa;Initial Catalog=Test;")) {
        conn.Open();
        UniCommand cmd = conn.CreateCommand();
        cmd.CommandText = "SET IMPLICIT_TRANSACTIONS ON;";
        cmd.ExecuteNonQuery();
        cmd.CommandText = "insert into dept values (50, 'a', 'a');";
        int i = cmd.ExecuteNonQuery();
        cmd.CommandText = "insert into dept values (60, 'b', 'b');";
        int i2 = cmd.ExecuteNonQuery();
        if (i == 1 && i2 == 1) {
            cmd.CommandText = "COMMIT TRANSACTION;";
            cmd.ExecuteNonQuery();
        }
    }

Is that what you mean?
Shalex
Devart Team
 
Posts: 7654
Joined: Thu 14 Aug 2008 12:44

Postby mlagasio » Wed 06 Apr 2011 13:37

Hi,

perhaps the effect at database level is that you have tested, but
our code look like this

TransactionOptions txOptions = new TransactionOptions();
txOptions.Timeout = new TimeSpan(0, 1, 00);
txOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
using (TransactionScope transactionSc = new TransactionScope(TransactionScopeOption.Required, txOptions))
{
using (Connection = new SqlConnection("Data Source=MyDataSource;Initial Catalog=MyCatalog;User ID=MyUserID;Password=MyPassword"))
{
Connection.Open();
try
{
........(DoSomething).......

transactionSc.Complete();
}
finally
{
Connection.Close();
}
}
}

Thanks, Marco
mlagasio
 
Posts: 43
Joined: Mon 14 Mar 2011 13:42

Postby Shalex » Fri 08 Apr 2011 15:36

It works. dotConnect Universal supports TransactionScope.
Shalex
Devart Team
 
Posts: 7654
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect Universal