VENTES: 1-800-867-1389

Procédure : se connecter à une fédération dans la Base de données SQL Azure

Mis à jour: juillet 2015

Cette rubrique explique comment se connecter à une fédération dans base de données SQL Azure. Pour des informations générales sur la connexion aux bases de données dans une base de données SQL, consultez Instructions pour la connexion à la base de données SQL Azure par programme.

L'établissement d'une connexion aux données de la fédération s'effectue à l'aide de l'instruction USE FEDERATION (Azure SQL Database). Toutes les connexions sont établies à la base de données contenant la fédération (racine de fédération) qui route ensuite la connexion vers le membre de fédération approprié. Le membre de fédération vers lequel la connexion est routée est déterminé par la valeur de la clé de fédération, qui est spécifiée dans le cadre de l'instruction USE FEDERATION.

WarningAvertissement
Les fédérations seront retirées avec les niveaux de service Web et Business dans Azure SQL Database. (Consultez Forum aux questions sur la disparition des éditions Web et Business.) Envisagez d'utiliser une mise à l'échelle élastique pour Azure SQL Database afin de créer une solution partitionnée avec montée en puissance parallèle pour votre couche Données. Pour l'essayer, consultez Prise en main de l'infrastructure élastique d'Azure SQL Database (version préliminaire).

L'exemple suivant est une application console qui se connecte à une base de données SQL avec fédération. L'application console effectue les étapes suivantes :

  1. Elle utilise d'abord un objet SQLConnectionStringBuilder pour construire la chaîne de connexion.

  2. Ensuite, elle se connecte à la racine de fédération pour extraire et afficher les données du membre de fédération.

  3. Pour finir, elle se connecte à un membre de fédération et compte les lignes présentes dans celui-ci.

Pour utiliser cet exemple dans Visual Studio avec votre serveur base de données SQL, procédez comme suit :

  1. Ouvrez Visual Studio et créez une application console.

  2. Remplacez le code dans le fichier de programme par le code de cet exemple.

  3. Remplacez la valeur des huit membres de données statiques.

  4. Exécutez le code.


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();

        }
    }
}

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2015 Microsoft