Você está na página 1de 9

Merge Replication

Segn el ejemplo de la Web de MSDN. http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnppcgen/html/sql_serverce_replication_net.asp

Requisitos: Sql Server 2000 sp3 IIS Sql Server CE 2.0

Con el servidor de Sql instalado y activo.

En el Manager de Sql Server si existe un grupo de SQL llamado (local) hay que eliminarlo y crear uno con un nombre diferente ya que para una publicacin no se admite ese nombre.

Se crea un nuevo registro de servidor.

Iniciamos el Grupo de Sql Local. Dentro de la carpeta Base de datos, creamos una con los objetos que deseemos. En el asistente que aparece pondremos un nombre al nuevo registro y lo agregaremos, el resto de opciones del asistente los dejaremos tal cual estn. Al final del registro nos debe mostrar la informacin del registro correcto del servidor. En mi caso lo llam INFORMATICA. A continuacin creamos la Base de datos.

La base de datos que yo he creado se llama Bd y contendr una sola tabla llamada artculos, que ser al que se duplique al dispositivo mvil.

La manera de introducir los datos en esta tabla depende de cada uno, en mi caso los datos los importar mediante DTS de un archivo de texto separado por comas. Antes de configurar la duplicacin en el administrador de Sql Server hay que crear una carpeta compartida que contendr el duplicado. El nombre que yo he utilizado es replica, est en C y es accesible por todos los usuarios, con control total, en la ruta \\INFORMATICA\replica Para crear una publicacin de los datos contenidos de la base de datos. En la carpeta Duplicacin y dentro de Publicaciones, con el botn derecho del ratn pulsaremos sobre nueva publicacin. Si es la primera duplicacin en el PC nos pedir activar la distribucin. En la primera pantalla dejaremos marcado el que nuestro servidor sea el responsable de la distribucin.

Pulsando siguiente nos dir que especifiquemos una cuenta para el inicio del agente de SQL Server. En la ventana que aparece pulsaremos en Aceptar. Dejaremos activada la opcin de que el servicio del agente SQL Server arranque con Windows. La ruta de instantneas incluiremos la ruta de la carpeta creada anteriormente. \\INFORMATICA\replica Seleccionamos nuestra Base de datos Bd, pulsamos siguiente y seleccionamos Publicacin de Mezcla. En la siguiente pantalla dejamos seleccionado solamente Dispositivos con SQL Server CE. Pulsamos siguiente y seleccionamos la tabla que queramos sincronizar.

El resto de opciones del asistente las dejaremos tal cual estn. Al final del asistente aparecer una pantalla diciendo que se ha creado correctamente la publicacin. Hay que crear un usuario de acceso a la Base de datos con los permisos correspondientes para hacer la replica.

Botn derecho sobre la base de datos, Nuevo, Usuario de Base de datos. En la ventana que aparece, seleccionaremos en Nombre de Inicio de Sesin: <nuevo>, con esto conseguiremos una nueva ventana donde colocaremos los datos del nuevo usuario. Pulsando sobre el botn con los 3 puntos aparecer una pantalla de donde seleccionaremos el usuario de IIS, es decir INFORMATICA\IUSR_INFORMATICA en mi caso. Esta cuenta se crea en el momento de la instalacin de IIS. En Base de datos seleccionaremos nuestra base de datos y en la pestaa acceso a Base de datos seleccionaremos nuestra base de datos. Una vez creado el usuario hay que darle permiso para acceso a la publicacin.

En las propiedades de la publicacin, en la pestaa lista de acceso de la publicacin agregaremos el usuario creado anteriormente.

Instalacin SQL Server 2000 Ce Una vez instalado arrancamos el Sql Server Ce connectivity y creamos un nuevo directorio virtual con el asistente.

