Отсоединение от экземпляра SQL Server
Закрытие и отсоединение объектов SMO вручную не требуется. Соединения открываются и закрываются по мере необходимости.
Организация пулов соединений
Соединение не освобождается автоматически при вызове метода Connect. Чтобы освободить соединение обратно в пул, необходимо явно вызвать метод Disconnect. Можно также запросить соединение вне пула. Это делается путем установки свойства NonPooledConnection свойства ConnectionContext, которое ссылается на объект ServerConnection.
Отсоединение от экземпляра SQL Server для объектов RMO
При программировании с использованием объектов RMO закрытие серверных соединений немного отличается от закрытия при использовании объектов SMO.
Поскольку серверное соединение для объекта RMO обслуживается объектом ServerConnection, этот объект также используется при отсоединении от экземпляра Microsoft SQL Server при программировании с помощью объекта RMO. Чтобы закрыть соединение с помощью объекта ServerConnection, вызовите метод Disconnect объекта RMO. После закрытия соединения объекты RMO использовать нельзя.
Примеры
Чтобы использовать какой-либо из представленных примеров кода, необходимо выбрать среду, шаблон и язык программирования, с помощью которых будет создаваться приложение. Дополнительные сведения см. в разделе «Как создать проект Visual Basic SMO в Visual Studio .NET» или «Как создать проект Visual C# SMO в Visual Studio .NET» в электронной документации по SQL Server.
Закрытие и отсоединение объекта SMO на языке Visual Basic
Этот пример кода показывает, как запросить соединение вне пула, задав свойство NonPooledConnection свойства объекта ConnectionContext.
Dim srv As Server
srv = New Server
'Disable automatic disconnection.
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect
'Connect to the local, default instance of SQL Server.
srv.ConnectionContext.Connect()
'The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version)
'Disconnect explicitly.
srv.ConnectionContext.Disconnect()
Закрытие и отсоединение объекта SMO на языке Visual C#
Этот пример кода показывает, как запросить соединение вне пула, задав свойство NonPooledConnection свойства объекта ConnectionContext.
{
Server srv;
srv = new Server();
//Disable automatic disconnection.
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect;
//Connect to the local, default instance of SQL Server.
srv.ConnectionContext.Connect();
//The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version);
//Disconnect explicitly.
srv.ConnectionContext.Disconnect();
}