public DBPetStepItem GetOneInfo(uint pet_id, uint step) { OneDBPetStep one_pet_step; if (!mInfos.TryGetValue(pet_id, out one_pet_step)) { one_pet_step = new OneDBPetStep(); one_pet_step.Id = pet_id; one_pet_step.OneDBPetStepArray = new Dictionary <uint, DBPetStepItem>(); mInfos.Add(one_pet_step.Id, one_pet_step); } Dictionary <uint, DBPetStepItem> dic = one_pet_step.OneDBPetStepArray; DBPetStepItem info = null; if (!dic.TryGetValue(step, out info)) { string query_str = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\" AND {0}.{3}=\"{4}\" ", mTableName, "id", pet_id.ToString(), "step", step.ToString()); var table_reader = DBManager.Instance.ExecuteSqliteQueryToReader(mFileName, mTableName, query_str); if (table_reader == null) { dic[step] = null; return(null); } if (!table_reader.HasRows) { dic[step] = null; table_reader.Close(); table_reader.Dispose(); return(null); } if (!table_reader.Read()) { dic[step] = null; table_reader.Close(); table_reader.Dispose(); return(null); } info = new DBPetStepItem(); info.Id = DBTextResource.ParseUI_s(GetReaderString(table_reader, "id"), 0); info.Step = DBTextResource.ParseUI_s(GetReaderString(table_reader, "step"), 0); info.SelfAttr = DBTextResource.ParseDBAttrItems(GetReaderString(table_reader, "self_attr")); info.OwnerAttr = DBTextResource.ParseDBAttrItems(GetReaderString(table_reader, "owner_attr")); info.CostArray = DBTextResource.ParseDBGoodsItem(GetReaderString(table_reader, "cost")); dic.Add(step, info); table_reader.Close(); table_reader.Dispose(); Debug.Log("load pet step " + pet_id + " " + step); } return(info); }
protected override void ParseData(SqliteDataReader reader) { mInfos.Clear(); mCostInfos.Clear(); DBPetStepItem info; if (reader != null) { if (reader.HasRows == true) { while (reader.Read()) { info = new DBPetStepItem(); info.Id = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0); info.Step = DBTextResource.ParseUI_s(GetReaderString(reader, "step"), 0); info.SelfAttr = DBTextResource.ParseDBAttrItems(GetReaderString(reader, "self_attr")); info.OwnerAttr = DBTextResource.ParseDBAttrItems(GetReaderString(reader, "owner_attr")); info.CostArray = DBTextResource.ParseDBGoodsItem(GetReaderString(reader, "cost")); if (mInfos.ContainsKey(info.Id) == false) { OneDBPetStep one_pet_step = new OneDBPetStep(); one_pet_step.Id = info.Id; //one_pet_step.MaxStep = 0; one_pet_step.OneDBPetStepArray = new Dictionary <uint, DBPetStepItem>(); mInfos.Add(one_pet_step.Id, one_pet_step); } //if (mInfos[info.Id].MaxStep < info.Step) // mInfos[info.Id].MaxStep = info.Step; mInfos[info.Id].OneDBPetStepArray[info.Step] = info; if (info.CostArray != null && info.CostArray.Count > 0) { if (mCostInfos.ContainsKey(info.CostArray[0].goods_id) == false) { mCostInfos[info.CostArray[0].goods_id] = info.Id; } } } } } }