public SyncDataExport(string exportPath, string beginDate, string endDate)
 {
     this.exportPath = exportPath;
     this.beginDate  = beginDate;
     this.endDate    = endDate;
     //instantiation the interface IDbOperate
     dbOperate = new DbOperate();
 }
 private static bool IsTableExists(string sqlForTableExists, IDbOperate dbOperate)
 {
     try
     {
         return(dbOperate.IsExist(sqlForTableExists));
     }
     catch (Exception ex)
     {
         LogProxy.Error(ex, false);
         return(false);
     }
 }
Example #3
0
        private static void CreateTable(Type type, string tableName, IDbOperate dbOperate)
        {
            StringBuilder sql  = new StringBuilder("CREATE TABLE [");
            StringBuilder sql2 = new StringBuilder();

            sql.Append(tableName);
            sql.Append("] ( ");

            var propertys = type.GetProperties()
                            .OrderByDescending(p => p.DeclaringType == typeof(SRO))
                            .OrderBy(p => p.DeclaringType == type);

            foreach (PropertyInfo property in propertys)
            {
                object[]          dataTypeAttributes = property.GetCustomAttributes(typeof(DataTypeAttribute), false);
                DataTypeAttribute dataTypeAttribute  = null;
                if (dataTypeAttributes != null && dataTypeAttributes.Length > 0)
                {
                    dataTypeAttribute = dataTypeAttributes[0] as DataTypeAttribute;
                }

                if (dataTypeAttribute != null && dataTypeAttribute.IsLoad == false && dataTypeAttribute.IsSave == false)
                {
                    //判断是否映射
                    continue;
                }

                sql.Append(" [" + property.Name + "] ");

                CreateTableTypeHandle(property.PropertyType, dataTypeAttribute, ref sql);
            }
            sql.Append(" )");

            sql2.Append("CREATE CLUSTERED INDEX [ix-CreatedDate] ON [dbo].[");
            sql2.Append(tableName);
            sql2.Append("] ( [CreatedDate] DESC ");
            sql2.Append(")WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] ");

            sql2.Append("CREATE UNIQUE NONCLUSTERED INDEX [ix-Id] ON [dbo].[");
            sql2.Append(tableName);
            sql2.Append("] ( [Id] ASC ");
            sql2.Append(")WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] ");

            try
            {
                dbOperate.ExecuteNonQuery(sql.ToString(), null);
                dbOperate.ExecuteNonQuery(sql2.ToString(), null);
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, false);
            }
        }
Example #4
0
        private T LoadObjectDataBaseDirect <T>(string alias, string tableName, string id, bool isNolock) where T : SRO, new()
        {
            Type type = typeof(T);

            IDbOperate  dbOperate  = DbProxy.Create(alias, type);
            IDataReader dataReader = null;

            try
            {
                string sql = string.Format(isNolock ? SELECTSINGLEOBJECTWITHNOLOCK : SELECTSINGLEOBJECT, tableName);

                IMyDbParameter[] prams =
                {
                    DbParameterProxy.Create("@Id", SqlDbType.NVarChar, 32, id)
                };

                dataReader = dbOperate.GetDataReader(sql, prams);

                if (!dataReader.Read())
                {
                    return(default(T));
                }

                T obj = LoadObject <T>(dataReader);
                obj.CurrentAlias     = alias;
                obj.CurrentTableName = tableName;

                return(obj);
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, true);
                throw;
            }
            finally
            {
                if (dataReader != null)
                {
                    dataReader.Close();
                }
            }
        }
Example #5
0
        private static QueryOutDTO QueryConstructor(Type type, string tableName, string orderBy, string columnList, QueryInDTO inDto, out DataView dataView)
        {
            QueryOutDTO outDto = new QueryOutDTO();

            dataView = null;
            try
            {
                Dictionary <string, object> returnValue;

                IMyDbParameter[] prams =
                {
                    DbParameterProxy.Create("@TableName",   SqlDbType.NVarChar,                         50, tableName),
                    DbParameterProxy.Create("@OrderBy",     SqlDbType.NVarChar,                        500, orderBy),
                    DbParameterProxy.Create("@ColumnList",  SqlDbType.NVarChar,                        500, columnList),
                    DbParameterProxy.Create("@PageSize",    SqlDbType.Int,      inDto.PageSize),
                    DbParameterProxy.Create("@PageIndex",   SqlDbType.Int,      inDto.PageIndex),
                    DbParameterProxy.Create("@Condition",   SqlDbType.NVarChar,                       4000, inDto.Condition),
                    DbParameterProxy.Create("@PageCount",   SqlDbType.Int,      ParameterDirection.Output),
                    DbParameterProxy.Create("@RecordCount", SqlDbType.Int,      ParameterDirection.Output)
                };
                DataSet dataSet;

                IDbOperate dbOperate = DbProxy.Create(null, type);
                dbOperate.RunProcedure(PROPAGING, prams, out dataSet, out returnValue);
                dataView = dataSet.Tables[0].DefaultView;

                outDto.IsSucceed   = true;
                outDto.PageCount   = (int)returnValue["@PageCount"];
                outDto.RecordCount = (int)returnValue["@RecordCount"];
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, false);
                outDto.ErrorMsg = ex.Message;
            }

            return(outDto);
        }
        private static void CreateTable(string tableName, IDbOperate dbOperate, PropertyInfo[] propertys)
        {
            StringBuilder sql = new StringBuilder("CREATE TABLE [");

            sql.Append(tableName);
            sql.Append("] ( ");
            propertys = propertys.OrderByDescending(p => p.DeclaringType.ToString() == "Scree.Persister.SRO").ToArray();
            foreach (PropertyInfo property in propertys)
            {
                object[]          dataTypeAttributes = property.GetCustomAttributes(typeof(DataTypeAttribute), false);
                DataTypeAttribute dataTypeAttribute  = null;
                if (dataTypeAttributes != null && dataTypeAttributes.Length > 0)
                {
                    dataTypeAttribute = dataTypeAttributes[0] as DataTypeAttribute;
                }

                if (dataTypeAttribute != null && dataTypeAttribute.IsLoad == false && dataTypeAttribute.IsSave == false)
                {
                    //判断是否映射
                    continue;
                }

                sql.Append(" [" + property.Name + "] ");

                CreateTableTypeHandle(property.PropertyType, dataTypeAttribute, ref sql);
            }
            sql.Append(" ) ");

            try
            {
                dbOperate.ExecuteNonQuery(sql.ToString(), null);
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, false);
            }
        }
