Что делает sp_reset_connection?

Это ограничение автофильтров. Вы не можете использовать более двух фильтров в пользовательском интерфейсе.

Вместо этого вы можете использовать фильтр «Дополнительно», или вы можете создать массив значений, соответствующих вашим критериям, и фильтровать с помощью этого:

Sub MultiContainsAutofilter()
    Dim vData
    Dim shData                As Worksheet
    Dim d                     As Object
    Dim i                     As Long

    Set shData = ActiveSheet
    vData = shData.UsedRange.Columns(2)

    Set d = CreateObject("Scripting.Dictionary")

    For i = LBound(vData, 1) To UBound(vData, 1)
        If UCase$(vData(i, 1)) Like "*A*" Or UCase$(vData(i, 1)) Like "*B*" Or UCase$(vData(i, 1)) Like "*C*" Then
            d(vData(i, 1)) = Empty
        End If
    Next i

    If d.Count > 0 Then shData.UsedRange.AutoFilter Field:=2, Criteria1:=d.keys, Operator:=xlFilterValues
End Sub
41
задан splattne 28 February 2009 в 06:10
поделиться

2 ответа

Слои API доступа к данным как ODBC, OLE DB и SqlClient называют (внутреннюю) хранимую процедуру sp_reset_connection при многократном использовании соединения от пула соединения. Это делает это для сброса состояния соединения, прежде чем это будет снова использовано.

, кажется, нет официальной документации относительно того, какие вещи сбрасываются, но здесь являются неофициальным списком.

sp_reset_connection сбрасывает следующие аспекты соединения:

  • Это сбрасывает все состояния ошибки и числа (как @@ ошибка)
  • , Это останавливает все EC (контексты выполнения), которые являются дочерними потоками родительского EC, выполняющего параллельный запрос
  • , Это будет ожидать любых выдающихся операций ввода-вывода, который является выдающийся
  • , Это освободит любые сохраненные буферы на сервере соединением
  • , Это разблокирует любые буферные ресурсы, которые используются соединением
  • , Это освободит всю память, выделенную принадлежавший соединению
  • , Это очистит любые рабочие или временные таблицы, которые составлены соединением
  • , Это уничтожит все глобальные курсоры, принадлежавшие соединению
  • , Это закроется, любой открывает дескрипторы SQL-XML, которые являются, открывают
  • It удалит, любой открывает связанные с SQL-XML рабочие таблицы
  • , Это закроет все системные таблицы
  • , Это закроет все пользовательские таблицы
  • , Это отбросит все временные объекты
  • , Это прервет открытые транзакции
  • , Это будет дезертировать от распределенной транзакции, когда включено в список
  • , Это постепенно уменьшит подсчет ссылок для пользователей в текущей базе данных; которые выпускают общую блокировку базы данных
  • , Она освободит полученные блокировки
  • , Она будет выпуски любые дескрипторы, которые, возможно, были получены
  • , Она сбросит все опции НАБОРА к значениям по умолчанию
  • , Она сбросит @@ rowcount значение
  • , Она сбросит @@ значение идентификационных данных
  • , Она сбросит любые опции трассировки сеансового уровня с помощью dbcc traceon ()

, sp_reset_connection НЕ сбросит:

  • Контекст защиты, который является, почему организация пула подключений соответствует соединениям на основе точной строки подключения
  • при вводе роли приложения с помощью sp_setapprole так как роли приложения не могут вернуться
  • уровень изоляции транзакции
69
ответ дан Jax 23 September 2019 в 15:27
поделиться

От это сообщение форума :

sp_reset_connection хранимая процедура используется для сброса соединения так, чтобы, когда она используется в пуле, ничто от предыдущей сессии не было сохранено, который определенный для соединения.

-1
ответ дан Mark Struzinski 23 September 2019 в 15:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: