public static void OpenLocalDB() { if (!File.Exists(DBLocalPath)) { FileStream fs = File.Create(DBLocalPath); fs.Close(); fs.Dispose(); mLocalDBInstance = CDataBaseManager.GetDBInstance(DBLocalPath); if (mLocalDBInstance.BeginTransaction()) { mLocalDBInstance.CreateTable("unforceTable", new string[] { "path", "md5", "romote", "size" }, new string[] { "TEXT NOT NULL", "INTEGER NOT NULL UNIQUE", "INTEGER NOT NULL", "INTEGER NOT NULL" }); mLocalDBInstance.EndTransaction(); } } else { mLocalDBInstance = CDataBaseManager.GetDBInstance(DBLocalPath); } }
/// <summary> /// 写入信息 /// </summary> /// <param name="tableName"></param> /// <param name="valueArray"></param> public static void InsertInfo(CDBInstance db, string tableName, string[] valueArray) { if (db.BeginTransaction()) { db.InsertInto(tableName, valueArray); db.EndTransaction(); } }
public static bool CloseDB(string path) { CDBInstance result = null; if (m_DicDataBase.TryGetValue(path, out result)) { result.Close(); m_DicDataBase.Remove(path); result = null; return(true); } return(false); }
public override void OnEndExcute() { if (IsSuccess()) { //更新数据库信息 CDBInstance localDB = DBVersionManager.GetLocalDBInstance(); DataBaseInfo info = DBVersionManager.GetDataInfo(path); switch (versionEnum) { case DBVersionEnum.Insert: DBVersionManager.InsertInfo(localDB, "unforceTable", new string[] { "'" + path + "'", "'" + info.md5 + "'", info.romote.ToString(), info.size.ToString() }); break; case DBVersionEnum.Update: DBVersionManager.UpdateInfo(localDB, "unforceTable", new string[] { "md5", "romote", "size" }, new string[] { "'" + info.md5 + "'", info.romote.ToString(), info.size.ToString() }, "path", "'" + path + "'"); break; } if (null != result && 0 < result.Length) { AssetBundle ab = AssetBundle.LoadFromMemory(result); target = ab.LoadAsset(name, typeof(AudioClip)) as AudioClip; Debug.LogError(target); } AysnResManager.Instance.AddAudio(path, target); AysnResManager.Instance.RemoveFromLoading(path); target = null; } base.OnEndExcute(); }
public static CDBInstance GetDBInstance(string path) { if (string.IsNullOrEmpty(path)) { return(null); } CDBInstance result = null; if (m_DicDataBase.TryGetValue(path, out result)) { return(result); } result = new CDBInstance(path); m_DicDataBase.Add(path, result); return(result); }
/// <summary> /// 根据路径获取本地数据库信息 /// </summary> /// <param name="path"></param> /// <returns></returns> public static DataBaseInfo GetDataInfo(CDBInstance db, string path) { if (string.IsNullOrEmpty(path)) { return(null); } string resVal = path.ToLower(); SqliteDataReader reader = db.ExecuteQuery(string.Format(Sql_Query_Info, resVal)); if (null != reader && reader.Read()) { DataBaseInfo result = new DataBaseInfo(); result.md5 = reader.GetString(0); result.romote = reader.GetInt32(1); result.size = reader.GetInt32(2); return(result); } return(null); }
/// <summary> /// 修改信息 /// </summary> /// <param name="tableName"></param> /// <param name="cols"></param> /// <param name="colsvalues"></param> /// <param name="selectkey"></param> /// <param name="selectvalue"></param> public static void UpdateInfo(CDBInstance db, string tableName, string[] cols, string[] colsvalues, string selectkey, string selectvalue) { db.UpdateInto(tableName, cols, colsvalues, selectkey, selectvalue); }