Пример #1
0
        public override string ColumnDataType(NoDbColumn column)
        {
            if (column == null)
            {
                return("");
            }
            var output = column.DataType switch
            {
                NoDbDataType.BYTE => "tinyint",
                NoDbDataType.SHORT => "smallint",
                NoDbDataType.INT => "int",
                NoDbDataType.LONG => "bigint",
                NoDbDataType.BOOL => "bit",
                NoDbDataType.FLOAT => "float",
                NoDbDataType.DECIMAL => "decimal(" + column.Precision + "," + column.Scale + ")",
                NoDbDataType.DATE => "date",
                NoDbDataType.DATETIME => "datetime",
                NoDbDataType.TIMESPAN => "time",
                NoDbDataType.GUID => "uniqueidentifier",
                NoDbDataType.STRING => column.Length == 0 ? "nvarchar(MAX)" : "nvarchar(" + column.Length + ")",
                _ => throw new ArgumentOutOfRangeException(),
            };

            return(output);
        }
Пример #2
0
        public override string ColumnDataType(NoDbColumn column)
        {
            if (column == null)
            {
                return("");
            }
            var output = column.DataType switch
            {
                NoDbDataType.BYTE => "smallint",
                NoDbDataType.SHORT => "smallint",
                NoDbDataType.INT => "int",
                NoDbDataType.LONG => "bigint",
                NoDbDataType.BOOL => "boolean",
                NoDbDataType.FLOAT => "real",
                NoDbDataType.DECIMAL => "numeric(" + column.Precision + "," + column.Scale + ")",
                NoDbDataType.DATE => "date",
                NoDbDataType.DATETIME => "timestamp",
                NoDbDataType.TIMESPAN => "time",
                NoDbDataType.GUID => "uuid",
                NoDbDataType.STRING => column.Length == 0 ? "text" : "character varying(" + column.Length + ")",
                _ => throw new ArgumentOutOfRangeException(),
            };

            return(output);
        }
Пример #3
0
        public override string ColumnDataType(NoDbColumn column)
        {
            if (column == null)
            {
                return("");
            }
            var output = column.DataType switch
            {
                NoDbDataType.BYTE => "TINYINT",
                NoDbDataType.SHORT => "SMALLINT",
                NoDbDataType.INT => "MEDIUMINT",
                NoDbDataType.LONG => "BIGINT",
                NoDbDataType.BOOL => "BIT",
                NoDbDataType.FLOAT => "FLOAT",
                NoDbDataType.DECIMAL => "DECIMAL(" + column.Precision + "," + column.Scale + ")",
                NoDbDataType.DATE => "DATE",
                NoDbDataType.DATETIME => "DATETIME",
                NoDbDataType.TIMESPAN => "TIME",
                NoDbDataType.GUID => "uuid",
                NoDbDataType.STRING => column.Length == 0 ? "TEXT" : "TEXT(" + column.Length + ")",
                _ => throw new ArgumentOutOfRangeException(),
            };

            return(output);
        }
Пример #4
0
        public override string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn)
        {
            string        schema        = GetSchema(table);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("ALTER TABLE {3}.{0} RENAME COLUMN {1} TO {2};", Escape(table.Detail.GetTableDbName()), Escape(oldColumn.Name), Escape(newColumn.Name), schema);
            return(stringBuilder.ToString());
        }
Пример #5
0
        public override string DropColumnQuery(NoDbTable table, NoDbColumn column)
        {
            string        schema        = GetSchema(table);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("ALTER TABLE {2}.{0} DROP COLUMN {1};", Escape(table.Detail.GetTableDbName()), Escape(column.Name), schema);
            return(stringBuilder.ToString());
        }
Пример #6
0
        public override string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn)
        {
            string        schema        = GetSchema(table);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("EXEC sp_rename '{3}.{0}.{1}', '{2}', 'COLUMN';", table.Detail.GetTableDbName(), oldColumn.Name, newColumn.Name, schema);
            return(stringBuilder.ToString());
        }
Пример #7
0
        public override string UpdateColumnQuery(NoDbTable table, NoDbColumn column)
        {
            string        schema        = GetSchema(table);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("ALTER TABLE {0}.{1} " +
                                       "ALTER COLUMN {2} TYPE {3} --USING ({2}::integer) \n" +
                                       ",ALTER COLUMN {2} {4} NOT NULL;", schema, Escape(table.Detail.GetTableDbName()),
                                       Escape(column.Name), ColumnDataType(column), column.Required ? "SET" : "DROP");
            return(stringBuilder.ToString());
        }
