public static void Setup(string debug) { debug += "Tanuló.Setup" + Konzol.dbj; foreach (string könyvtárnév in Directory.EnumerateDirectories(root)) { if (könyvtárnév.Split('\\').Last()[0] != '-') // A "-"-szal kezdődő könyvtárnevekről nem vesz tudomást. { lista.Add(new Tanuló(könyvtárnév)); } Konzol.Write(debug, $"[green]{{{Path2név(könyvtárnév)}}}"); Konzol.WriteLine("", " tanulókönyvtár észlelve."); } }
public static void HibákKiírása(string debug) { debug += "Tanuló.hibajegyzék" + Konzol.dbj; string szín; foreach (string hiba in hibajegyzék) { szín = hiba.Contains("LIKE") ? "yellow" : "red"; Konzol.WriteLine(debug, $"[{szín}]{{{hiba}}}"); } if (hibajegyzék.Any(x => x.Contains("LIKE"))) { Színes.WriteLine("\t[yellow]{Ha vannak indokolatlanul üres táblák, akkor ennek egy valószínű oka az, hogy az OLEDB, amit ez a program használ, nem tudja értelmezni az Access-ben használatos \"LIKE\" parancs \"*\" és \"?\" regex-szerű változójeleit. Ehhez az eredeti fájlokban sajnos egyelőre át kell írni a parancsokat \"ALIKE\" parancsokra és a szokásos mysql és sql-szerver \"%\" és \"_\" karaktereket használni. Így az Access és az OLEDB is lefut és ugyanazt az eredményt produkálja. }"); } }
public static void Setup(string debug) { debug += "Feladat.Setup" + Konzol.dbj; using (StreamReader f = new StreamReader(setupfilename, Encoding.Default)) { while (!f.EndOfStream) { string sor = f.ReadLine(); if (sor[0] != '%') // megjegyzés, nem mentjük el { setuplist.Add(new NNT(sor)); } } } Konzol.WriteLine(debug, setupdirpath + @"\" + setupfilename + " beolvasva"); Console.WriteLine("{0}\\{1}\t -> \t{2}", "adatbázis neve", "lekérdezés neve", "lekérdezés típusa"); Console.WriteLine("---------------------------"); foreach (NNT nnt in setuplist) { Console.WriteLine("{0}\\{1}\t -> \t{2}", nnt.adatbázis, nnt.lekérdezés, nnt.tipus); } }
private void lekérdezés2txt(string debug, Feladat.NNT nnt) { debug += "lekérdezés2txt" + Konzol.dbj; string szín; try { con = new OleDbConnection(); con.ConnectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={dirpath}\\{nnt.adatbázis}"; cmd = new OleDbCommand(); cmd.Connection = con; cmd.CommandText = "SELECT * FROM " + nnt.lekérdezés; con.Open(); reader = cmd.ExecuteReader(); string sorstring; int sorokszáma = reader.FieldCount; Console.WriteLine("+-------------- START --------------"); Console.Write("|\t"); Konzol.Write("", $"[green]{{{név}}} "); Konzol.Write("", $"[blue]{{{nnt.lekérdezés}}}"); Console.WriteLine(" lekérdezése:"); Console.WriteLine("+-----------------------------------"); using (StreamWriter w = new StreamWriter($"{dirpath}\\output_{nnt.adatbázisnév}_{nnt.lekérdezés}.txt")) { int i = 0; while (reader.Read()) { sorstring = ""; for (int j = 0; j < sorokszáma; j++) { sorstring += reader[j] + (j < sorokszáma - 1?"\t":""); } Console.Write("| "); Konzol.Write("", $"[blue]{{{++i}}}"); Console.WriteLine("\t" + sorstring); w.WriteLine(sorstring); } if (i == 0) { hibajegyzék.Add("Üres? Ha nem, fix: LIKE => ALIKE ? " + név + ": " + nnt.adatbázisnév + "/" + nnt.lekérdezés); } } con.Close(); // Console.WriteLine("------------------------------------"); // Konzol.Write("", név+" ", ConsoleColor.Green); // Konzol.Write("", nnt.lekérdezés, ConsoleColor.Blue); // Console.WriteLine(" lekérdezésének vége"); Console.WriteLine("+--------------- END ---------------"); Console.WriteLine(); } catch (Exception e) { string hiba = "HIÁNYZIK? " + név + ": " + nnt.adatbázisnév + "/" + nnt.lekérdezés + " -- " + e.Message; //+" ("+debug+")"; hibajegyzék.Add(hiba); szín = hiba.Contains("LIKE") ? "yellow" : "red"; Konzol.WriteLine(debug, $"[{szín}]{{{hiba}}}"); // Konzol.WriteLine(debug, $"[red]{{{hiba}}}"); using (StreamWriter w = new StreamWriter(dirpath + "\\output_" + nnt.adatbázisnév + "_" + nnt.lekérdezés + ".txt")) { w.WriteLine(hiba); } //throw; } }