public void Run(PluginInterface.DataTable data) { StreamWriter sqlWriter = new StreamWriter(Path.GetFileNameWithoutExtension(data.TableName) + ".sql"); WriteSqlStructure(sqlWriter, data); foreach (DataRow row in data.Rows) { StringBuilder result = new StringBuilder(); result.AppendFormat("INSERT INTO `dbc_{0}` VALUES (", Path.GetFileNameWithoutExtension(data.TableName)); int flds = 0; for (var i = 0; i < data.Columns.Count; ++i) { switch (data.Columns[i].DataType.Name) { case "Int64": result.Append(row[i]); break; case "UInt64": result.Append(row[i]); break; case "Int32": result.Append(row[i]); break; case "UInt32": result.Append(row[i]); break; case "Int16": result.Append(row[i]); break; case "UInt16": result.Append(row[i]); break; case "SByte": result.Append(row[i]); break; case "Byte": result.Append(row[i]); break; case "Single": result.Append(((float)row[i]).ToString(CultureInfo.InvariantCulture)); break; case "Double": result.Append(((double)row[i]).ToString(CultureInfo.InvariantCulture)); break; case "String": result.Append("\"" + StripBadCharacters((string)row[i]) + "\""); break; default: throw new Exception(String.Format("Unknown field type {0}!", data.Columns[i].DataType.Name)); } if (flds != data.Columns.Count - 1) { result.Append(", "); } flds++; } result.Append(");"); sqlWriter.WriteLine(result); } sqlWriter.Flush(); sqlWriter.Close(); Console.WriteLine("Finished:" + data.Rows.Count); // Finished(data.Rows.Count); }
public void Run(PluginInterface.DataTable data) { int count = 0; StreamWriter sqlWriter = new StreamWriter(Path.GetFileNameWithoutExtension(data.TableName) + ".txt"); //var lines = File.ReadAllLines("WorldMapOverlay.txt"); sqlWriter.WriteLine("local treasures = {"); var c = System.Globalization.CultureInfo.InvariantCulture; System.Threading.Thread.CurrentThread.CurrentCulture = c; // Sets the UI culture to French (France) System.Threading.Thread.CurrentThread.CurrentUICulture = c; foreach (DataRow row in data.Rows) { if ((int)row[4] == 1116 && (int)row[6] == 197) { sqlWriter.WriteLine(" [{0}] = {{ {1}, {2}, \"{3}\" }},", row[0], row[7].ToString(), row[8].ToString(), row[9]); } //Interface\WorldMap\%s\%s%d.blp WorldMapArea[3], WorldMapArea[3], 1-12 //Interface\WorldMap\%s\%s%d_%d.blp WorldMapArea[3], WorldMapArea[3], floor, 1-12 //for (int j = 1; j <= 12; ++j) //{ // sqlWriter.WriteLine("Interface\\WorldMap\\{0}\\{0}{1}.blp", row[3], j); //} //for (int i = 0; i < 30; ++i) //{ // for (int j = 1; j <= 12; ++j) // { // sqlWriter.WriteLine("Interface\\WorldMap\\{0}\\{0}{1}_{2}.blp", row[3], i, j); // } //} //for (int j = 1; j <= 12; ++j) //{ // sqlWriter.WriteLine("Interface\\WorldMap\\{0}\\{0}{1}.blp", row[10], j); //} //for (int i = 0; i < 30; ++i) //{ // for (int j = 1; j <= 12; ++j) // { // sqlWriter.WriteLine("Interface\\WorldMap\\{0}\\{0}{1}_{2}.blp", row[10], i, j); // } //} //foreach(var line in lines) //{ // if (line.Contains("{" + row[0] + "}")) // sqlWriter.WriteLine(line.Replace("{" + row[0] + "}", (string)row[3])); //} //for(int i = 0; i < 20; ++i) // sqlWriter.WriteLine("Interface\\WorldMap\\{{{0}}}\\{1}{2}.blp", row[1], row[6], i); //string folder = (string)row[1]; //sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}.adt", folder, i, j); //for (int i = 0; i < 64; ++i) //{ // for (int j = 0; j < 64; ++j) // { // var a = "World\\minimaps\\{0}\\map{1}_{2}.blp"; // var b = "World\\minimaps\\{0}\\noliquid_map{1}_{2}.blp"; // sqlWriter.WriteLine(a, folder, i, j); // sqlWriter.WriteLine(b, folder, i, j); // } //} //sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}.tex", folder); //sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}.wdl", folder); //sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}.wdt", folder); //for (int i = 0; i < 64; ++i) //{ // for (int j = 0; j < 64; ++j) // { // sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}.adt", folder, i, j); // sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}_obj0.adt", folder, i, j); // sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}_obj1.adt", folder, i, j); // sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}_tex0.adt", folder, i, j); // sqlWriter.WriteLine("WORLD\\Maps\\{0}\\{0}_{1}_{2}_tex1.adt", folder, i, j); // } //} // FileData.dbc //sqlWriter.WriteLine((string)row[2] + (string)row[1]); // ManifestInterfaceData.dbc //sqlWriter.WriteLine((string)row[1] + (string)row[2]); //sqlWriter.WriteLine((string)row[1] + ".blp"); //if ((string)row[4] != String.Empty) // sqlWriter.WriteLine((string)row[4]); //if ((string)row[5] != String.Empty) // sqlWriter.WriteLine((string)row[5]); //if ((string)row[6] != String.Empty) // sqlWriter.WriteLine((string)row[6]); //uint flags = (uint)row[2]; //uint reaction = ~(flags >> 12) & 2 | 1; // flags & 0x2000 ? 1 : 3 //if (reaction != 0) //{ // Debug.Print("template {0}, reaction {1}", row[0], reaction); // count++; //} } sqlWriter.WriteLine("}"); sqlWriter.Flush(); sqlWriter.Close(); Finished(count); }
private void WriteSqlStructure(StreamWriter sqlWriter, PluginInterface.DataTable data) { sqlWriter.WriteLine("DROP TABLE IF EXISTS `dbc_{0}`;", Path.GetFileNameWithoutExtension(data.TableName)); sqlWriter.WriteLine("CREATE TABLE `dbc_{0}` (", Path.GetFileNameWithoutExtension(data.TableName)); Console.WriteLine("columnsCount:" + data.Columns.Count); for (var i = 0; i < data.Columns.Count; ++i) { sqlWriter.Write("\t" + String.Format("`{0}`", data.Columns[i].ColumnName)); switch (data.Columns[i].DataType.Name) { case "Int64": sqlWriter.Write(" BIGINT NOT NULL DEFAULT '0'"); break; case "UInt64": sqlWriter.Write(" BIGINT UNSIGNED NOT NULL DEFAULT '0'"); break; case "Int32": sqlWriter.Write(" INT NOT NULL DEFAULT '0'"); break; case "UInt32": sqlWriter.Write(" INT UNSIGNED NOT NULL DEFAULT '0'"); break; case "Int16": sqlWriter.Write(" SMALLINT NOT NULL DEFAULT '0'"); break; case "UInt16": sqlWriter.Write(" SMALLINT UNSIGNED NOT NULL DEFAULT '0'"); break; case "SByte": sqlWriter.Write(" TINYINT NOT NULL DEFAULT '0'"); break; case "Byte": sqlWriter.Write(" TINYINT UNSIGNED NOT NULL DEFAULT '0'"); break; case "Single": sqlWriter.Write(" FLOAT NOT NULL DEFAULT '0'"); break; case "Double": sqlWriter.Write(" DOUBLE NOT NULL DEFAULT '0'"); break; case "String": sqlWriter.Write(" TEXT NOT NULL"); break; default: throw new Exception(String.Format("Unknown field type {0}!", data.Columns[i].DataType.Name)); } if (i == data.Columns.Count - 1) { } else { sqlWriter.WriteLine(","); } } bool pkey = false; bool nonuniquekey = false; foreach (DataColumn index in data.PrimaryKey) { // sqlWriter.WriteLine("\tPRIMARY KEY (`{0}`)", index.ColumnName); pkey = true; } foreach (DataColumn index in data.NonUniqueIndexs) { // sqlWriter.WriteLine("\tPRIMARY KEY (`{0}`)", index.ColumnName); // Console.WriteLine("NKEY"); nonuniquekey = true; } if (pkey) { //Console.WriteLine("Here"); sqlWriter.WriteLine(","); } else if (!pkey && nonuniquekey) { } else { sqlWriter.WriteLine(""); } int count = 0; foreach (DataColumn index in data.PrimaryKey) { if (count == data.PrimaryKey.Length - 1 && !nonuniquekey) { sqlWriter.WriteLine("\tPRIMARY KEY (`{0}`)", index.ColumnName); } else { sqlWriter.WriteLine("\tPRIMARY KEY (`{0}`),", index.ColumnName); } count++; } if (pkey && nonuniquekey) { //sqlWriter.WriteLine(""); //sqlWriter.Write(","); } else if (!pkey && nonuniquekey) { sqlWriter.WriteLine(","); } else { // sqlWriter.WriteLine(""); } int count_2 = 0; foreach (DataColumn index in data.NonUniqueIndexs) { if (count_2 == data.NonUniqueIndexs.Length - 1) { sqlWriter.WriteLine("\tKEY `idx_dbc_{0}_{1}` (`{2}`)", Path.GetFileNameWithoutExtension(data.TableName), index.ColumnName, index.ColumnName); } else { sqlWriter.WriteLine("\tKEY `idx_dbc_{0}_{1}` (`{2}`),", Path.GetFileNameWithoutExtension(data.TableName), index.ColumnName, index.ColumnName); } count_2++; } sqlWriter.WriteLine(") ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Export of {0}';", data.TableName); sqlWriter.WriteLine(); }