private static string[][] RedJobsSub(DataDBAsynchService ddbs) { //Console.WriteLine(DateTime.Now.ToLongTimeString() + " Начали получать расшифровку заданий"); List<string[]> jobs = null; string SQLstr = ""; try { SQLstr = //"begin tran tran1; "+ //"SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; "+ "select pj.ParserName, pj.id parser_id, am.[ID], am.[Address],am.[Sticker],[Encoding],[IpProxy],[PortProxy],[WebPreAuthentificationPage] " + ",[WebAuthentificationPage],[WebConnectionString],[Site],[Source],[PathForPhoto], DelayFrom, DelayTo, ap.id " + "from AddressesMask am with(xlock) " + "inner join PjobStat pj " + "on pj.ID=am.JobID " //+ "inner join AddressesParsing ap with(xlock) " + "inner join AddressesParsingStart ap " + "with(xlock) on ap.Address_ref=am.id " + " where ap.id not in(select AddressStart_Ref from AddressesParsingFinish) and ap.Host_Ref= " + GetHostRef(ddbs); //+"; commit tran tran1;"; //+ " order by pj.ParserName"; lock(DataDBAsynchService.db_lock) using(SqlConnection sc =ddbs.GetDBCon(ddbs.ConnectionString)) try { using(SqlCommand SQLCmd = new SqlCommand(SQLstr, sc)) try { SQLCmd.CommandTimeout = 29; using (SqlDataReader MydataReader2 = SQLCmd.ExecuteReader()) try { if (MydataReader2 != null) if (MydataReader2.HasRows) try { jobs = new List<string[]>(); object o0 = ""; //if (MydataReader2.HasRows) while (MydataReader2.Read()) { string[] job = new string[17]; //Console.WriteLine(DateTime.Now.ToLongTimeString() + " Считали строку расшифровки"); try { if (MydataReader2.FieldCount == 17) { if (MydataReader2.IsDBNull(0)) o0 = ""; else o0 = MydataReader2.GetSqlString(0).ToString(); /*Array.Resize(ref job, 1);*/ job[0] = (string)o0; //[ID] ///*Array.Resize(ref job, 1);*/ job[0] = "70"; if (MydataReader2.IsDBNull(1)) o0 = "0"; else o0 = MydataReader2.GetInt32(1).ToString(); /*Array.Resize(ref job, 2);*/ job[1] = (string)o0;//[ParserJobID] ///*Array.Resize(ref job, 2);*/ job[1] = "GilcomGotovoeDataCollector"; if (MydataReader2.IsDBNull(2)) o0 = "0"; else o0 = MydataReader2.GetInt32(2).ToString(); /*Array.Resize(ref job, 3);*/ job[2] = (string)o0;//[AddressMaskID] ///*Array.Resize(ref job, 2);*/ job[1] = "GilcomGotovoeDataCollector"; if (MydataReader2.IsDBNull(3)) o0 = ""; else o0 = MydataReader2.GetSqlString(3).ToString(); /*Array.Resize(ref job, 4);*/ job[3] = (string)o0;//[Encoding] ///*Array.Resize(ref job, 3);*/ job[2] = "UTF8"; if (MydataReader2.IsDBNull(4)) o0 = ""; else o0 = MydataReader2.GetSqlString(4).ToString(); /*Array.Resize(ref job, 5);*/ job[4] = (string)o0; if (MydataReader2.IsDBNull(5)) o0 = ""; else o0 = MydataReader2.GetSqlString(5).ToString(); /*Array.Resize(ref job, 6);*/ job[5] = (string)o0; if (MydataReader2.IsDBNull(6)) o0 = ""; else o0 = MydataReader2.GetSqlString(6).ToString(); /*Array.Resize(ref job, 7);*/ job[6] = (string)o0; if (MydataReader2.IsDBNull(7)) o0 = "0"; else o0 = MydataReader2.GetInt32(7).ToString(); /*Array.Resize(ref job, 8);*/ job[7] = (string)o0; if (MydataReader2.IsDBNull(8)) o0 = ""; else o0 = MydataReader2.GetSqlString(8).ToString(); /*Array.Resize(ref job, 9);*/ job[8] = (string)o0; if (MydataReader2.IsDBNull(9)) o0 = ""; else o0 = MydataReader2.GetSqlString(9).ToString(); /*Array.Resize(ref job, 10);*/ job[9] = (string)o0; if (MydataReader2.IsDBNull(10)) o0 = ""; else o0 = MydataReader2.GetSqlString(10).ToString(); /*Array.Resize(ref job, 11);*/ job[10] = (string)o0; if (MydataReader2.IsDBNull(11)) o0 = ""; else o0 = MydataReader2.GetSqlString(11).ToString(); /*Array.Resize(ref job, 12);*/ job[11] = (string)o0; if (MydataReader2.IsDBNull(12)) o0 = ""; else o0 = MydataReader2.GetSqlString(12).ToString(); /*Array.Resize(ref job, 13);*/ job[12] = (string)o0; if (MydataReader2.IsDBNull(13)) o0 = ""; else o0 = MydataReader2.GetSqlString(13).ToString(); /*Array.Resize(ref job, 14);*/ job[13] = (string)o0; if (MydataReader2.IsDBNull(14)) o0 = "0"; else o0 = MydataReader2.GetInt32(14).ToString(); /*Array.Resize(ref job, 15);*/ job[14] = (string)o0; if (MydataReader2.IsDBNull(15)) o0 = "0"; else o0 = MydataReader2.GetInt32(15).ToString(); /*Array.Resize(ref job, 16);*/ job[15] = (string)o0; if (MydataReader2.IsDBNull(16)) o0 = "0"; else o0 = MydataReader2.GetInt32(16).ToString(); /*Array.Resize(ref job, 17);*/ job[16] = (string)o0; /*if (MydataReader2.IsDBNull(14)) o0 = "0"; else o0 = MydataReader2.GetSqlString(14).ToString(); /*Array.Resize(ref job, 15);*/ //job[14] = (string)o0; //Array.Resize(ref jobs, jobs.Count() + 1); jobs.Add(job); } } catch (SystemException exx) { SQLCmd.Cancel(); if (o0 != null) { Console.WriteLine("Ошибка четния задания2. " + exx.Message + " получено " + o0.ToString()); ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания2 " + SQLstr + ". " + exx.Message + " получено " + o0.ToString()); } else { Console.WriteLine("Ошибка четния задания2 " + exx.Message + " получено null"); ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания2 " + exx.Message + " получено null"); } } finally { GC.SuppressFinalize(job); } } /*else { Console.WriteLine("Запрос вернул 0 строк. Вроде. Или HasRows косячит"); }*/ } catch (Exception ex) { SQLCmd.Cancel(); Console.WriteLine("Ошибка четния задания1 " + ex.Message); ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания1 " + ex.Message); } } catch { } finally { if (MydataReader2 != null) { if (!MydataReader2.IsClosed) MydataReader2.Close(); MydataReader2.Dispose(); GC.SuppressFinalize(MydataReader2); } } } catch (Exception ex) { SQLCmd.Cancel(); Console.WriteLine("Ошибка четния задания3 " + ex.Message); //ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания3 " + ex.Message); //return null; } finally { SQLCmd.Dispose(); GC.SuppressFinalize(SQLCmd); } } catch (Exception ex) { Console.WriteLine("Ошибка четния задания4 " + ex.Message); ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания4 " + ex.Message); //return null; } finally { if (sc != null) { if(sc.State!= System.Data.ConnectionState.Closed) sc.Close(); sc.Dispose(); GC.SuppressFinalize(sc); } } } catch (SystemException ex) { ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания " + ". " + ex.Message); //return null; } finally { //GC.Collect(); if (jobs!=null) Console.WriteLine(DateTime.Now.ToLongTimeString() + " Закончили получать задания. Получили: " + jobs.Count()); else Console.WriteLine(DateTime.Now.ToLongTimeString() + " Закончили получать задания. Но не получили("); } /*List<string[]> jobs_ret = new List<string[]>(jobs.Count()); for (int i = 0; i < 10; i++) for (int j = 0; j <= jobs.Count() / 10;j++ ) if (10 * j + i < jobs.Count()) jobs_ret.Add(jobs[10 * j + i]);*/ string[][] jobs_ = null; if (jobs != null) { if (jobs.Any()) { try { jobs_ = new string[jobs.Count][]; for (int i = 0; i < jobs.Count; i++) { jobs_[i] = jobs[i]; GC.SuppressFinalize(jobs[i]); } jobs.Clear(); } catch { Console.WriteLine("Произошла ошибка в финальной обработке заданий"); } finally { GC.SuppressFinalize(jobs); } } } return jobs_; }
public void SetPhones(DataDBAsynchService ddbs, ref DirtyApartments da) { if (da != null) { try { string SQLstr = "select Телефон1, Телефон2, Телефон3, Телефон4 from MasksPhones pm inner join AddressesParsing ap on ap.Address_ref=pm.Address_Ref where ap.id=" + _addressparsing; using(SqlConnection conn = ddbs.GetDBCon(ddbs.ConnectionString)) try { SqlCommand SQLCmd = new SqlCommand(SQLstr, conn); using (SqlDataReader MydataReader2 = SQLCmd.ExecuteReader()) { if (MydataReader2.HasRows) { while (MydataReader2.Read()) { if (MydataReader2.IsDBNull(0)) da.Телефон1 = null; else da.Телефон1 = MydataReader2.GetSqlString(0).ToString(); if (MydataReader2.IsDBNull(1)) da.Телефон2 = null; else da.Телефон2 = MydataReader2.GetSqlString(1).ToString(); if (MydataReader2.IsDBNull(2)) da.Телефон3 = null; else da.Телефон3 = MydataReader2.GetSqlString(2).ToString(); if (MydataReader2.IsDBNull(3)) da.Телефон4 = null; else da.Телефон4 = MydataReader2.GetSqlString(3).ToString(); } } MydataReader2.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); conn.Dispose(); } } catch (Exception ex) { ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, da.Ссылка, "Ошибка получения телефонов по троечке: " + ex.Message, _addressparsing); } } }