Пример #1
0
        /// <summary>
        /// Notice:
        /// Because OleDB Suppor many db types .
        /// So the UsingOleDbType property in LoginInfo should be specifed. otherwise will use default db type -->Here is Oracle
        /// </summary>
        /// <param name="pInfo"></param>
        public override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;

            LoginInfo_Oracle        myInfo  = pInfo as LoginInfo_Oracle;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo = new LoginInfo_Oracle();

                    //Acctually the SID is the global db name in Oracle
                    //It is different from other db types
                    myInfo.SID = allInfo.Database;

                    myInfo.Username = allInfo.Username;
                    myInfo.Password = allInfo.Pwd;
                    myInfo.Port     = allInfo.Port;

                    //The hostname can be ip address of server or machine name
                    myInfo.HostName = allInfo.Server;
                }

                myConnString = DbConnectionString.Oracle.ConnectionStringWithoutClient(myInfo.HostName, myInfo.Port.ToString(),
                                                                                       myInfo.SID, myInfo.Username, myInfo.Password);

                //Here just use the dll in odp.net
                //but we need confirm the right version of current client
                baseConn = new OracleConnection(myConnString);



                baseConn.Open();

                invalidator = new Invalidation.InvalidationBase();
                CurDatabase = myInfo.SID;
                CurPwd      = myInfo.Password;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #2
0
        public sealed override void Open(CoreEA.LoginInfo.BaseLoginInfo info)
        {
            LoginInfo_Firebird      myInfo  = info as LoginInfo_Firebird;
            LoginInfo_ForAllDbTypes allInfo = info as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo            = new LoginInfo_Firebird();
                    myInfo.DataFile   = allInfo.Database;
                    myInfo.Password   = allInfo.Pwd;
                    myInfo.DataSource = allInfo.Server;
                    myInfo.Username   = allInfo.Username;
                }

                FbConnectionStringBuilder strBuilder = new FbConnectionStringBuilder();
                strBuilder.Charset            = myInfo.CharSet;
                strBuilder.ConnectionLifeTime = myInfo.ConnectionLifeTime;
                strBuilder.Database           = myInfo.DataFile;
                strBuilder.DataSource         = myInfo.DataSource;
                strBuilder.Dialect            = myInfo.Dialect;
                strBuilder.MaxPoolSize        = myInfo.MaxPollSize;
                strBuilder.MinPoolSize        = myInfo.MinPollSize;
                strBuilder.PacketSize         = myInfo.PacketSize;
                strBuilder.Password           = myInfo.Password;
                strBuilder.Pooling            = myInfo.IsPolling;
                strBuilder.Port = myInfo.Port;

                baseConn = new FbConnection(strBuilder.ConnectionString);
                baseConn.Open();

                CurDatabase = myInfo.DataFile;
                CurPwd      = myInfo.Password;

                invalidator = new InvalidatorForFirebird();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #3
0
        public sealed override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;


            LoginInfo_Sqlite        myInfo  = pInfo as LoginInfo_Sqlite;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            try
            {
                string connectionStr = string.Empty;
                if (allInfo != null)
                {
                    myInfo            = new LoginInfo_Sqlite();
                    myInfo.Pwd        = allInfo.Pwd;
                    myInfo.IsUnicode  = allInfo.IsUnicode;
                    myInfo.IsReadOnly = false;
                    myInfo.DbFile     = allInfo.Database;
                }

                connectionStr = DbConnectionString.Sqlite.Standard(
                    myInfo.DbFile, myInfo.IsReadOnly, myInfo.IsUnicode, myInfo.Pwd);

                baseConn = new SQLiteConnection(connectionStr);

                baseConn.Open();

                CurDatabase = myInfo.DbFile;

                invalidator = new InvalidatorSqlite();
            }
            catch (SQLiteException ee)
            {
                throw ee;
            }
            catch (DbException eee)
            {
                throw eee;
            }
        }