Example #7
0
        public static T[] LoadObjects <T>(string alias, string tableName, int top, string condition, IMyDbParameter[] prams, bool isNolock) where T : SRO, new()
        {
            Type type = typeof(T);

            IDbOperate  dbOperate  = DbProxy.Create(alias, type);
            IDataReader dataReader = null;

            try
            {
                string sql = string.Format(isNolock ? SELECTOBJECTSWITHNOLOCK : SELECTOBJECTS,
                                           (top <= 0 ? "" : "TOP " + top.ToString()),
                                           tableName, condition);

                dataReader = dbOperate.GetDataReader(sql, prams);

                List <T> list = new List <T>();
                while (dataReader.Read())
                {
                    list.Add(LoadObject <T>(dataReader));
                }

                return(list.ToArray());
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, true);
                throw;
            }
            finally
            {
                if (dataReader != null)
                {
                    dataReader.Close();
                }
            }
        }
Example #8
0
        public T[] LoadObjects <T>(string alias, string tableName, int top, string condition, IMyDbParameter[] prams, bool isLock, LoadType loadType) where T : SRO, new()
        {
            IDataReader dataReader = null;

            try
            {
                string cacheId   = null;
                bool   needCache = false;

                if (loadType == LoadType.CacheFirst && CacheService != null)
                {
                    needCache = CacheService.IsNeedCached <ArrayCache <T> >();
                    if (needCache)
                    {
                        string jsonPrams = JsonConvert.SerializeObject(prams);
                        cacheId = string.Format("{0}-{1}-{2}-{3}-{4}-{5}", alias, tableName, top, condition, jsonPrams, isLock);
                        cacheId = Tools.MD5(cacheId);

                        T[] objs = LoadCacheObjects <T>(cacheId);
                        if (objs != null)
                        {
                            return(objs);
                        }
                    }
                }

                Type   type = typeof(T);
                string format;
                if (isLock)
                {
                    if (string.IsNullOrEmpty(condition))
                    {
                        format = SELECTOBJECTS;
                    }
                    else
                    {
                        format = SELECTOBJECTSHASCONDITION;
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(condition))
                    {
                        format = SELECTOBJECTSWITHNOLOCK;
                    }
                    else
                    {
                        format = SELECTOBJECTSWITHNOLOCKHASCONDITION;
                    }
                }

                string sql = string.Format(format,
                                           (top <= 0 ? "" : "TOP " + top.ToString()),
                                           tableName, condition);

                IDbOperate dbOperate = DbProxy.Create(alias, type);
                dataReader = dbOperate.GetDataReader(sql, prams);

                List <T> list = new List <T>();
                while (dataReader.Read())
                {
                    list.Add(LoadObject <T>(dataReader));
                }

                T[] t = list.ToArray();
                if (needCache)
                {
                    AddCache <T>(cacheId, t);
                }
                return(t);
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, true);
                throw;
            }
            finally
            {
                if (dataReader != null)
                {
                    dataReader.Close();
                }
            }
        }
Example #9
0
        public static SRO LoadObject(Type type, string alias, string tableName, string id, LoadType loadType, bool isNolock)
        {
            if (string.IsNullOrEmpty(id))
            {
                LogProxy.Error(IDISNULL, true);
                return(null);
            }

            if (loadType != LoadType.DataBaseDirect)
            {
                SRO obj = LoadCacheObject(type, id) as SRO;

                if (loadType == LoadType.OnlyCache)
                {
                    return(obj);
                }

                if (obj != null)
                {
                    return(obj);
                }
            }

            IDbOperate  dbOperate  = DbProxy.Create(alias, type);
            IDataReader dataReader = null;

            try
            {
                string sql = string.Format(isNolock ? SELECTSINGLEOBJECTWITHNOLOCK : SELECTSINGLEOBJECT, tableName);

                IMyDbParameter[] prams =
                {
                    DbParameterProxy.Create("@Id", SqlDbType.NVarChar, 32, id)
                };

                dataReader = dbOperate.GetDataReader(sql, prams);

                if (!dataReader.Read())
                {
                    return(null);
                }

                SRO obj = LoadObject(type, dataReader);
                if (obj == null)
                {
                    return(null);
                }
                obj.CurrentAlias     = alias;
                obj.CurrentTableName = tableName;
                return(obj);
            }
            catch (Exception ex)
            {
                LogProxy.Error(ex, true);
                throw;
            }
            finally
            {
                if (dataReader != null)
                {
                    dataReader.Close();
                }
            }
        }
 public SyncDataImport(string importPath)
 {
     this.importPath = importPath;
     //instantiation the interface IDbOperate
     dbOperate = new DbOperate();
 }