You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.3 KiB

4 years ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Text;
  5. namespace Apewer.Source
  6. {
  7. /// <summary>数据库客户端。</summary>
  8. public interface IDbAdo : IDisposable
  9. {
  10. #region Connection
  11. /// <summary>获取连接。</summary>
  12. IDbConnection Connection { get; }
  13. /// <summary>数据库当前在线,表示连接可用。</summary>
  14. bool Online { get; }
  15. /// <summary>连接数据库,若未连接则尝试连接,返回错误信息。</summary>
  16. string Connect();
  17. #endregion
  18. #region ADO
  19. /// <summary>查询。</summary>
  20. IQuery Query(string statement);
  21. /// <summary>查询。</summary>
  22. IQuery Query(string statement, IEnumerable<IDataParameter> parameters);
  23. /// <summary>执行。</summary>
  24. IExecute Execute(string statement);
  25. /// <summary>执行。</summary>
  26. IExecute Execute(string statement, IEnumerable<IDataParameter> parameters);
  27. // /// <summary>获取当前的事务对象。</summary>
  28. // IDbTransaction Transaction { get; }
  29. #endregion
  30. #region Transaction
  31. /// <summary>
  32. /// <para>启动事务,可指定事务锁定行为。</para>
  33. /// <para>Chaos<br />无法覆盖隔离级别更高的事务中的挂起的更改。</para>
  34. /// <para>ReadCommitted<br />在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。</para>
  35. /// <para>ReadUncommitted<br />可以进行脏读,意思是说,不发布共享锁,也不接受独占锁。</para>
  36. /// <para>RepeatableRead<br />在查询中使用的所有数据上放置锁,以防止其他用户更新这些数据。 防止不可重复的读取,但是仍可以有幻像行。</para>
  37. /// <para>Serializable<br />在 System.Data.DataSet 上放置范围锁,以防止在事务完成之前由其他用户更新行或向数据集中插入行。</para>
  38. /// <para>Snapshot<br />通过在一个应用程序正在修改数据时存储另一个应用程序可以读取的相同数据版本来减少阻止。 表示您无法从一个事务中看到在其他事务中进行的更改,即便重新查询也是如此。</para>
  39. /// <para>Unspecified = -1<br />正在使用与指定隔离级别不同的隔离级别,但是无法确定该级别。</para>
  40. /// </summary>
  41. /// <param name="commit">在连接的生命周期结束时未结束事务,指定 TRUE 将自动提交,指定 FALSE 将自动回滚。</param>
  42. /// <param name="isolation">指定事务锁定行为,不指定时将使用默认值。</param>
  43. string Begin(bool commit = false, Class<IsolationLevel> isolation = null);
  44. /// <summary>提交事务。</summary>
  45. /// <remarks>异常常见于事务已经提交或连接已断开。</remarks>
  46. /// <returns>提交失败时返回错误信息,成功时返回 NULL 值。</returns>
  47. string Commit();
  48. /// <summary>从挂起状态回滚事务。</summary>
  49. /// <remarks>异常常见于事务已经提交、已回滚或连接已断开。</remarks>
  50. /// <returns>提交失败时返回错误信息,成功时返回 NULL 值。</returns>
  51. string Rollback();
  52. #endregion
  53. }
  54. }