protected override void FillViewColumns(DBSchemaViewColumnCollection aview, DataTable dtColumns) { DataColumn TableNameColumn = GetColumn(dtColumns, "TABLE_NAME", true); DataColumn TableSchemaColumn = GetColumn(dtColumns, "OWNER", false); DataColumn TableCatalogColumn = GetColumn(dtColumns, "TABLE_CATALOG", false); DataColumn ColumnNameColumn = GetColumn(dtColumns, "COLUMN_NAME", true); DataColumn OrdinalPositionColumn = GetColumn(dtColumns, "ID", true); DataColumn DefaultValueColumn = GetColumn(dtColumns, "COLUMN_DEFAULT", false); DataColumn IsNullableColumn = GetColumn(dtColumns, "NULLABLE", true); DataColumn DataTypeColumn = GetColumn(dtColumns, "DATATYPE", true); DataColumn MaxCharacterLengthColumn = GetColumn(dtColumns, "LENGTH", false); DataColumn AutoNumberColumn = GetColumn(dtColumns, "AUTOINCREMENT", false); DataColumn PrimaryKeyColumn = GetColumn(dtColumns, "PRIMARY_KEY", false); DataColumn CharacterSetColumn = GetColumn(dtColumns, "CHARACTER_SET_NAME", false); foreach (DataRow row in dtColumns.Rows) { DBSchemaViewColumn col = new DBSchemaViewColumn(); col.Name = GetColumnStringValue(row, ColumnNameColumn); col.OrdinalPosition = GetColumnIntValue(row, OrdinalPositionColumn); col.DefaultValue = GetColumnStringValue(row, DefaultValueColumn); col.Nullable = GetColumnBoolValue(row, IsNullableColumn); col.NativeType = GetColumnStringValue(row, DataTypeColumn); col.DbType = GetDbTypeForNativeType(col.NativeType, GetColumnStringValue(row, CharacterSetColumn)); col.Type = GetSystemTypeForNativeType(GetColumnStringValue(row, DataTypeColumn)); col.Size = GetColumnIntValue(row, MaxCharacterLengthColumn); col.HasDefault = !string.IsNullOrEmpty(col.DefaultValue); aview.Add(col); } }
protected override void FillViewColumns(DBSchemaViewColumnCollection aview, DataTable dtColumns) { DataColumn autoinc = GetColumn(dtColumns, "IsAutoIncrement", true); DataColumn colname = GetColumn(dtColumns, "ColumnName", true); DataColumn ispk = GetColumn(dtColumns, "IsKey", true); DataColumn isRO = GetColumn(dtColumns, "IsReadOnly", true); DataColumn type = GetColumn(dtColumns, "DataType", true); DataColumn allownull = GetColumn(dtColumns, "AllowDBNull", true); DataColumn pos = GetColumn(dtColumns, "ColumnOrdinal", true); DataColumn size = GetColumn(dtColumns, "ColumnSize", true); DataColumn dataType = GetColumn(dtColumns, "DataTypeName", true); DataColumn CharacterSetColumn = GetColumn(dtColumns, "CHARACTER_SET_NAME", false); foreach (DataRow coldef in dtColumns.Rows) { DBSchemaViewColumn tcol = new DBSchemaViewColumn(); tcol.Name = GetColumnStringValue(coldef, colname); tcol.HasDefault = false; tcol.Nullable = GetColumnBoolValue(coldef, allownull); tcol.OrdinalPosition = GetColumnIntValue(coldef, pos); tcol.ReadOnly = GetColumnBoolValue(coldef, isRO); tcol.Size = GetColumnIntValue(coldef, size); tcol.Type = Type.GetType(GetColumnStringValue(coldef, type)); tcol.DbType = this.GetDbTypeForNativeType(GetColumnStringValue(coldef, dataType), GetColumnStringValue(coldef, CharacterSetColumn)); aview.Add(tcol); } }
protected override void FillSprocResults(DBSchemaSproc asproc, DataTable dtSprocResults) { DataColumn ColumnNameColumn = GetColumn(dtSprocResults, "COLUMNNAME", true); DataColumn OrdinalPositionColumn = GetColumn(dtSprocResults, "COLUMNORDINAL", true); DataColumn DefaultValueColumn = GetColumn(dtSprocResults, "COLUMNDEFAULT", false); DataColumn IsNullableColumn = GetColumn(dtSprocResults, "ALLOWDBNULL", true); DataColumn DataTypeColumn = GetColumn(dtSprocResults, "DATATYPE", true); DataColumn MaxCharacterLengthColumn = GetColumn(dtSprocResults, "COLUMNSIZE", false); DataColumn IsReadOnly = GetColumn(dtSprocResults, "ISREADONLY", false); foreach (DataRow row in dtSprocResults.Rows) { DBSchemaViewColumn col = new DBSchemaViewColumn(); col.Name = GetColumnStringValue(row, ColumnNameColumn); col.OrdinalPosition = GetColumnIntValue(row, OrdinalPositionColumn); col.DefaultValue = GetColumnStringValue(row, DefaultValueColumn); col.Nullable = GetColumnBoolValue(row, IsNullableColumn); string type = GetColumnStringValue(row, DataTypeColumn); if (!string.IsNullOrEmpty(type)) { Type t = Type.GetType(type); col.DbType = DBHelper.GetDBTypeForRuntimeType(t); col.Type = t; } col.NativeType = type; col.Size = GetColumnIntValue(row, MaxCharacterLengthColumn); col.ReadOnly = GetColumnBoolValue(row, IsReadOnly); col.HasDefault = !string.IsNullOrEmpty(col.DefaultValue); asproc.Results.Add(col); } }
/// <summary> /// Fills the view info with the meta data Columns info /// </summary> /// <param name="aview"></param> /// <param name="dtColumns"></param> protected override void FillViewColumns(DBSchemaViewColumnCollection aview, DataTable dtColumns) { DataColumn ColumnNameColumn = GetColumn(dtColumns, "COLUMN_NAME", true); DataColumn OrdinalPositionColumn = GetColumn(dtColumns, "ORDINAL_POSITION", true); DataColumn DefaultValueColumn = GetColumn(dtColumns, "COLUMN_HASDEFAULT", false); DataColumn IsNullableColumn = GetColumn(dtColumns, "IS_NULLABLE", true); DataColumn DataTypeColumn = GetColumn(dtColumns, "DATA_TYPE", true); DataColumn MaxCharacterLengthColumn = GetColumn(dtColumns, "CHARACTER_MAXIMUM_LENGTH", false); DataColumn IsReadOnly = GetColumn(dtColumns, "ISREADONLY", false); foreach (DataRow row in dtColumns.Rows) { DBSchemaViewColumn col = new DBSchemaViewColumn(); col.Name = GetColumnStringValue(row, ColumnNameColumn); col.OrdinalPosition = GetColumnIntValue(row, OrdinalPositionColumn); col.DefaultValue = GetColumnStringValue(row, DefaultValueColumn); col.Nullable = GetColumnBoolValue(row, IsNullableColumn); int type = GetColumnIntValue(row, DataTypeColumn, -1); DBMSAccessTypeMapping map = null; if (type > 0 && this.Types.TryGetType(type, out map)) { col.NativeType = map.TypeName; col.DbType = GetDbTypeForNativeType(map.TypeName, string.Empty); if (null == map.RuntimeType) { col.Type = GetSystemTypeForNativeType(map.TypeName); } else { col.Type = map.RuntimeType; if (col.DbType == DbType.Object) { col.DbType = DBHelper.GetDBTypeForRuntimeType(col.Type); } } } col.Size = GetColumnIntValue(row, MaxCharacterLengthColumn); col.ReadOnly = GetColumnBoolValue(row, IsReadOnly); col.HasDefault = GetColumnBoolValue(row, DefaultValueColumn); aview.Add(col); } }
/// <summary> /// Fills the sproc results data from the meta data columns table /// </summary> /// <param name="asproc"></param> /// <param name="dtColumns"></param> protected override void FillSprocResults(DBSchemaSproc asproc, DataTable dtColumns) { if (null == dtColumns) { return; } DataColumn ColumnNameColumn = GetColumn(dtColumns, "ColumnName", true); DataColumn OrdinalPositionColumn = GetColumn(dtColumns, "ColumnOrdinal", true); DataColumn DefaultValueColumn = GetColumn(dtColumns, "COLUMN_DEFAULT", false); DataColumn IsNullableColumn = GetColumn(dtColumns, "AllowDBNull", true); DataColumn DataTypeColumn = GetColumn(dtColumns, "DataType", true); DataColumn SizeColumn = GetColumn(dtColumns, "ColumnSize", true); DataColumn AutoIncrementColumn = GetColumn(dtColumns, "IsAutoIncrement", false); DataColumn IsReadOnly = GetColumn(dtColumns, "IsReadOnly", false); foreach (DataRow row in dtColumns.Rows) { DBSchemaViewColumn col = new DBSchemaViewColumn(); col.Name = GetColumnStringValue(row, ColumnNameColumn); col.OrdinalPosition = GetColumnIntValue(row, OrdinalPositionColumn); col.DefaultValue = GetColumnStringValue(row, DefaultValueColumn); col.Nullable = GetColumnBoolValue(row, IsNullableColumn); string type = GetColumnStringValue(row, DataTypeColumn); if (!string.IsNullOrEmpty(type)) { col.Type = Type.GetType(type); col.DbType = DBHelper.GetDBTypeForRuntimeType(col.Type); } col.Size = GetColumnIntValue(row, SizeColumn); col.ReadOnly = GetColumnBoolValue(row, IsReadOnly) || GetColumnBoolValue(row, AutoIncrementColumn); col.HasDefault = !string.IsNullOrEmpty(col.DefaultValue); asproc.Results.Add(col); } }