Especificaremos un alias y una ruta para los archivos temporales, en mi caso es la carpeta que he compartido arriba y una carpeta temporal que l mismo crear al darle a Next. Nos pedir que exista una copia de Sql Server Ce en la carpeta a lo que diremos que s para que l la cree. En la siguiente pantalla seleccionamos Anonymous Access y pulsando Edit especificamos el usuario de acceso annimo a IIS. En mi caso IUSR_INFORMATICA. Y pulsamos Next. En la pantalla de NTFS Permisions marcamos la opcin, esto permite el acceso a la replica de la base de datos. Pulsamos siguiente y especificamos la ruta de red de nuestra carpeta compartida de la replica, en mi caso \\informatica\replica Para comprobar si todo esta correctamente configurado ejecutamos esta direccin: http://localhost/bd/sscesa20.dll y deber aparecer una Web con la lnea SQL Server CE Server Agent. En este caso Bd es el alias que asign en el paso anterior. Traer replica al Pocket Para esto, utilizaremos el visual Basic .Net, en mi caso utilic la versin 2003.

Creamos una aplicacin nueva para Smart Device, Pocket PC. El interfaz incluye solamente un botn de sincronizar. Agregamos una referencia a SQL.DATA.SQLSERVERCE. Con esto los import deben quedar: Imports System.IO Imports System.Net Imports System.Data Imports System.Data.SqlServerCe Definicin de constantes y variables globales necesarias. Private Const ruta_URL As String = _ "http://192.168.0.10/bd/sscesa20.dll" Private Const servidor As String = "INFORMATICA" Private Const base_datos As String = "Bd" Private Const modo_seguridad As SecurityType = SecurityType.NTAuthentication Private Const publicacion As String = "Bd" Private subscriptor As String = Dns.GetHostName() Private Const bd_local As String = "\My Documents\datos.sdf" Private Const cadena_conexion As String = "data source=" & bd_local En estas variables hay que cambiar, en ruta_url, la direccin IP del PC En servidor, el nombre del grupo de Sql Server En Base_datos, el nombre de nuestra Base de datos En publicacin, el nombre de la publicacin creada En Bd_local, la ruta del pocket donde se creara la replica y nombre de la replica Hay que aadir un procedimiento: Private Sub Replicardatos() Dim replicator As New SqlCeReplication replicator.InternetUrl = ruta_URL replicator.Publisher = servidor replicator.PublisherDatabase = base_datos replicator.PublisherSecurityMode = modo_seguridad replicator.Publication = publicacion replicator.Subscriber = subscriptor replicator.SubscriberConnectionString = cadena_conexion replicator.Synchronize() End Sub Y el cdigo del botn, en el evento clic: Cursor.Current = Cursors.WaitCursor Try Dim engine As SqlCeEngine = _ New SqlCeEngine(cadena_conexion) If File.Exists(bd_local) Then File.Delete(bd_local)

End If engine.CreateDatabase() ReplicarDatos() Cursor.Current = Cursors.Default MessageBox.Show("Replica Creada", _ "Replicated", _ MessageBoxButtons.OK, _ MessageBoxIcon.None, _ MessageBoxDefaultButton.Button1) Catch ex As SqlCeException Cursor.Current = Cursors.Default Dim errSQL As SqlCeError For Each errSQL In ex.Errors MessageBox.Show(errSQL.Message, _ "Error", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation, _ MessageBoxDefaultButton.Button1) Next End Try Este cdigo es una pequea variacin del de muestra de Microsoft. Una vez creada la aplicacin hay que generar la solucin y copiarla al pocket pc. Hacer la Rplica. La replica queda configurada para la actualizacin automtica, aunque se puede forzar la actualizacin.

Dando clic derecho sobre el agente, iniciar agente, crea una replica nueva. Las dos lneas de abajo llamadas S200, son las conexiones de actualizacin del pocket. Para esto cre una wifi ad hoc entre el pc y el pocket.

Espero sirva de ayuda. Un Saludo.

by PaLa

Você também pode gostar