public Dasm(MessageAdapter messages, bool verboseMode) { this.messages = messages; this.verboseMode = verboseMode; CheckILDasmPath(); }
public SchemaGenerator(Class c, NDOMapping mappings, DataSet dsSchema, MessageAdapter messages, Hashtable allSortedFields, ClassHashtable allPersistentClasses, bool verboseMode) { this.mappings = mappings; this.messages = messages; this.dsSchema = dsSchema; this.allSortedFields = allSortedFields; this.c = c; this.allPersistentClasses = allPersistentClasses; this.verboseMode = verboseMode; }
public void Generate(DataSet dsSchema, DataSet dsBak, string filename, NDOMapping mappings, MessageAdapter messages) { this.mappings = mappings; this.messages = messages; string diffFileName = filename.Replace(".ndo.sql", ".ndodiff." + mappings.SchemaVersion + ".xml"); bool isNewDiffFile = !File.Exists(diffFileName); XElement rootElement = null; string newSchema = null; if (isNewDiffFile) { rootElement = new XElement("NdoSchemaTransitions"); rootElement.Add(new XComment("NDO accumulates all schema changes in this diff file. Note: If you change the mapping schema version, a new diff file will be created. You can change the mapping schema version in the NDO configuration dialog. Don't use the Mapping Tool to change the schema information, because it will be overwritten by the value set in the configuration. For automatic builds set the schema version value in the .ndoproj file.")); newSchema = mappings.SchemaVersion + ".1"; rootElement.Add(new XAttribute("schemaVersion", newSchema)); } else { rootElement = XElement.Load(diffFileName); string schemaVersion = rootElement.Attribute("schemaVersion").Value; int p = schemaVersion.LastIndexOf('.'); int v = 1; int.TryParse(schemaVersion.Substring(p + 1), out v); if (p > -1) { newSchema = mappings.SchemaVersion + "." + (v + 1); } else { newSchema = mappings.SchemaVersion + ".1"; } rootElement.Attribute("schemaVersion").Value = newSchema; } XElement transElement = new XElement("NdoSchemaTransition", new XAttribute("schemaVersion", newSchema)); rootElement.Add(transElement); if (GenerateInternal(dsSchema, dsBak, transElement)) { rootElement.Save(diffFileName); } }
public GenericSqlGenerator(ISqlGenerator concreteGenerator, MessageAdapter messages, NDO.Mapping.NDOMapping mappings) : base(concreteGenerator, messages, mappings) { }
public void Generate(string scriptLanguage, bool utf8Encoding, DataSet dsSchema, DataSet dsBak, string filename, NDOMapping mappings, MessageAdapter messages) { string diffFile = filename.Replace(".ndo.sql", ".ndodiff." + mappings.SchemaVersion + ".sqltemp"); bool isNewDiffFile = !File.Exists(diffFile.Replace(".sqltemp", ".sql")); StreamWriter sw = new StreamWriter(diffFile, true, utf8Encoding ? System.Text.Encoding.UTF8 : System.Text.Encoding.Default); long initialLength = 0; if (isNewDiffFile) { sw.WriteLine(@"-- NDO accumulates all schema changes in this diff file. -- Note: If you change the mapping schema version, a new diff file will be created. -- You can change the mapping schema version in the NDO configuration dialog. -- Don't use the Mapping Tool to change the schema information, because it will be -- overwritten by the value set in the configuration. For automatic builds set -- the schema version value in the .ndoproj file. "); sw.Flush(); initialLength = sw.BaseStream.Length; } ISqlGenerator concreteGenerator = null; if (scriptLanguage == string.Empty) { messages.WriteLine("NDOEnhancer: No script language selected"); return; } if (!NDOProviderFactory.Instance.Generators.ContainsKey(scriptLanguage)) { // The error message should have been written by the Sql generator messages.WriteLine("NDOEnhancer: No Sql code generator for script language '" + scriptLanguage + "' found"); return; } concreteGenerator = (ISqlGenerator)NDOProviderFactory.Instance.Generators[scriptLanguage]; new GenericDiffGenerator(concreteGenerator, messages, mappings).Generate(dsSchema, dsBak, sw); sw.Close(); bool delete = false; if (isNewDiffFile) { FileStream fs = new FileStream(diffFile, FileMode.Open, FileAccess.Read); delete = fs.Length < initialLength + 2L; fs.Close(); } if (delete) { File.Delete(diffFile); } else { File.Copy(diffFile, diffFile.Replace(".sqltemp", ".sql"), true); } }
public void Generate(string scriptLanguage, bool utf8Encoding, DataSet dsSchema, DataSet dsOld, string filename, NDOMapping mappings, MessageAdapter messages, TypeManager typeManager, bool generateConstraints) { StreamWriter sw = new StreamWriter(filename, false, utf8Encoding ? System.Text.Encoding.UTF8 : System.Text.Encoding.Default); ISqlGenerator concreteGenerator = null; if (scriptLanguage == string.Empty) { messages.WriteLine("NDOEnhancer: No script language selected"); return; } concreteGenerator = (ISqlGenerator)NDOProviderFactory.Instance.Generators[scriptLanguage]; if (concreteGenerator == null) { messages.WriteLine("NDOEnhancer: No Sql code generator for script language '" + scriptLanguage + "' found"); return; } new GenericSqlGenerator(concreteGenerator, messages, mappings).Generate(dsSchema, dsOld, sw, typeManager, generateConstraints); sw.Close(); }
public GenericSqlGeneratorBase(ISqlGenerator concreteGenerator, MessageAdapter messages, NDOMapping mappings) { this.concreteGenerator = concreteGenerator; this.messages = messages; this.mappings = mappings; }
public void Generate(string scriptLanguage, DataSet dsSchema, string filename, NDOMapping mappings, MessageAdapter messages) { StreamWriter sr = new StreamWriter(filename, false, System.Text.Encoding.Default); ISqlGenerator concreteGenerator = null; if (scriptLanguage == string.Empty) { messages.WriteLine("NDOEnhancer: No script language selected"); return; } concreteGenerator = GeneratorFactory.Instance[scriptLanguage]; if (concreteGenerator == null) { messages.WriteLine("NDOEnhancer: No provider for script language '" + scriptLanguage + "' found"); return; } new GenericSqlGenerator(concreteGenerator, messages).Generate(dsSchema, sr, mappings); sr.Close(); }
public GenericSqlGenerator(ISqlGenerator concreteGenerator, MessageAdapter messages) { this.concreteGenerator = concreteGenerator; this.messages = messages; }
public GenericDiffGenerator(ISqlGenerator concreteGenerator, MessageAdapter messages, NDO.Mapping.NDOMapping mappings) : base(concreteGenerator, messages, mappings) { provider = NDOProviderFactory.Instance[concreteGenerator.ProviderName]; }
public SearchPersistentClasses(MessageAdapter messages) { this.messages = messages; }