private void CompileColumn(IQueryPart part, TextWriter writer) { var collection = part as IValueCollectionQueryPart; if (collection == null) { writer.Write(part.Compile()); return; } var column = collection.GetValue(KeyValuePart.MemberName); var type = collection.GetValue(KeyValuePart.MemberType); var nullable = collection.GetValue(KeyValuePart.Nullable); writer.Write("{0} {1}{2}", column, type, string.IsNullOrEmpty(nullable) || nullable.ToLower() == "true" ? "" : " NOT NULL"); }
private void CompileForeignKey(IQueryPart part, TextWriter writer) { var collection = part as IValueCollectionQueryPart; if (collection == null) { writer.Write(part.Compile()); return; } var column = collection.GetValue(KeyValuePart.MemberName); var reference = collection.GetValue(KeyValuePart.ReferenceTable); var referenceMember = collection.GetValue(KeyValuePart.ReferenceMember); //var nullable = collection.GetValue(KeyValuePart.Nullable); writer.Write("FOREIGN KEY({0}) REFERENCES {1}({2})", column, reference, referenceMember); }
private void CompilePrimaryColumn(IQueryPart part, TextWriter writer) { var collection = part as IValueCollectionQueryPart; if (collection == null) { writer.Write(part.Compile()); return; } var column = collection.GetValue(KeyValuePart.MemberName); var type = collection.GetValue(KeyValuePart.MemberType); var nullable = collection.GetValue(KeyValuePart.Nullable); var autoIncremtent = collection.GetValue(KeyValuePart.AutoIncrement); writer.Write("{0} {1} PRIMARY KEY{2}{3}", column, type, string.IsNullOrEmpty(nullable) || nullable.ToLower() == "true" ? "" : " NOT NULL", !string.IsNullOrEmpty(autoIncremtent) && autoIncremtent.ToLower() == "true" ? " AUTOINCREMENT" : ""); }
private void RenameTable(IQueryPart part, TextWriter writer) { var collection = part as IValueCollectionQueryPart; if (collection == null) { writer.Write(part.Compile()); return; } var original = collection.GetValue(KeyValuePart.Key); var value = collection.GetValue(KeyValuePart.Value); writer.Write("ALTER TABLE {0} RENAME TO {1}", original, value); }
private void CompileParameter(IQueryPart part, TextWriter writer, IQueryPart parent) { writer.Write(part.Compile()); if (parent != null && parent.Parts.Last() != part) { writer.Write(", "); } }
private void CreateTable(IQueryPart part, TextWriter writer) { writer.Write("CREATE TABLE IF NOT EXISTS {0} (", part.Compile()); }
private void CompileCreateDatabase(IQueryPart part, TextWriter writer) { var database = part.Compile(); writer.WriteLine("DECLARE @device_directory NVARCHAR(520)"); writer.WriteLine("SELECT @device_directory = SUBSTRING(filename, 1, CHARINDEX(N'master.mdf', LOWER(filename)) - 1)"); writer.WriteLine("FROM master.dbo.sysaltfiles WHERE dbid = 1 AND fileid = 1"); //sb.AppendLine(string.Format("EXECUTE (N'CREATE DATABASE {0} ON PRIMARY (NAME = N''Northwind'', FILENAME = N''' + @device_directory + N'{0}.mdf'') LOG ON (NAME = N''Northwind_log'', FILENAME = N''' + @device_directory + N'{0}.ldf'')')", database)); writer.WriteLine("EXECUTE (N'CREATE DATABASE {0}", database); writer.WriteLine("ON PRIMARY (NAME = N''{0}'', FILENAME = N''' + @device_directory + N'{0}.mdf'')", database); writer.WriteLine("LOG ON (NAME = N''{0}_log'', FILENAME = N''' + @device_directory + N'{0}_log.ldf'')')", database); //writer.WriteLine("EXECUTE (N'CREATE DATABASE {0} ON PRIMARY (NAME = N''{0}'', FILENAME = N''' + @device_directory + N'{0}.mdf'') LOG ON (NAME = N''{0}_log'', FILENAME = N''' + @device_directory + N'{0}.ldf'')')", database); //var path = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Data"); //writer.WriteLine(string.Format("EXECUTE (N'CREATE DATABASE {0}", database)); //writer.WriteLine(string.Format("ON PRIMARY (NAME = N''{0}'', FILENAME = ''{1}'')", database, Path.Combine(path, database + ".mdf"))); //writer.WriteLine(string.Format("LOG ON (NAME = N''{0}_log'', FILENAME = ''{1}'')')", database, Path.Combine(path, database + "_log.ldf"))); }
private void CompileOutputParameterSelect(IQueryPart part, TextWriter writer, IQueryPart parent) { if (parent != null && parent.Parts.FirstOrDefault(p => p.OperationType == OperationType.OutParameterSelect) == part) { WriteBlank(writer); } writer.Write("@{0} AS {0}", part.Compile()); if (parent != null && parent.Parts.Last() != part) { writer.Write(", "); } }
private void CompileMemberEqualsValuePart(IQueryPart part, TextWriter writer, IQueryPart parent) { var collection = part as IValueCollectionQueryPart; if (collection == null) { writer.Write(part.Compile()); return; } var key = collection.GetValue(KeyValuePart.MemberName); var value = collection.GetValue(KeyValuePart.Value); writer.Write("{0} = {1}", key, value); AppendComma(part, writer, parent); }
protected void CompileFormat(string format, IQueryPart part, TextWriter writer) { writer.Write(format, part.Compile()); }
private void CompileJoin(IQueryPart part, TextWriter writer) { var entityMap = part as IEntityPart; if (entityMap == null) { writer.Write("JOIN {0}", part.Compile()); return; } writer.Write("JOIN {0}{1}", entityMap.Entity, string.IsNullOrEmpty(entityMap.EntityAlias) ? string.Empty : string.Format(" {0}", entityMap.EntityAlias)); }
private void CompileFieldFunction(string function, IQueryPart part, TextWriter writer, IQueryPart parent) { var field = part as IFieldPart; if (field == null) { // try to compile the expression writer.Write(part.Compile()); return; } //TODO: EntityAlias is allways null, It has to be able to be set when creating a Count expression writer.Write("{0}({1}) AS {2}", function, field.Field, field.FieldAlias ?? field.Field); if (parent.Parts.Last() != part) { writer.Write(","); } }
private void CompileField(IQueryPart part, TextWriter writer, IQueryPart parent) { var field = part as IFieldPart; if (field == null) { // try to compile the expression writer.Write(part.Compile()); return; } if (!string.IsNullOrEmpty(field.EntityAlias) || !string.IsNullOrEmpty(field.Entity)) { writer.Write(" {0}.", field.EntityAlias ?? field.Entity); } else { writer.Write(" "); } writer.Write(field.Field); if (!string.IsNullOrEmpty(field.FieldAlias)) { writer.Write(" AS {0}", field.FieldAlias); } if (parent != null && parent.Parts.Last() != part) { writer.Write(","); } }
private void CompileCommand(string command, IQueryPart part, TextWriter writer) { writer.Write("{0} {1}", command, part.Compile()); }
protected void CompileValue(IQueryPart part, TextWriter writer) { writer.Write(part.Compile()); }