亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqlitetransaction.cs

?? sqlite 3.3.8 支持加密的版本
?? CS
字號:
?/********************************************************
 * ADO.NET 2.0 Data Provider for SQLite Version 3.X
 * Written by Robert Simpson (robert@blackcastlesoft.com)
 * 
 * Released to the public domain, use at your own risk!
 ********************************************************/

namespace System.Data.SQLite
{
  using System;
  using System.Data;
  using System.Data.Common;

  /// <summary>
  /// SQLite implementation of DbTransaction.
  /// </summary>
  public sealed class SQLiteTransaction : DbTransaction
  {
    /// <summary>
    /// The connection to which this transaction is bound
    /// </summary>
    internal SQLiteConnection _cnn;
    internal long _version; // Matches the version of the connection

    /// <summary>
    /// Constructs the transaction object, binding it to the supplied connection
    /// </summary>
    /// <param name="connection">The connection to open a transaction on</param>
    /// <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
    internal SQLiteTransaction(SQLiteConnection connection, bool deferredLock)
    {
      _cnn = connection;
      _version = _cnn._version;

      if (_cnn._transactionLevel++ == 0)
      {
        try
        {
          using (SQLiteCommand cmd = _cnn.CreateCommand())
          {
            if (!deferredLock)
              cmd.CommandText = "BEGIN IMMEDIATE";
            else
              cmd.CommandText = "BEGIN";

            cmd.ExecuteNonQuery();
          }
        }
        catch (SQLiteException)
        {
          _cnn._transactionLevel--;
          _cnn = null;
          throw;
        }
      }
    }

    /// <summary>
    /// Commits the current transaction.
    /// </summary>
    public override void Commit()
    {
      IsValid(true);

      if (--_cnn._transactionLevel == 0)
      {
        try
        {
          using (SQLiteCommand cmd = _cnn.CreateCommand())
          {
            cmd.CommandText = "COMMIT";
            cmd.ExecuteNonQuery();
          }
        }
        finally
        {
          _cnn = null;
        }
      }
      else
      {
        _cnn = null;
      }
    }

    /// <summary>
    /// Returns the underlying connection to which this transaction applies.
    /// </summary>
    public new SQLiteConnection Connection
    {
      get { return _cnn; }
    }

    /// <summary>
    /// Forwards to the local Connection property
    /// </summary>
    protected override DbConnection DbConnection
    {
      get { return Connection; }
    }

    /// <summary>
    /// Disposes the transaction.  If it is currently active, any changes are rolled back.
    /// </summary>
    protected override void Dispose(bool disposing)
    {
      if (IsValid(false))
        Rollback();

      _cnn = null;

      base.Dispose(disposing);
    }

    /// <summary>
    /// Gets the isolation level of the transaction.  SQLite only supports Serializable transactions.
    /// </summary>
    public override IsolationLevel IsolationLevel
    {
      get { return IsolationLevel.Serializable; }
    }

    /// <summary>
    /// Rolls back the active transaction.
    /// </summary>
    public override void Rollback()
    {
      IsValid(true);

      try
      {
        using (SQLiteCommand cmd = _cnn.CreateCommand())
        {
          cmd.CommandText = "ROLLBACK";
          cmd.ExecuteNonQuery();
        }
        _cnn._transactionLevel = 0;
      }
      finally
      {
        _cnn = null;
      }
    }