Пример #4
0
        /// <summary>
        /// Here notice :
        /// The database in the connection is a folder name
        /// And the database name is the file name
        /// In CSV the filename is just the database name and the table name
        ///
        /// </summary>
        /// <param name="pInfo"></param>
        public override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;


            LoginInfo_CSV           myInfo  = pInfo as LoginInfo_CSV;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo = new LoginInfo_CSV();

                    myInfo.Database = allInfo.Database;
                    myInfo.Pwd      = allInfo.Pwd;
                    myInfo.Username = allInfo.Username;
                }

                //Process Database name
                myInfo.Database = Directory.GetParent(myInfo.Database).FullName;

                myConnString = DbConnectionString.TxtFile.OleDb_DelimitedColumns(myInfo.Database, myInfo.IsFirstRowIsColumnName);

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

                invalidator = new InvalidatorForOledb();
                CurDatabase = myInfo.Database;
                CurPwd      = myInfo.Pwd;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #5
0
        /// <summary>
        /// Notice:
        /// Because OleDB Suppor many db types .
        /// So the UsingOleDbType property in LoginInfo should be specifed. otherwise will use default db type -->Here is Access
        /// </summary>
        /// <param name="pInfo"></param>
        public override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;

            LoginInfo_Effiproz      myInfo  = pInfo as LoginInfo_Effiproz;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo = new LoginInfo_Effiproz();
                    myInfo.InitialCatalog = allInfo.Database;
                    myInfo.Username       = allInfo.Username;
                    myInfo.Password       = allInfo.Pwd;
                }
                myConnString = ConnSTR.DbConnectionString.EffiprozConnStr.GetConnectionString(myInfo.DBConnectionType, myInfo.InitialCatalog,
                                                                                              myInfo.Username, myInfo.Password);

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

                invalidator = new InvalidatorEffiproz();
                CurDatabase = myInfo.InitialCatalog;
                CurPwd      = myInfo.Password;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #6
