예제 #1
0
        public void CreateTable()
        {
            if (myDB.ExistsTable(Name))
            {
                return;
            }

            ValidationResult result = Schema.Validate();

            if (result != ValidationResult.None)
            {
                throw new ArgumentException("invalid table description: " + result);
            }

            StringBuilder sb = new StringBuilder();

            sb.Append("CREATE TABLE ");
            sb.Append(Schema.Name);
            sb.Append(" ( ");

            var last = Schema.Columns.Last();

            foreach (var column in Schema.Columns)
            {
                sb.Append(column.ColumnName);
                sb.Append("  ");
                sb.Append(myDB.GetDBType(column.DataType));

                if (column.ColumnName == Schema.IdColumn)
                {
                    sb.Append(" PRIMARY KEY AUTOINCREMENT");
                }
                else
                {
                    sb.Append((column.AllowDBNull ? " NULL" : " NOT NULL"));
                }

                if (column != last)
                {
                    sb.Append(",");
                }
            }
            sb.Append(");");

            myDB.Execute(sb.ToString());
        }
예제 #2
0
        public void CreateTable()
        {
            if (Table != null)
            {
                return;
            }

            ValidationResult result = Schema.Validate();

            if (result != ValidationResult.None)
            {
                throw new ArgumentException("invalid table description: " + result);
            }

            Table = Schema.NewTempTable();

            myDB.Tables.Add(Table);
        }