samedi 3 avril 2010

Utiliser un cache basé sur une base SQL Server Compact locale

0 commentaires

Il se peut que vous ayez besoin de faire des requêtes sur un sous ensemble de données éparpillées un peut partout dans vos référentiels d’entreprise. Dans ce cas, les temps de réponses peuvent être très long. Ce qui dégrade énormément l’expérience utilisateur.

 

Pour y remédier, une solution consiste à utiliser une base de données locale pour servir de cache, en utilisant le format de base *.sdf de SQL Serveur Compact Edition. Ce choix est particulièrement adapté si l’on souhaite utiliser ces données pour faire une interface de recherche dynamique se rapprochant du projet Pivot de Microsoft Labs.

 

Voici un exemple d’utilisation sur un cache contenant une liste d’employés :

 

string connectionString = "Data Source=SearchCache.sdf;Persist Security Info=False;";
using (SqlCeConnection connection = new SqlCeConnection(connectionString))
{
    using (SqlCeDataAdapter adapter = new SqlCeDataAdapter())
    {
        adapter.SelectCommand = connection.CreateCommand();
        adapter.SelectCommand.CommandText = "SELECT * FROM Employee";

        DataTable dt = new DataTable("Employee");
        adapter.Fill(dt);
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine("{0} {1}", row.ItemArray[0], row.ItemArray[1]);
        }
    }
}

 

Cependant, les bases SQL Serveur Compact Edition ont quelques limitations :

- Les procédures stockées ne sont pas supportées

- Seul un sous-ensemble de type et de fonctions Transact SQL sont disponible

- Il n’y a pas de support du designer pour Linq To Sql dans Visual Studio

 

Pour aller plus loin :

http://blogs.msdn.com/sqlservercompact/