0
        /// <summary>
        ///
        /// When to use trust connection string (Connect to  online )
        /// When to ues not trust connection string (Connect to remote or local)
        ///
        /// </summary>
        /// <param name="pInfo"></param>
        public sealed override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;

            LoginInfo_SqlServer     myInfo  = pInfo as LoginInfo_SqlServer;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            if (allInfo != null)
            {
                myInfo = new LoginInfo_SqlServer();
                myInfo.IsTrustedConn         = allInfo.IsTrustedConn;
                myInfo.X_Database            = allInfo.Database;
                myInfo.X_Pwd                 = allInfo.Pwd;
                myInfo.X_Server              = allInfo.Server;
                myInfo.X_TableName           = allInfo.TableName;
                myInfo.X_UserName            = allInfo.Username;
                myInfo.X_CurDbConnectionMode = allInfo.CurConnMode;
                myInfo.AttchFile             = allInfo.AttachedFileName;
            }

            if (myInfo.IsTrustedConn)
            {
                switch (myInfo.X_CurDbConnectionMode)
                {
                case CurDbServerConnMode.Local:
                    myConnString = DbConnectionString.Sqlserver.GetConnectionString(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.Standard:
                    myConnString = DbConnectionString.Sqlserver.Standard_WithTrustOrNot(myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd, true);
                    break;

                case CurDbServerConnMode.SqlServer2005Express:
                    myConnString = DbConnectionString.Sqlserver.GetSqlServerExpressCS(myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd, myInfo.IsTrustedConn);
                    break;

                case CurDbServerConnMode.SqlServer2000:
                    myConnString = DbConnectionString.Sqlserver.SqlServerConnectionString(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.OleDb:
                    myConnString = DbConnectionString.Sqlserver.GetOledbConnectionString_Trust(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.AttachFile:
                    // myConnString = DbConnectionString.Sqlserver.AttachFile(myInfo.X_Server, myInfo.AttchFile);
                    myConnString = DbConnectionString.Sqlserver.AttachFileEx(myInfo.X_Server, myInfo.AttchFile);
                    break;

                case CurDbServerConnMode.SqlServer2008Express:
                    myConnString = DbConnectionString.Sqlserver.GetSqlServer2008_Trust(myInfo.X_Server, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.SqlServer2005:
                    myConnString = DbConnectionString.Sqlserver.Connection_Mars(myInfo.X_Server, myInfo.X_Database);
                    break;
                }
            }
            else
            {
                switch (myInfo.X_CurDbConnectionMode)
                {
                case CurDbServerConnMode.OleDb:
                    myConnString = DbConnectionString.Sqlserver.GetOledbConnectionString_NoTrust(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.Local:
                    myConnString = DbConnectionString.Sqlserver.GetConnectionString(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.Standard:
                    myConnString = DbConnectionString.Sqlserver.Standard_WithTrustOrNot(myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd, false);
                    break;

                case CurDbServerConnMode.SqlServer2000:
                    myConnString = DbConnectionString.Sqlserver.SqlServerConnectionString(myInfo.X_Server, myInfo.X_UserName, myInfo.X_Pwd, myInfo.X_Database);
                    break;

                case CurDbServerConnMode.SqlServer2005Express:
                    myConnString = DbConnectionString.Sqlserver.GetSqlServerExpressCS(myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd, myInfo.IsTrustedConn);
                    break;

                case CurDbServerConnMode.AttachFile:
                    throw new Exception("Attach File mode need TrustConnection");

                case CurDbServerConnMode.SqlServer2008Express:
                    myConnString = DbConnectionString.Sqlserver.GetSqlServer2008_StandardSecurity(
                        myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd
                        );
                    break;

                case CurDbServerConnMode.SqlServer2005:
                    myConnString = DbConnectionString.Sqlserver.Connection_Mars_NoTrust(
                        myInfo.X_Server, myInfo.X_Database, myInfo.X_UserName, myInfo.X_Pwd);
                    break;
                }
            }

            try
            {
                baseConn = new SqlConnection(myConnString);
                baseConn.Open();

                CurDatabase = myInfo.X_Database;
                CurPwd      = myInfo.X_Pwd;

                invalidator = new InvalidatorForSqlServer();
            }
            catch (DataException ee)
            {
                throw ee;
            }
        }
Пример #7
0
        /// <summary>
        /// Notice:
        /// Because OleDB Suppor many db types .
        /// So the UsingOleDbType property in LoginInfo should be specifed. otherwise will use default db type -->Here is Access
        /// </summary>
        /// <param name="pInfo"></param>
        public override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;

            LoginInfo_Excel         myInfo  = pInfo as LoginInfo_Excel;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo = new LoginInfo_Excel();

                    myInfo.Database            = allInfo.Database;
                    myInfo.Pwd                 = allInfo.Pwd;
                    myInfo.Username            = allInfo.Username;
                    myInfo.CurrentOleDBVersion = allInfo.CurrentOleDBVersion;
                }
                switch (myInfo.CurrentOleDBVersion)
                {
                case OleDBVersion.Is2003:
                    myConnString = DbConnectionString.Excel.GetOleDbConnectionString(myInfo.Database, myInfo.IsFirstRowIsColumnName);

                    break;

                case OleDBVersion.Is2007:
                    myConnString = DbConnectionString.Excel2007.GetOleDBString(myInfo.Database, myInfo.IsFirstRowIsColumnName);

                    break;

                default:
                    myConnString = DbConnectionString.Excel.GetOleDbConnectionString(myInfo.Database, myInfo.IsFirstRowIsColumnName);

                    break;
                }

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

                invalidator = new InvalidatorForOledb();
                CurDatabase = myInfo.Database;
                CurPwd      = myInfo.Pwd;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #8
0
        /// <summary>
        /// Notice:
        /// Because OleDB Suppor many db types .
        /// So the UsingOleDbType property in LoginInfo should be specifed. otherwise will use default db type -->Here is Access
        /// </summary>
        /// <param name="pInfo"></param>
        public override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;


            LoginInfo_Oledb         myInfo  = pInfo as LoginInfo_Oledb;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            string myConnString = string.Empty;

            try
            {
                if (allInfo != null)
                {
                    myInfo = new LoginInfo_Oledb();

                    myInfo.Database            = allInfo.Database;
                    myInfo.Pwd                 = allInfo.Pwd;
                    myInfo.Username            = allInfo.Username;
                    myInfo.CurrentOleDBVersion = allInfo.CurrentOleDBVersion;
                    //myInfo.CurOleDBType=allInfo.
                }
                #region Get Connection String
                switch (myInfo.CurrentOleDBVersion)
                {
                case OleDBVersion.Is2003:
                    if (string.IsNullOrEmpty(myInfo.Pwd))
                    {
                        myConnString = DbConnectionString.Access.GetOledbAccess(myInfo.Database, myInfo.Username, myInfo.Pwd);
                    }
                    else
                    {
                        myConnString = DbConnectionString.Access.GetOleDbAccessWithPassword(myInfo.Database, myInfo.Pwd);
                    }
                    break;

                case OleDBVersion.Is2007:
                    if (string.IsNullOrEmpty(myInfo.Pwd))
                    {
                        myConnString = DbConnectionString.Access2007.GetOleDBString(myInfo.Database, "");
                    }
                    else
                    {
                        myConnString = DbConnectionString.Access2007.GetOleDBString(myInfo.Database, myInfo.Pwd);
                    }
                    break;

                default:
                    if (string.IsNullOrEmpty(myInfo.Pwd))
                    {
                        myConnString = DbConnectionString.Access.GetOledbAccess(myInfo.Database, myInfo.Username, myInfo.Pwd);
                    }
                    else
                    {
                        myConnString = DbConnectionString.Access.GetOleDbAccessWithPassword(myInfo.Database, myInfo.Pwd);
                    }
                    break;
                }
                #endregion

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

                invalidator = new InvalidatorForOledb();
                CurDatabase = myInfo.Database;
                CurPwd      = myInfo.Pwd;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #9
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;
            }
        }
Пример #10
0
        public sealed override void Open(BaseLoginInfo pInfo)
        {
            //Record to base class (Vital)
            baseLoginInfo = pInfo;

            LoginInfo_MySql         myInfo  = pInfo as LoginInfo_MySql;
            LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes;

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

            if (IsOpened)
            {
                return;
            }

            try
            {
                string myConnString = string.Empty;
                if (allInfo != null)
                {
                    myInfo          = new LoginInfo_MySql();
                    myInfo.Database = allInfo.Database;
                    myInfo.Pwd      = allInfo.Pwd;
                    myInfo.Server   = allInfo.Server;
                    myInfo.Username = allInfo.Username;
                    myInfo.Port     = allInfo.Port;
                }

                myConnString = DbConnectionString.MySql.GetMySqlConnectionString(
                    myInfo.Server,
                    myInfo.Username,
                    myInfo.Pwd,
                    myInfo.Port,
                    myInfo.Database,
                    myInfo.ConnectionTimeOut,
                    50,
                    myInfo.IsPolling
                    );

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

                Debug.WriteLine("Connection Timeout is " + baseConn.ConnectionTimeout);

                invalidator = new InvalidatorForMySql();
                //Set Current Opened Database
                base.CurDatabase = myInfo.Database;
                base.CurPwd      = myInfo.Pwd;

                if (string.IsNullOrEmpty(myInfo.Database))
                {
                    DoExecuteNonQuery("use mysql;");
                }
                else
                {
                    DoExecuteNonQuery("use " + myInfo.Database + ";");
                }
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }