Exemplo n.º 1
0
        private void Init(MDataTable mTable, string conn)
        {
            if (mTable.Columns == null || mTable.Columns.Count == 0)
            {
                Error.Throw("MDataTable's columns can't be null or columns'length can't be zero");
            }
            if (string.IsNullOrEmpty(mTable.TableName))
            {
                Error.Throw("MDataTable's tablename can't  null or empty");
            }
            mdt = sourceTable = mTable;

            if (mdt.TableName.IndexOfAny(new char[] { '(', ')' }) > -1)
            {
                mdt.TableName = mdt.TableName.Substring(mdt.TableName.LastIndexOf(')') + 1).Trim();
            }
            if (!string.IsNullOrEmpty(conn))
            {
                _Conn = conn;
            }
            else
            {
                if (mTable.DynamicData != null && mTable.DynamicData is MAction)//尝试多动态中获取链接
                {
                    _Conn = ((MAction)mTable.DynamicData).ConnString;
                }
                else if (mTable.DynamicData != null && mTable.DynamicData is MProc)
                {
                    _Conn = ((MProc)mTable.DynamicData).ConnString;
                }
                else
                {
                    _Conn = mTable.Conn;
                }
            }

            if (!DBTool.Exists(mdt.TableName, "U", _Conn))
            {
                DBTool.ErrorMsg = null;
                if (!DBTool.CreateTable(mdt.TableName, mdt.Columns, _Conn))
                {
                    Error.Throw("Create Table Error:" + mdt.TableName + DBTool.ErrorMsg);
                }
            }
            MDataColumn column = DBTool.GetColumns(mdt.TableName, _Conn);

            FixTable(column);//
            if (mdt.Columns.Count == 0)
            {
                Error.Throw("After fix table columns, length can't be zero");
            }
            dalTypeTo = column.DataBaseType;
            SetDalBaseForTransaction();
        }
Exemplo n.º 2
0
 private void InitData()
 {
     if (!DBTool.Exists("UserType", "U", Connection.Conn))
     {
         using (UserType ut = new UserType())
         {
             ut.Delete("1=1");//Clear All Data
             for (int i = 1; i < 5; i++)
             {
                 ut.TypeName = "Type" + i;
                 ut.Insert(InsertOp.None);
             }
         }
     }
 }
Exemplo n.º 3
0
 public static bool CheckSysAutoCacheTable()
 {
     if (!HasAutoCacheTable && !string.IsNullOrEmpty(AppConfig.Cache.AutoCacheConn))
     {
         string AutoCacheConn = AppConfig.Cache.AutoCacheConn;
         if (DBTool.TestConn(AutoCacheConn))
         {
             HasAutoCacheTable = DBTool.Exists(KeyTableName, AutoCacheConn);
             //检测数据是否存在表
             if (!HasAutoCacheTable)
             {
                 MDataColumn mdc = new MDataColumn();
                 mdc.Add("CacheKey", System.Data.SqlDbType.NVarChar, false, false, 200, true, null);
                 mdc.Add("CacheTime", System.Data.SqlDbType.BigInt, false, false, -1);
                 HasAutoCacheTable = DBTool.CreateTable(KeyTableName, mdc, AutoCacheConn);
                 if (!HasAutoCacheTable)                                             //若创建失败,可能并发下其它进程创建了。
                 {
                     HasAutoCacheTable = DBTool.Exists(KeyTableName, AutoCacheConn); //重新检测表是否存在。
                 }
             }
         }
     }
     return(HasAutoCacheTable);
 }