    internal bool IsValid(bool throwError)
    {
      if (_cnn == null)
      {
        if (throwError == true) throw new ArgumentNullException("No connection associated with this transaction");
        else return false;
      }

      if (_cnn._transactionLevel == 0)
      {
        if (throwError == true) throw new SQLiteException((int)SQLiteErrorCode.Misuse, "No transaction is active on this connection");
        else return false;
      }
      if (_cnn._version != _version)
      {
        if (throwError == true) throw new SQLiteException((int)SQLiteErrorCode.Misuse, "The connection was closed and re-opened, changes were rolled back");
        else return false;
      }
      if (_cnn.State != ConnectionState.Open)
      {
        if (throwError == true) throw new SQLiteException((int)SQLiteErrorCode.Misuse, "Connection was closed");
        else return false;
      }

      return true;
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久香蕉的特点 | 欧美一区二区三区爱爱| 欧美一区二区三区免费观看视频| 五月综合激情日本mⅴ| 欧美一级欧美三级| 黄色精品一二区| 国产精品免费视频一区| 91在线高清观看| 亚洲国产视频a| 欧美一区二区三区白人| 国产激情偷乱视频一区二区三区| 中文字幕欧美一| 欧美日韩电影在线播放| 久久国产尿小便嘘嘘| 国产女主播一区| 在线免费观看日韩欧美| 日本sm残虐另类| 日本一区二区高清| 91精彩视频在线| 日本人妖一区二区| 亚洲国产精品国自产拍av| 91久久精品一区二区| 久久国产精品无码网站| 国产精品―色哟哟| 欧美日韩一卡二卡三卡| 狠狠色2019综合网| 日韩理论片网站| 欧美一区二区三区公司| 成人黄色国产精品网站大全在线免费观看| 亚洲一区在线观看免费观看电影高清| 欧美成人一区二区三区在线观看| 成人av在线观| 日韩精品亚洲专区| 久久精品亚洲一区二区三区浴池| 91免费看`日韩一区二区| 人人狠狠综合久久亚洲| 国产欧美精品一区二区色综合朱莉| 91色综合久久久久婷婷| 奇米精品一区二区三区在线观看| 国产精品嫩草99a| 久久99深爱久久99精品| 99re亚洲国产精品| 日本不卡视频在线观看| 亚洲国产精品激情在线观看| 欧美二区在线观看| 成人一区二区视频| 三级久久三级久久| 最新国产成人在线观看| 欧美电影免费观看高清完整版在| 不卡av免费在线观看| 日韩vs国产vs欧美| 最新久久zyz资源站| 欧美v亚洲v综合ⅴ国产v| 色一情一乱一乱一91av| 激情久久五月天| 亚洲高清不卡在线观看| 国产精品视频免费| 欧美大白屁股肥臀xxxxxx| 在线视频综合导航| 高清shemale亚洲人妖| 日本不卡免费在线视频| 亚洲欧美日韩久久精品| 国产亚洲精品bt天堂精选| 亚洲欧美偷拍三级| 精品国产自在久精品国产| 欧美视频在线观看一区二区| 成人av在线资源| 国产一区二区三区黄视频| 天天色 色综合| 一区二区三区在线播放| 久久久精品2019中文字幕之3| 91精品国产综合久久福利软件| 色综合一区二区三区| 国产福利不卡视频| 麻豆国产精品一区二区三区| 午夜精品久久久久影视| 亚洲日本在线看| 国产精品欧美一区二区三区| 精品国产免费久久| 欧美精品一级二级三级| 欧美主播一区二区三区美女| 波多野结衣精品在线| 国产成人精品三级麻豆| 精品在线免费视频| 蜜臀久久久久久久| 五月天中文字幕一区二区| 亚洲免费观看高清完整版在线 | 日韩精品一区国产麻豆| 欧美性猛片xxxx免费看久爱 | av一区二区三区黑人| 国产精品资源站在线| 久久精品国产成人一区二区三区| 日韩福利电影在线| 亚洲v中文字幕| 一区二区三区四区蜜桃 | 美女www一区二区| 丝袜a∨在线一区二区三区不卡| 亚洲欧美一区二区久久| 亚洲欧美日本韩国| 亚洲日本青草视频在线怡红院 | 亚洲精品自拍动漫在线| 亚洲欧美在线另类| 国产精品美女久久久久aⅴ国产馆| 国产婷婷色一区二区三区在线| 26uuu另类欧美| 久久久国产精华| 亚洲国产成人在线| 国产精品久久久久久久久免费樱桃 | 精品在线播放午夜| 国模娜娜一区二区三区| 激情久久五月天| 国产精品一区三区| 成人网男人的天堂| 成人a免费在线看| 色综合中文字幕国产| 99久久精品久久久久久清纯| 97久久精品人人澡人人爽| 一本久久综合亚洲鲁鲁五月天| 在线观看亚洲精品视频| 欧美日韩免费观看一区三区| 欧美一区二区三区视频在线| 精品国产免费久久| 国产欧美一区二区在线| 成人欧美一区二区三区1314| 亚洲精品国产第一综合99久久 | 国产揄拍国内精品对白| 国产成人免费视频一区| 99久久精品情趣| 色哟哟国产精品| 制服丝袜成人动漫| 久久久精品黄色| 成人欧美一区二区三区黑人麻豆| 一区二区三区鲁丝不卡| 天天色天天操综合| 国产在线视频精品一区| 成人av在线播放网址| 91成人在线精品| 欧美一卡2卡三卡4卡5免费| 久久综合九色综合97婷婷女人| 国产日韩欧美精品综合| 亚洲欧美日韩成人高清在线一区| 午夜免费久久看| 国内精品不卡在线| 97久久精品人人做人人爽50路| 亚洲码国产岛国毛片在线| 亚洲国产视频直播| 国产原创一区二区| 色综合久久天天| 欧美一级欧美三级在线观看| 欧美国产精品v| 亚洲国产裸拍裸体视频在线观看乱了| 麻豆精品久久精品色综合| 成人免费毛片片v| 欧美性色综合网| 精品国产乱码久久久久久图片| 国产精品国产精品国产专区不蜜 | 偷窥国产亚洲免费视频| 韩国一区二区视频| 91视频精品在这里| 日韩欧美国产一区在线观看| 中文字幕日本不卡| 免费一级欧美片在线观看| av亚洲精华国产精华| 91精品视频网| 国产精品乱码一区二区三区软件| 天堂va蜜桃一区二区三区| 国产高清不卡一区| 欧美三级三级三级| 国产农村妇女毛片精品久久麻豆 | 蜜桃视频在线观看一区| av电影天堂一区二区在线| 91精品欧美久久久久久动漫| 中文字幕一区二区三区在线不卡| 日本网站在线观看一区二区三区 | 欧美一级欧美一级在线播放| 中文字幕在线观看不卡视频| 免费观看在线综合| 95精品视频在线| 精品国产一区二区三区久久久蜜月 | 久久精品亚洲精品国产欧美kt∨| 亚洲一区二区三区四区在线观看 | 亚洲欧美日韩一区二区三区在线观看| 久久精品久久综合| 91精彩视频在线| 欧美国产一区二区| 喷白浆一区二区| 欧洲精品中文字幕| 亚洲国产成人私人影院tom| 麻豆国产一区二区| 日本道精品一区二区三区| 国产欧美综合在线| 蜜臂av日日欢夜夜爽一区| 欧美中文字幕亚洲一区二区va在线| 国产日韩欧美精品一区| 美女视频黄 久久| 欧洲精品视频在线观看| 国产精品久久99| 国产精品1区2区| 精品国内二区三区| 日韩不卡免费视频|