示例#1
0
        /// <summary>
        /// 检索数据并保存到oracle库中
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        public void SearchDataToOracle(int start, int end)
        {
            DataTable dt_articles = OracleCon.SelectArticles(start, end);

            if (dt_articles.Rows.Count < 1)
            {
                SetTitleIndex(end.ToString());
                return;
            }
            try
            {
                foreach (DataRow row in dt_articles.Rows)
                {
                    string title = row["CITATION_TITLE"].ToString();
                    string id    = row["INTERNAL_ID"].ToString();
                    int.TryParse(id, out nowIndex);
                    if (string.IsNullOrEmpty(title))
                    {
                        SetTitleIndex(id);
                        OracleCon.SaveMatchDataError(title, id, "title is null");
                        continue;
                    }

                    if (dbSearcher.SearchOracle(title, id))
                    {
                        SetTitleIndex(id);
                        continue;
                    }

                    bool        GetSearcher = false;
                    WosSearcher tmpSearcher = null;
                    while (!GetSearcher)
                    {
                        for (int i = 0; i < searchers.Count; i++)
                        {
                            if (!searchers[i].isbusy)
                            {
                                tmpSearcher        = searchers[i];
                                GetSearcher        = true;
                                tmpSearcher.isbusy = true;
                                break;
                            }
                        }
                    }
                    new DealTitle(M_DealTitle).BeginInvoke(title, id, tmpSearcher, null, null);
                }
            }
            catch (Exception e)
            {
                Logs.WriteLog(string.Format("{0}\r\n{1}", "SearchDataToOracle:" + nowIndex, e.Message));
                return;
            }
        }