Example #1
0
        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);
        }
Example #2
0
        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;
                            }
                        }
                    }
                }
            }
        }