none
Sincronizar SQL Server con SQL Server Compact Edition RRS feed

  • Pregunta

  • Hola, saludos. Necesito realizar una sincronización entre dos bases de datos, una en SQL Server y la otra en SQL Compact Edition (Pocket PC).

    Gracias a unos tutoriales logré CASI hacerlo: los datos de la bd del Server se copian y actualizan a la Pocket (usando emulador en Visual Studio 2008); Sin embargo, lo que necesito es al revés: Que los datos del Pocket sincronicen a la bd del PC (usando SQL Express).

    Traté con el ejemplo de los tutoriales. Al crear el scope del servidor (ahora la bd .sdf del Pocket) Bien! Pero al crear el scope de la bd en el server me da un error en la siguiente línea:  clientProvision.Apply(clientConn);

    El error es "ya hay un objeto con el nombre 'clientes' en la base de datos.

    El código para crear el scope del cliente (en sql server) es el siguiente:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data.SqlServerCe;
    using Microsoft.Synchronization.Data;
    using Microsoft.Synchronization.Data.SqlServer;
    using Microsoft.Synchronization.Data.SqlServerCe;

    namespace ProvisionClient
    {
        class Program
        {
            static void Main(string[] args)
            {
     
                // create a connection to the server database
                SqlCeConnection serverConn = new SqlCeConnection(@"Data Source='C:\Users\electro\Documents\MiBase1.sdf'");
             
                // create a connection to the client database
                SqlConnection clientConn = new SqlConnection("data source=LAPTOP-5OKM6F50\\SQLEXPRESS;database=sincdb;Integrated Security=True");
                
                // get the description of tabla Clientes from the server database
                DbSyncScopeDescription scopeDesc = SqlCeSyncDescriptionBuilder.GetDescriptionForScope("clientesScope", serverConn);
                

                // create CE provisioning object based on the ProductsScope
                SqlSyncScopeProvisioning clientProvision = new SqlSyncScopeProvisioning(scopeDesc);

                // starts the provisioning process
                clientProvision.Apply(clientConn);

            }
        }
    }

    Alguien que me pueda ayudar?? Gracias!

    sábado, 15 de septiembre de 2018 1:46