예제 #1
0
        public sealed override bool CreateDatabase(BaseLoginInfo loginInfo)
        {
            LoginInfo_SSCE myInfo = loginInfo as LoginInfo_SSCE;
            bool           result = false;

            string createTabelCommand = string.Empty;

            //Use "" for filter Special Chars
            createTabelCommand = string.Format("DataSource=\"{0}\"", myInfo.DbName);

            if (!string.IsNullOrEmpty(myInfo.Pwd))
            {
                createTabelCommand = string.Format("{0} ;Password={1}", createTabelCommand, myInfo.Pwd);
            }
            else
            {
                createTabelCommand = string.Format("{0} ;Password=''", createTabelCommand, myInfo.Pwd);
            }

            createTabelCommand = string.Format("{0} ;Encrypt={1}", createTabelCommand, myInfo.IsEncrypted);

            //Add Case Sensitive Support
            //This feautre only support after SqlCE3.5 Sp1
            if (myInfo.IsCaseSensitive)
            {
                createTabelCommand = createTabelCommand + ";Case Sensitive=true";
            }
            try
            {
                SqlCeEngine eg = new SqlCeEngine(createTabelCommand);
                eg.CreateDatabase();

                result = true;
            }
            catch (Exception ce)
            {
                throw ce;
            }

            return(result);
        }
예제 #2
0
        private CoreEA.ICoreEAHander CreateHandler(UIElement curElement)
        {
            CoreEA.ICoreEAHander tempHandler = null;

            ISrcControl srcControl = (ISrcControl)curElement;

            try
            {
                #region Source Control Handler
                if (curElement.GetType() == typeof(SelectSourceDbFile_OleDB))
                {
                    SelectSourceDbFile_OleDB curUI = curElement as SelectSourceDbFile_OleDB;
                    switch (curUI.CurrentDbType)
                    {
                    case UsingOleDbType.Excel:
                        tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Excel).X_Handler;
                        tempHandler.Open((LoginInfo_Excel)srcControl.X_Result);
                        break;

                    case UsingOleDbType.Access:
                        tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.OleDb).X_Handler;
                        tempHandler.Open((LoginInfo_Oledb)srcControl.X_Result);
                        break;

                    case UsingOleDbType.CSV:
                        tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.CSV).X_Handler;
                        tempHandler.Open((LoginInfo_CSV)srcControl.X_Result);
                        break;
                    }
                }
                else if (curElement.GetType() == typeof(SelectSqlServerSource))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlServer).X_Handler;
                    tempHandler.Open((LoginInfo_SqlServer)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectMySqlSource))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.MySql).X_Handler;
                    tempHandler.Open((LoginInfo_MySql)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectSqlite3DbFile))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Sqlite).X_Handler;
                    tempHandler.Open((LoginInfo_Sqlite)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectSSCEFile))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler;
                    tempHandler.Open((LoginInfo_SSCE)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectEffiproz))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Effiproz).X_Handler;
                    tempHandler.Open((LoginInfo_Effiproz)srcControl.X_Result);
                }
                #endregion

                #region TargetControlHandler
                //Here the type is the class name of TargetUI
                else if (curElement.GetType() == typeof(SelectTargetDb_SqlCe))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler;
                    LoginInfo_SSCE ceInfo = srcControl.X_Result as LoginInfo_SSCE;
                    ceInfo.MaxDbSize = 3000;

                    tempHandler.Open(ceInfo);
                }
                else if (curElement.GetType() == typeof(SelectSqlServerTarget))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlServer).X_Handler;
                    tempHandler.Open((LoginInfo_SqlServer)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectTargetSqliteDB))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.Sqlite).X_Handler;
                    tempHandler.Open((LoginInfo_Sqlite)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectTargetMySql))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.MySql).X_Handler;
                    tempHandler.Open((LoginInfo_MySql)srcControl.X_Result);
                }
                else if (curElement.GetType() == typeof(SelectTargetCSVFile))
                {
                    tempHandler = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.CSV).X_Handler;
                    LoginInfo_CSV tempLogInfo = srcControl.X_Result as LoginInfo_CSV;
                    tempLogInfo.Database += "1.csv";

                    tempHandler.Open(tempLogInfo);
                }
                #endregion
            }
            catch (Exception ee)
            {
                ee.HandleMyException();
            }

            Debug.Assert(tempHandler != null, "Handler can't be null");
            return(tempHandler);
        }
예제 #3
0
        public sealed override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;


            LoginInfo_SSCE          myInfo  = pInfo as LoginInfo_SSCE;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

            if ((myInfo == null) && (allInfo == null))
            {
                throw new ArgumentException("Only Support SSCE login info and AllDBTypes Info");
            }

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo             = new LoginInfo_SSCE();
                    myInfo.DbName      = allInfo.Database;
                    myInfo.Pwd         = allInfo.Pwd;
                    myInfo.IsEncrypted = allInfo.IsEncrypt;
                }

                OpenModeClass op = new OpenModeClass();
                op.mode = myInfo.CurOpenMode;
                switch (myInfo.CurOpenMode)
                {
                case OpenMode.ReadWrite:
                    op.modeDisplayName = "Read Write";
                    break;

                case OpenMode.ReadOnly:
                    op.modeDisplayName = "Read Only";
                    break;

                case OpenMode.Exclusive:
                    op.modeDisplayName = "Exclusive";
                    break;

                case OpenMode.SharedRead:
                    op.modeDisplayName = "Shared Read";
                    break;

                default:
                    op.modeDisplayName = "Read Write";
                    break;
                }

                if (myInfo.MaxBufferSize == 0)
                {
                    myInfo.MaxBufferSize = 1024;
                }
                if (myInfo.MaxDbSize == 0)
                {
                    myInfo.MaxDbSize = 4000;
                }

                myConnString = DbConnectionString.SSCE.GetSSCEConnectionString(
                    myInfo.DbName, myInfo.Pwd, myInfo.IsEncrypted, op, myInfo.MaxDbSize, myInfo.MaxBufferSize);


                baseConn = new SqlCeConnection(myConnString);
                baseConn.Open();

                CurDatabase = myInfo.DbName;
                CurPwd      = myInfo.Pwd;

                invalidator = new InvalidatorForSqlCe();
            }
            catch (Exception e)
            {
                throw e;
            }
        }