예제 #1
0
        /// <summary>
        /// Creates and opens a SQL connection.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        /// <remarks>
        /// The caller of this method is responsible for closing the connection.
        /// </remarks>
        private async Task <SqlConnection> CreateConnectionAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            var con = new SqlConnection(ConnectionString);
            await con.OpenAsync(cancellationToken).ConfigureAwait(false);

            if (m_ServerDefaultSettings == null)
            {
                var temp = new SqlServerEffectiveSettings();
                await temp.ReloadAsync(con, null);

#if !Thread_Missing
                Thread.MemoryBarrier();
#endif
                m_ServerDefaultSettings = temp;
            }

            var sql = BuildConnectionSettingsOverride();

            if (sql.Length > 0)
            {
                using (var cmd = new SqlCommand(sql.ToString(), con))
                    await cmd.ExecuteNonQueryAsync();
            }

            return(con);
        }
예제 #2
0
        internal SqlConnection CreateConnection()
        {
            var con = new SqlConnection(ConnectionString);

            con.Open();

            if (m_ServerDefaultSettings == null)
            {
                var temp = new SqlServerEffectiveSettings();
                temp.Reload(con, null);
#if !Thread_Missing
                Thread.MemoryBarrier();
#endif
                m_ServerDefaultSettings = temp;
            }

            var sql = BuildConnectionSettingsOverride();

            if (sql.Length > 0)
            {
                using (var cmd = new SqlCommand(sql.ToString(), con))
                    cmd.ExecuteNonQuery();
            }

            return(con);
        }
예제 #3
0
        public async Task <SqlServerEffectiveSettings> GetEffectiveSettingsAsync()
        {
            var result = new SqlServerEffectiveSettings();

            using (var con = await CreateConnectionAsync())
                await result.ReloadAsync(con, null);
            return(result);
        }
예제 #4
0
        public SqlServerEffectiveSettings GetEffectiveSettings()
        {
            var result = new SqlServerEffectiveSettings();

            using (var con = CreateConnection())
                result.Reload(con, null);
            return(result);
        }
예제 #5
0
    private partial async Task <AbstractConnection> OnCreateConnectionAsync(CancellationToken cancellationToken)
    {
        var con = new SqlConnection(ConnectionString);
        await con.OpenAsync(cancellationToken).ConfigureAwait(false);

        if (DatabaseMetadata.ServerDefaultSettings == null)
        {
            var temp = new SqlServerEffectiveSettings();
            await temp.ReloadAsync(con, null).ConfigureAwait(false);

            Thread.MemoryBarrier();
            DatabaseMetadata.ServerDefaultSettings = temp;
        }

        var sql = BuildConnectionSettingsOverride();

        if (sql != null)
        {
            using (var cmd = new SqlCommand(sql, con))
                await cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
        }

        return(con);
    }
예제 #6
0
    private partial AbstractConnection OnCreateConnection()
    {
        var con = new SqlConnection(ConnectionString);

        con.Open();

        if (DatabaseMetadata.ServerDefaultSettings == null)
        {
            var temp = new SqlServerEffectiveSettings();
            temp.Reload(con, null);
            Thread.MemoryBarrier();
            DatabaseMetadata.ServerDefaultSettings = temp;
        }

        var sql = BuildConnectionSettingsOverride();

        if (sql != null)
        {
            using (var cmd = new SqlCommand(sql, con))
                cmd.ExecuteNonQuery();
        }

        return(con);
    }