/// <summary> /// Creates a new SchemaProvider for the specified database /// </summary> /// <param name="forDatabase"></param> /// <returns></returns> public DBSchemaProvider CreateSchemaProvider(DBDatabase forDatabase) { if (null == forDatabase) { throw new ArgumentNullException("forDatabase"); } if (string.IsNullOrEmpty(forDatabase.ConnectionString)) { throw new ArgumentNullException("forDatabase.ConnectionString"); } DBDatabaseProperties properties = this.CreateDatabaseProperties(forDatabase); return(this.CreateSchemaProvider(forDatabase, properties)); }
/// <summary> /// Creates a new StatementBuilder for the specified database /// using the textWriter as a backing store /// </summary> /// <param name="forDatabase"></param> /// <param name="textWriter"></param> /// <returns></returns> public DBStatementBuilder CreateStatementBuilder(DBDatabase forDatabase, System.IO.TextWriter textWriter) { if (null == forDatabase) { throw new ArgumentNullException("forDatabase"); } if (string.IsNullOrEmpty(forDatabase.ConnectionString)) { throw new ArgumentNullException("forDatabase.ConnectionString"); } if (null == textWriter) { throw new ArgumentNullException("textWriter"); } DBDatabaseProperties properties = this.CreateDatabaseProperties(forDatabase); return(this.CreateStatementBuilder(forDatabase, properties, textWriter, false)); }
/// <summary> /// Abstract method that inheritors must override to return a new instance of /// the provider specific database schema provider /// </summary> /// <param name="forDatabase">The database (and contained connection) that the builder must generate statements for</param> /// <param name="properties">The properties of the database.</param> /// <returns>A new schema provider</returns> protected abstract DBSchemaProvider CreateSchemaProvider(DBDatabase forDatabase, DBDatabaseProperties properties);
/// <summary> /// Abstract method that inheritors must override to return a new instance of /// the provider specific database statement builder /// </summary> /// <param name="forDatabase">The database (and contained connection) that the builder must generate statements for</param> /// <param name="withProperties">The properties of the database.</param> /// <param name="writer">The TextWriter the statement builder uses to output the SQL statemtent to.</param> /// <param name="ownsWriter">true if the new instance owns the text writer and should dispose of it when the builder is disposed</param> /// <returns>A new DBStatementBuilder subclass</returns> protected abstract DBStatementBuilder CreateStatementBuilder(DBDatabase forDatabase, DBDatabaseProperties withProperties, System.IO.TextWriter writer, bool ownsWriter);