anchor.diff:  open FsSqlPrelude
   
   /// Encapsulates how to create and dispose a database connection
  -type ConnectionManager = (unit -> IDbConnection) * (IDbConnection -> unit)
  +type ConnectionManager = (unit -> IDbConnection) * (IDbConnection -> unit) * (IDbTransaction option)
   
   /// Creates a <see cref="ConnectionManager"/> with an externally-owned connection
   let withConnection (conn: IDbConnection) : ConnectionManager =
  
positive.code: /// Executes and returns the number of rows affected
  let internal execNonQueryInternal cmdType (cmgr: ConnectionManager) (sql: string) (parameters: #seq<Parameter>) =
      let execNonQuery' connection = 
          use cmd = prepareCommand connection sql cmdType parameters
          cmd.ExecuteNonQuery()
      doWithConnection cmgr execNonQuery'
  
  
negative.code: 
  /// Executes and returns a data reader
  let internal execReaderInternal cmdType (cmgr: ConnectionManager) (sql: string) (parameters: #seq<Parameter>) =
      let create,dispose,tx = cmgr
      let connection = create()
      use cmd = prepareCommand connection tx sql cmdType parameters
      let dispose() = dispose connection
      new DataReaderWrapper(cmd.ExecuteReader(), dispose) :> IDataReader
  
  