void IDBTraits.RemoveColumn(Func <DbCommand> commandCreator, ColumnReference column) { using (DbCommand command = commandCreator()) { command.CommandText = _SQLQueryManager.RemoveColumn(column); ExecuteNonQuery(command); } }
/// <summary> /// SQL-92, page 289 /// </summary> private string _DropColumnDefinition(ColumnReference column) { return(string.Format( "drop column {0} {1}", nameEscaper(column.columnName), //column name "" //drop behavior )); }
ColumnOptions IDBTraits.GetColumnOptions(Func <DbCommand> commandCreator, ColumnReference column) { using (DbCommand command = commandCreator()) { command.CommandText = "select * from user_tab_columns where table_name = :ptable and column_name = :pcolumn"; AddParam(command, "ptable", DbType.String, column.tableName); AddParam(command, "pcolumn", DbType.String, column.columnName); using (DbDataReader reader = command.ExecuteReader()) { if (!reader.Read()) { throw new ApplicationException("Column not found"); } string dataType = (string)reader.GetValue("DATA_TYPE"); decimal?dataLength = CastScalarResult <decimal>(reader.GetValue("DATA_LENGTH")); decimal?dataPrecision = CastScalarResult <decimal>(reader.GetValue("DATA_PRECISION")); decimal?dataScale = CastScalarResult <decimal>(reader.GetValue("DATA_SCALE")); string sizeSpecifier = null; if (dataPrecision.HasValue) { if (dataScale.HasValue) { sizeSpecifier = string.Format("{0}, {1}", dataPrecision, dataScale); } else { sizeSpecifier = dataPrecision.ToString(); } } else if (dataLength.HasValue) { sizeSpecifier = dataLength.ToString(); } else { throw new ApplicationException("Field without a length"); } string defaultValue = CastResult <string>(reader.GetValue(reader.GetOrdinal("DATA_DEFAULT"))); return(new ColumnOptions( string.Format("{0}({1})", dataType, sizeSpecifier), defaultValue != null ? defaultValue.Trim() : null, !ParseBoolString((string)reader.GetValue(reader.GetOrdinal("NULLABLE"))) )); } } }
ColumnOptions IDBTraits.GetColumnOptions(Func <DbCommand> commandCreator, ColumnReference column) { using (DbCommand command = commandCreator()) { command.CommandText = "SELECT a.attnum, a.attname AS field, t.typname AS type, a.attlen AS length, a.atttypmod AS lengthvar, a.attnotnull AS notnull, d.adsrc AS defaultvalue FROM pg_attribute a JOIN pg_class c ON a.attrelid = c.oid JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_attrdef d ON c.oid = d.adrelid AND a.attnum = d.adnum WHERE a.attnum > 0 AND c.relname = :ptable and a.attname = :pcolumn"; AddParam(command, "ptable", DbType.String, column.tableName); AddParam(command, "pcolumn", DbType.String, column.columnName); using (DbDataReader reader = ExecuteReader(command)) { if (!reader.Read()) { throw new ApplicationException("Column not found"); } return(new ColumnOptions( ParseTypeString(reader.GetString(reader.GetOrdinal("type"))), reader.GetString(reader.GetOrdinal("defaultvalue")), reader.GetBoolean(reader.GetOrdinal("notnull")) )); } } }
public string RemoveColumn(ColumnReference column) { return(_AlterTableStatement(column.tableName, _DropColumnDefinition(column))); }
public ColumnDescription(ColumnReference column, ColumnOptions options) { this.column = column; this.options = options; }
public void RemoveColumn(ColumnReference column) { this.traits.RemoveColumn(this.CreateTextCommand, column); }
public ColumnOptions GetColumnOptions(ColumnReference column) { return(this.traits.GetColumnOptions(this.CreateTextCommand, column)); }