Espelhamento de Banco de Dados usando SQL Server Native Client 11.0 OLE DB Provider

Exemplo de string de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider

Exemplo de string de conexão

Essa é uma string de conexão do provider SQL Server Native Client 11.0 OLE DB Provider para se conectar com SQL Server 2012, SQL Server 2008 ou SQL Server 2005.

Espelhamento de Banco de Dados

Se você se conectar com ADO.NET ou o SQL Native Client a um banco de dados que está sendo espelhado, sua aplicação pode aproveitar a capacidade do driver de redirecionar automaticamente as conexões quando ocorre uma falha no espelhamento do banco de dados. Você deve especificar o servidor principal inicial e o banco de dados na string de conexão e o servidor parceiro de failover.

Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;

Existem, claro, muitas outras maneiras de escrever a string de conexão usando o espelhamento de banco de dados, este é apenas um exemplo destacando a funcionalidade de failover. Você pode combinar isso com as outras opções de string de conexão disponíveis.

Conexão através de diferentes linguagens

C#

Exemplo de código em C# de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

using System;
using System.Data.OleDb;

class DatabaseConnection {
    static void Main() {
        // Define a string de conexão SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
        string connectionString = "Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;";

        using (OleDbConnection connection = new OleDbConnection(connectionString)) {
            try {
                // Abre a conexão
                connection.Open();

                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //

            } catch (OleDbException ex) {
                // Erros específicos do OleDbException
                Console.WriteLine("Erro: " + ex.Message);
            } catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);            
            } finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Se estiver usando .NET Core, você precisa antes instalar o pacote System.Data.OleDb com o seguinte comando:

dotnet add package System.Data.OleDb

VB.NET

Exemplo de código em VB.NET de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

Imports System
Imports System.Data.OleDb

Module DatabaseConnection

    Sub Main()
        Dim connectionString As String
        
        ' Define a string de conexão SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
        connectionString = "Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;"

        Using connection As New OleDbConnection(connectionString)
            Try
                ' Abre a conexão
                connection.Open()

                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As OleDbException
                ' Erros específicos do OleDbException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub

End Module

ASP Clássico

Exemplo de código em ASP Clássico de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

<%
Dim conn, connectionString

' Cria a string de conexão para SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
connectionString = "Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;"

Set conn = Server.CreateObject("ADODB.Connection")

' Abre a conexão
On Error Resume Next
conn.Open connectionString

' Verifica se a conexão foi aberta
If conn.State = 1 Then
    Response.Write "Conexão aberta com sucesso!"
    '
    ' INSIRA SEU CÓDIGO AQUI
    '
Else
    If Err.Number <> 0 Then
        Response.Write "Erro: " & Server.HTMLEncode(Err.Description)
    Else
        Response.Write "Erro: A conexão não pode ser estabelecida."
    End If

End If

On Error GoTo 0

' Fecha a conexão
conn.Close
Set conn = Nothing

%>

VBScript

Exemplo de código em VBScript de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

Dim conn, connectionString

' Define a string de conexão SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
connectionString = "Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;"

Set conn = CreateObject("ADODB.Connection")

' Abre a conexão
On Error Resume Next
conn.Open connectionString

' Verifica se a conexão foi aberta
If conn.State = 1 Then
    Wscript.Echo "Conexão aberta com sucesso!"
    '
    ' INSIRA SEU CÓDIGO AQUI
    '
Else
    If Err.Number <> 0 Then
        WScript.Echo "Erro: " & Err.Description
    Else
        WScript.Echo "Erro: A conexão não pode ser estabelecida."
    End If

End If

On Error GoTo 0

' Fecha a conexão
conn.Close
Set conn = Nothing
Wscript.Echo "Conexão fechada."

JScript

Exemplo de código em JScript de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

var conn, connectionString;

// Define a string de conexão SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
connectionString = "Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;";

conn = new ActiveXObject("ADODB.Connection");

// Abre a conexão
try {
    // Abre a conexão
    conn.Open(connectionString);
    if (conn.State === 1) {
        WScript.Echo("Conexão aberta com sucesso!");
        //
        // INSIRA SEU CÓDIGO AQUI
        //
    } else {
        WScript.Echo("Erro: A conexão não pode ser estabelecida.");
    }
} catch (e) {
    // Exibe a mensagem de erro
    WScript.Echo("Erro: " + e.description);
} finally {
    // Fecha a conexão
    conn.Close();
    conn = null;
}

C++

Exemplo de código em C++ de conexão com SQL Server usando SQL Server Native Client 11.0 OLE DB Provider:

#include <iostream>
#include <cstdlib>
#include <string>
#include <atldbcli.h>

int main() {
    // Inicializa COM
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr)) {
        std::cout << "Falha ao inicializar COM. Erro: " << hr << std::endl;
        return EXIT_FAILURE; // Encerra se a COM não puder ser inicializada
    }

    // Define a string de conexão SQL Server usando SQL Server Native Client 11.0 OLE DB Provider
    std::wstring connectionString = L"Provider=SQLNCLI11;Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;";


    CDataSource dataSource;
    CSession session;
    hr = dataSource.OpenFromInitializationString(connectionString.c_str());
    if (SUCCEEDED(hr)) {
        // Abre uma sessão
        hr = session.Open(dataSource);
        if (SUCCEEDED(hr)) {
            std::cout << "Conexão aberta com sucesso!" << std::endl;

            //
            // INSIRA SEU CÓDIGO AQUI
            //

            // Fecha a sessão e a conexão com o banco de dados
            session.Close();
            dataSource.Close();
        } else {
            std::cout << "Falha ao abrir sessão. Erro: " << hr << std::endl;
        }
    } else {
        std::cout << "Falha ao abrir conexão. Erro: " << hr << std::endl;
    }

    // Finaliza COM
    CoUninitialize();

    return EXIT_SUCCESS;
}