示例#1
0
        public SybaseTransaction BeginTransaction(IsolationLevel iso, string transactionName)
        {
            if (State == ConnectionState.Closed)
            {
                throw new InvalidOperationException("The connection is not open.");
            }
            if (Transaction != null)
            {
                throw new InvalidOperationException("SybaseConnection does not support parallel transactions.");
            }

            string isolevel = String.Empty;

            switch (iso)
            {
            case IsolationLevel.Chaos:
                isolevel = "CHAOS";
                break;

            case IsolationLevel.ReadCommitted:
                isolevel = "READ COMMITTED";
                break;

            case IsolationLevel.ReadUncommitted:
                isolevel = "READ UNCOMMITTED";
                break;

            case IsolationLevel.RepeatableRead:
                isolevel = "REPEATABLE READ";
                break;

            case IsolationLevel.Serializable:
                isolevel = "SERIALIZABLE";
                break;
            }

            tds.Execute(String.Format("SET TRANSACTION ISOLATION LEVEL {0}\nBEGIN TRANSACTION {1}", isolevel, transactionName));
            transaction = new SybaseTransaction(this, iso);
            return(transaction);
        }