Esporta (0) Stampa
Espandi tutto

Procedura: effettuare una connessione a una federazione nel database SQL di Azure

Aggiornamento: aprile 2014

In questo argomento viene descritto come connettersi a una federazione in database SQL di Azure. Per considerazioni generali sulla connessione ai database in Database SQL, vedere Linee guida per la connessione a database SQL di Windows Azure.

Per stabilire una connessione ai dati di una federazione, utilizzare l'istruzione USE FEDERATION (database SQL di Azure). Tutte le connessioni vengono stabilite con il database che contiene la federazione (radice della federazione) da cui la connessione verrà indirizzata al membro della federazione appropriata. Tale membro viene determinato dal valore di chiave federativa, specificato come parte dell'istruzione USE FEDERATION.

ImportantImportante
L'implementazione corrente delle federazioni verrà ritirata con i livelli di servizio Web e Business. Valutare l'opportunità di distribuire soluzioni di partizionamento orizzontale personalizzato per ottimizzare la scalabilità, la flessibilità e le prestazioni. Per ulteriori informazioni sul partizionamento orizzontale personalizzato, vedere Scalabilità orizzontale di database SQL di Azure.

Esempio di applicazione console

Nell'esempio seguente viene mostrata un'applicazione console tramite cui si effettua la connessione a Database SQL con federazione. Tramite l'applicazione console vengono effettuati i passaggi seguenti:

  1. Utilizzo di un oggetto SQLConnectionStringBuilder per creare la stringa di connessione.

  2. Connessione alla radice della federazione per recuperare e visualizzare i dati dei membri della federazione.

  3. Connessione a un membro della federazione e conteggio delle righe nel membro della federazione.

Utilizzare l'esempio

Per utilizzare questo esempio in Visual Studio con un server di Database SQL, effettuare le operazioni seguenti:

  1. Aprire Visual Studio e creare una nuova applicazione console.

  2. Sostituire il codice del file di programma con il codice di questo esempio.

  3. Sostituire il valore degli otto membri dati statici.

  4. Eseguire il codice.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace ConnectToFederationConsoleApp
{
    class Program
    {
        private static string federationName = "<ProvideFederationName>";
        private static string distributionName = "<ProvideDistributionName>";
        private static long federationKey = <ProvideAValue>;
        private static string tableName = "<ProvideTableName>";

        static void Main(string[] args)
        {
            SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
            csb.DataSource = dataSource;
            csb.InitialCatalog = databaseName;
            csb.Encrypt = true;
            csb.TrustServerCertificate = true;
            csb.UserID = userName;
            csb.Password = password;

            try
            {
                using (SqlConnection connection = new SqlConnection(csb.ToString()))
                {
                    connection.Open();

                    using (SqlCommand command = connection.CreateCommand())
                    {
                        // Route the connection to Federation Root
                        command.CommandText = "USE FEDERATION ROOT WITH RESET";
                        command.ExecuteNonQuery();

                        //Retrieve Federation Root metadata
                        command.CommandText = @"SELECT f.name, fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high " +
                                                            "FROM sys.federations f " +
                                                            "JOIN sys.federation_member_distributions fmc " +
                                                            "ON f.federation_id=fmc.federation_id " +
                                                            "ORDER BY fmc.federation_id, fmc.range_low, fmc.range_high";;
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            Console.WriteLine("name\t\tfederation_id\tmember_id\trange_low\trange_high");
                            while (reader.Read())
                            {
                                Console.WriteLine(reader["name"] + "\t" + 
                                    reader["federation_id"] + "\t" + 
                                    reader["member_id"] + "\t" + 
                                    reader["range_low"] + "\t" + 
                                    reader["range_high"] + "\t");
                            }
                            Console.WriteLine();
                        }

                        // Route the connection to a federation member
                        command.CommandText = "USE FEDERATION " + federationName + "(" + distributionName + "=" + federationKey + ") WITH RESET, FILTERING = OFF";
                        command.ExecuteNonQuery();
                        command.CommandText = @"SELECT * FROM " + tableName;

                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            int iRowCount = 0;
                            while (reader.Read())
                            {
                                iRowCount++;
                            }
                            Console.WriteLine("There are {0} rows in this federation member with the federation key value of {1}.", iRowCount, federationKey.ToString());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine( String.Format("Error:\r\n{0}\r\n{1}\r\n{2}", ex.Source, ex.Message, ex.StackTrace));
            }

            Console.WriteLine("\nPress ENTER to continue ... ");
            Console.ReadLine();

        }
    }
}

Vedere anche

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft