public void Open () { string serverName = ""; if (connectionString == null || connectionString.Equals ("")) throw new InvalidOperationException ("Connection string has not been initialized."); try { if (!pooling) { ParseDataSource (dataSource, out port, out serverName); tds = new Tds50 (serverName, port, PacketSize, ConnectionTimeout); } else { ParseDataSource (dataSource, out port, out serverName); TdsConnectionInfo info = new TdsConnectionInfo (serverName, port, packetSize, ConnectionTimeout, minPoolSize, maxPoolSize); pool = sybaseConnectionPools.GetConnectionPool (connectionString, info); tds = pool.GetConnection (); } } catch (TdsTimeoutException e) { throw SybaseException.FromTdsInternalException ((TdsInternalException) e); } tds.TdsErrorMessage += new TdsInternalErrorMessageEventHandler (ErrorHandler); tds.TdsInfoMessage += new TdsInternalInfoMessageEventHandler (MessageHandler); if (!tds.IsConnected) { try { tds.Connect (parms); ChangeState (ConnectionState.Open); ChangeDatabase (parms.Database); } catch { if (pooling) pool.ReleaseConnection (tds); throw; } } else if (connectionReset) { // tds.ExecuteNonQuery ("EXEC sp_reset_connection"); FIXME ChangeState (ConnectionState.Open); } }
void Open () { string serverName = string.Empty; if (state == ConnectionState.Open) throw new InvalidOperationException ("The Connection is already Open (State=Open)"); if (connectionString == null || connectionString.Trim().Length == 0) throw new InvalidOperationException ("Connection string has not been initialized."); try { if (!pooling) { if(!ParseDataSource (dataSource, out port, out serverName)) throw new SqlException(20, 0, "SQL Server does not exist or access denied.", 17, "ConnectionOpen (Connect()).", dataSource, parms.ApplicationName, 0); tds = new Tds80 (serverName, port, PacketSize, ConnectionTimeout, 0); tds.Pooling = false; } else { if(!ParseDataSource (dataSource, out port, out serverName)) throw new SqlException(20, 0, "SQL Server does not exist or access denied.", 17, "ConnectionOpen (Connect()).", dataSource, parms.ApplicationName, 0); TdsConnectionInfo info = new TdsConnectionInfo (serverName, port, packetSize, ConnectionTimeout, minPoolSize, maxPoolSize, connectionLifeTime); pool = sqlConnectionPools.GetConnectionPool (connectionString, info); tds = pool.GetConnection (); } } catch (TdsTimeoutException e) { throw SqlException.FromTdsInternalException ((TdsInternalException) e); } catch (TdsInternalException e) { throw SqlException.FromTdsInternalException (e); } tds.TdsErrorMessage += new TdsInternalErrorMessageEventHandler (ErrorHandler); tds.TdsInfoMessage += new TdsInternalInfoMessageEventHandler (MessageHandler); if (!tds.IsConnected) { try { if (Credentials != null) { if (parms.User != String.Empty) throw new ArgumentException("UserID already specified"); if (parms.PasswordSet) throw new ArgumentException("Password already specified"); if (parms.DomainLogin != false) throw new ArgumentException("Cannot use credentials with DomainLogin"); parms.User = Credentials.UserId; parms.Password = Credentials.Password; } tds.Connect (parms); } catch { if (pooling) pool.ReleaseConnection (tds); throw; } } disposed = false; // reset this, so using () would call Close (). ChangeState (ConnectionState.Open); }
void Open () { string serverName = ""; if (connectionString == null) throw new InvalidOperationException ("Connection string has not been initialized."); try { if (!pooling) { if(!ParseDataSource (dataSource, out port, out serverName)) throw new SqlException(20, 0, "SQL Server does not exist or access denied.", 17, "ConnectionOpen (Connect()).", dataSource, parms.ApplicationName, 0); tds = new Tds70 (serverName, port, PacketSize, ConnectionTimeout); } else { if(!ParseDataSource (dataSource, out port, out serverName)) throw new SqlException(20, 0, "SQL Server does not exist or access denied.", 17, "ConnectionOpen (Connect()).", dataSource, parms.ApplicationName, 0); TdsConnectionInfo info = new TdsConnectionInfo (serverName, port, packetSize, ConnectionTimeout, minPoolSize, maxPoolSize); pool = sqlConnectionPools.GetConnectionPool (connectionString, info); tds = pool.GetConnection (); } } catch (TdsTimeoutException e) { throw SqlException.FromTdsInternalException ((TdsInternalException) e); } tds.TdsErrorMessage += new TdsInternalErrorMessageEventHandler (ErrorHandler); tds.TdsInfoMessage += new TdsInternalInfoMessageEventHandler (MessageHandler); if (!tds.IsConnected) { try { tds.Connect (parms); } catch { if (pooling) pool.ReleaseConnection (tds); throw; } } /* Not sure ebout removing these 2 lines. * The command that gets to the sql server is just * 'sp_reset_connection' and it fails. * Either remove them definitely or fix it else if (connectionReset) tds.ExecProc ("sp_reset_connection"); */ disposed = false; // reset this, so using () would call Close (). ChangeState (ConnectionState.Open); }