TransactionScope not working with EnlistTransaction
---------------------------------------------------

                 Key: DNET-439
                 URL: http://tracker.firebirdsql.org/browse/DNET-439
             Project: .NET Data provider
          Issue Type: Bug
          Components: ADO.NET Provider
         Environment: Server: Firebird V1.5.3.4870, Debian linux
Client: Provider 2.7.7, .NET 4.0
            Reporter: Hélio Tibagí de Oliveira
            Assignee: Jiri Cincura
            Priority: Critical


Assuming the table "TEST" created in Firebird and SQLServer using the statement 
below:
-------------------------------------------------------------------------------------------------------------------------
CREATE TABLE TEST (INTEGER_COLUMN INT NOT NULL) 




Then, the following code in a console application connecting to the SQLServer:
-----------------------------------------------------------------------------------------------------------
SqlConnection connSQLServer = new SqlConnection("Data Source=localhost;Initial 
Catalog=DATABASE;User ID=sa;Password=mypassword");
connSQLServer.Open();

using (TransactionScope scope = new TransactionScope())
{
    connSQLServer.EnlistTransaction(Transaction.Current);
    Int32 affectedLines = new SqlCommand("INSERT INTO TEST (INTEGER_COLUMN) 
VALUES (1)", connSQLServer).ExecuteNonQuery();
    Console.WriteLine(affectedLines); //  ---> #1 line affected
}

Int32 persistedLines = (Int32)new SqlCommand("SELECT COUNT(*) FROM TEST", 
connSQLServer).ExecuteScalar();

Console.WriteLine(persistedLines); //   ---> #0 line persisted



Running the same code in Firebird:
------------------------------------------------
FbConnection connFirebird = new 
FbConnection("User=SYSDBA;Password=masterkey;Database=myserver:backup02.fdb;Dialect=3;Charset=WIN1252;");
connFirebird.Open();

using (TransactionScope scope = new TransactionScope())
{
    connFirebird.EnlistTransaction(Transaction.Current);
    Int32 affectedLines = new FbCommand("INSERT INTO TEST (INTEGER_COLUMN) 
VALUES (1)", connFirebird).ExecuteNonQuery();
    Console.WriteLine(affectedLines);//  ---> #1 line affected
}

Int32 persistedLines = (Int32)new FbCommand("SELECT COUNT(*) FROM TEST", 
connFirebird).ExecuteScalar();

Console.WriteLine(persistedLines);//  ---> #1 line persisted


The rollback is done successfully in SQLServer, but not in Firebird. Can you 
fix this problem?

Thanks in advance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Firebird-net-provider mailing list
Firebird-net-provider@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to