Beispiel #1
0
        /// <summary>
        /// Opens a database connection with the property settings specified by the ConnectionString.
        /// </summary>
        public void Open()
        {
            if (state == ConnectionState.Open)
            {
                throw new MySqlException("error connecting: The connection is already Open (state=Open).");
            }

            SetState(ConnectionState.Connecting);

            try
            {
                if (settings.Pooling)
                {
                    internalConnection = MySqlPoolManager.GetConnection(settings);
                }
                else
                {
                    internalConnection = new MySqlInternalConnection(settings);
                    internalConnection.Open();
                }
            }
            catch (Exception ex)
            {
                SetState(ConnectionState.Closed);
                throw ex;
            }


            SetState(ConnectionState.Open);
            internalConnection.SetServerVariables(this);
            if (settings.Database != null && settings.Database != String.Empty)
            {
                ChangeDatabase(settings.Database);
            }
        }
Beispiel #2
0
        private MySqlInternalConnection CreateNewPooledConnection()
        {
            lock (idlePool.SyncRoot)
                lock (inUsePool.SyncRoot)
                {
                    // first we check if we are allowed to create another
                    if ((inUsePool.Count + idlePool.Count) == maxSize)
                    {
                        return(null);
                    }

                    MySqlInternalConnection conn = new MySqlInternalConnection(settings);
                    conn.Open();
                    idlePool.Add(conn);
                    return(conn);
                }
        }
		private MySqlInternalConnection CreateNewPooledConnection()
		{
			lock(idlePool.SyncRoot) 
				lock (inUsePool.SyncRoot)
				{
					// first we check if we are allowed to create another
					if ((inUsePool.Count + idlePool.Count) == maxSize) return null;

					MySqlInternalConnection conn = new MySqlInternalConnection( settings );
					conn.Open();
					idlePool.Add( conn );
					return conn;
				}
		}
		/// <summary>
		/// Opens a database connection with the property settings specified by the ConnectionString.
		/// </summary>
		public void Open()
		{
			if (state == ConnectionState.Open)
				throw new MySqlException("error connecting: The connection is already Open (state=Open).");

			SetState( ConnectionState.Connecting );

			try 
			{
				if (settings.Pooling) 
				{
					internalConnection = MySqlPoolManager.GetConnection( settings );
				}
				else
				{
					internalConnection = new MySqlInternalConnection( settings );
					internalConnection.Open();
				}
			}
			catch (Exception ex)
			{
				SetState( ConnectionState.Closed );
				throw ex;
			}


			SetState( ConnectionState.Open );
			internalConnection.SetServerVariables(this);
			if (settings.Database != null && settings.Database != String.Empty)
				ChangeDatabase( settings.Database );
		}