/// <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);
/// <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);
// // abstract methods // /// <summary> /// Abstract method that inheritors must override to return a new instance of /// the provider specific database properties /// </summary> /// <param name="forDatabase">The database (and contained connection) that the properties must represent</param> /// <returns>A new instance of the DBDatabaseProperties</returns> protected abstract DBDatabaseProperties GetPropertiesFromDb(DBDatabase forDatabase);