Пример #8
0
        public override string AddColumnQuery(NoDbTable table, NoDbColumn column)
        {
            var           schema        = GetSchema(table);
            StringBuilder stringBuilder = new StringBuilder();

            if (column.Required)
            {
                stringBuilder.AppendFormat("ALTER TABLE {2}.{0} ADD {1};\n", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema);
                column.Required = false;
                stringBuilder.AppendFormat("--ALTER TABLE {2}.{0} ADD {1};\n", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema);
                stringBuilder.AppendFormat("--UPDATE {0}.{1} SET {2} = 0;\n", schema, Escape(table.Detail.GetTableDbName()), Escape(column.Name));
                column.Required = true;
                stringBuilder.AppendFormat("--" + UpdateColumnQuery(table, column).Replace("\n", "\n--"));
            }
            else
            {
                stringBuilder.AppendFormat("ALTER TABLE {2}.{0} ADD {1};", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema);
            }
            return(stringBuilder.ToString());
        }
Пример #9
0
        public override string ColumnQuery(NoDbColumn column)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("{0} {1} ", Escape(column.Name), ColumnDataType(column));
            if (column.IsAutoIncrement)
            {
                stringBuilder.AppendFormat("IDENTITY(1,1) ");
            }

            if (column.Required)
            {
                stringBuilder.AppendFormat("NOT NULL ");
            }
            else
            {
                stringBuilder.AppendFormat("NULL ");
            }
            return(stringBuilder.ToString());
        }
Пример #10
0
        public override string ColumnQuery(NoDbColumn column)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (column.IsAutoIncrement)
            {
                string dataType = "";
                if (column.DataType == NoDbDataType.LONG)
                {
                    dataType = "BIGSERIAL";
                }
                else if (column.DataType == NoDbDataType.INT)
                {
                    dataType = "SERIAL";
                }
                else
                {
                    dataType = "SMALLSERIAL";
                }

                stringBuilder.AppendFormat("{0} {1}", Escape(column.Name), dataType);
            }
            else
            {
                stringBuilder.AppendFormat("{0} {1} ", Escape(column.Name), ColumnDataType(column));
                if (column.Required)
                {
                    stringBuilder.AppendFormat("NOT NULL ");
                }
                else
                {
                    stringBuilder.AppendFormat("NULL ");
                }
            }
            return(stringBuilder.ToString());
        }
Пример #11
0
 public abstract string UpdateColumnQuery(NoDbTable table, NoDbColumn column);
Пример #12
0
 public abstract string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn);
Пример #13
0
 public abstract string DropColumnQuery(NoDbTable table, NoDbColumn column);
Пример #14
0
 public abstract string ColumnQuery(NoDbColumn column);
Пример #15
0
 public abstract string ColumnDataType(NoDbColumn column);
Пример #16
0
        public static string ColumnDataType(NoDbColumn column)
        {
            if (column == null)
            {
                return("");
            }
            if (!string.IsNullOrEmpty(column.EnumName))
            {
                return(column.EnumName + (column.Required ? "" : "?"));
            }
            string output;

            switch (column.DataType)
            {
            case NoDbDataType.BYTE:
                output = "byte";
                break;

            case NoDbDataType.SHORT:
                output = "short";
                break;

            case NoDbDataType.INT:
                output = "int";
                break;

            case NoDbDataType.LONG:
                output = "long";
                break;

            case NoDbDataType.BOOL:
                output = "bool";
                break;

            case NoDbDataType.FLOAT:
                output = "double";
                break;

            case NoDbDataType.DECIMAL:
                output = "decimal";
                break;

            case NoDbDataType.DATE:
                output = "DateTime";
                break;

            case NoDbDataType.DATETIME:
                output = "DateTime";
                break;

            case NoDbDataType.TIMESPAN:
                output = "TimeSpan";
                break;

            case NoDbDataType.GUID:
                output = "Guid";
                break;

            case NoDbDataType.STRING:
                output = "string";
                break;

            case NoDbDataType.OBJECT:
                output = "object";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (column.DataType != NoDbDataType.STRING && !column.Required)
            {
                output += "?";
            }

            if (column.IsList)
            {
                return(string.Format("List<{0}>", output));
            }

            return(output);
        }