Data Synchronization Using SQL Server CE Merge Replication in Windows Mobile Application–Creating The Application (Part-3)

Windows Mobile , Posted at : May/05/2011  
4839 Views   12 Comments

Di artikel-1 dan artikel-2 telah dibahas tentang setting merge replication di sql server ce dan web synchronization untuk menginstal sql ce server agent di IIS. Pada kesempatan ini saya akan melakukan test merge replication dengan konfigurasi yang telah dibuat sebelumnya. Aplikasi mobile yang dibuat menggunakan Visual Studio 2008 dengan target .net compact framework 3.5 sp2 dan Windows Mobile 6.5 emulator. Manipulasi data di mobile device akan dilakukan langsung melalui SQL Query Analyzer 3.5 yang telah diinstal secara built-in di device emulator tersebut.

Environment yang digunakan di artikel ini berbeda dengan environment yang digunakan di artikel-1 dan artikel-2. Disini saya masih tetap menggunakan Windows 7 x64, IIS 7.5 dan Visual Studio 2008, namun SQL Server yang digunakan yaitu untuk versi 2008 (SP2) dan juga untuk SQL CE Server Tools yang digunakan bukan versi SQL Server 2005 Mobile Tools namun SQL Server CE 3.5 SP2 Server Tools. Hal tersebut sengaja saya lakukan untuk memberikan alternatif lain dalam hal penggunaan environment dan framework terbaru. Untuk setting merge replication dan web synchronization tidak berbeda dengan yang telah dilakukan di artikel-1 dan artikel-2.

Ada beberapa komponen yang harus diinstal dengan environment yang telah disebutkan diatas, komponen-komponen tersebut ialah :

Satu hal yang harus diketahui apabila didalam komputer yang digunakan terinstal SQL Server 2005 Mobile Server Tools (SQL CE 3.1) dan SQL Server CE 3.5 SP2 Server Tools secara bersamaan maka anda harus melakukan uninstal terhadap salah satu komponen tersebut yang tidak akan digunakan. Sinkronisasi dari mobile device tidak dapat dilakukan apabila kedua komponen tersebut diinstal di komputer yang sama.

Lakukan langkah-langkah berikut ini untuk melakukan test merge replication di mobile device :

  • Instal microsoft loopback adapter dari Device Manager dan berikan sebuah ip address dari network sharing center setelah adapter tersebut diinstal :

  • Instal Windows Mobile Device Center
  • Instal SQL Server CE 3.5 SP2 Server Tools x86.
  • Lakukan Web Synchronization dari menu Start – All Programs

pilih menu web synch untuk yang 32 bit. Disini asumsinya saya telah membuat snapshot folder yang telah di share dengan nama pubdata dan virtual directory dengan nama sync. Karena koneksi yang digunakan dari mobile device disini menggunakan anonymous user maka IIS 7 akan menggunakan IUSR group sebagai credentialnya. Oleh karena itu pastikan group tersebut diberikan hak akses read-write ke snapshot folder dan virtual directory (read-execute untuk file sqlcesa35.dll).

  • Browse ke url berikut ini dan pastikan hasilnya seperti gambar dibawah ini :

  • Buat login untuk IUSR (Windows 7) ke server instance database SQL Server 2008 lewat SQL Server Management Studio – Security – Logins dan berikan hak akses ke database Northwind di bagian User Mapping.
  • Berikan hak akses ke Publication Access List di Local Publications yang telah dibuat dengan klik kanan publication (disini saya menggunakan nama NorthwindPub)– properties :

  • Buat Smart Device project template di Visual Studio 2008 dengan memilih target .net compact framework 3.5 dan windows mobile 6 professional platform :

  • Tambahkan satu buah Button dan Label di form :

  • Tambahkan referensi ke assembly berikut ini :

  • Tambahkan code behind berikut ini di event click button :
Imports System.Data.SqlServerCe
 
Public Class frmMain
 
    Private Sub btnSynch_Click(ByVal sender As System.Object, _
                               ByVal e As System.EventArgs) _
                               Handles btnSynch.Click
 
        Using sqlCeRep As New SqlCeReplication
            With sqlCeRep
                .InternetUrl = _
                "http://rully/sync/sqlcesa35.dll"
 
                .Publisher = "rully"
                .PublisherSecurityMode = _
                   SecurityType.DBAuthentication
 
                .PublisherLogin = "sa"
                .PublisherPassword = "sql2008"
                .PublisherDatabase = "Northwind"
                .Publication = "NorthwindPub"
 
                .Subscriber = "Rully"
                .SubscriberConnectionString = _
                    "Data Source=\My Documents\Northwind.sdf"
            End With
 
            Try
                If Not System.IO.File.Exists( _
                    "\My Documents\Northwind.sdf") Then
                    sqlCeRep.AddSubscription( _
                        AddOption.CreateDatabase)
                End If
 
                sqlCeRep.Synchronize()
 
                lblInfo.Text = "Synchronized."
            Catch ex As SqlCeException
                lblInfo.Text = ex.Message
            Catch ex As Exception
                lblInfo.Text = ex.Message
            End Try
 
        End Using
 
    End Sub
 
End Class

 

Kode di atas akan melakukan replikasi data yang sifatnya bidirectional (dua arah). Internet url diisi dengan url sql server agent, publisher diisi dengan nama server database, publishersecuritymode diisi dengan db authentication karena menggunakan sql server user untuk terhubung ke database, publisherlogin diisi dengan sql user begitu juga dengan passwordnya di properti publisherlogin, publication diisi dengan nama Local Publication yang telah dibuat sebelumnya, subscriber diisi dengan nama sembarang dan tentunya ini dapat digunakan untuk mengidentikasikan subcriber yang melakukan replikasi, subscriberconnectionstring diisi dengan lokasi file database yang nantinya akan digunakan dan disimpan di device.

Kode berikutnya yaitu melakukan pengecekan keberadaan file database tersebut, apabila file tersebut belum ada maka kita bisa create langsung database dari back end database dengan object-object seperti table atau view yang telah didefinisikan di Articles Publication. Selanjutnya kode tersebut akan melakukan sinkronisasi data terhadap perubahan data di lokal device maupun perubahan data di database back end.

  • Jalankan windows mobile device center dan lakukan setting koneksi menjadi DMA (Direct Memory Access) :

  • Jalankan aplikasi mobile tersebut dari visual studio, pilih windows mobile emulator yang ingin digunakan (disini saya menggunakan Windows Mobile 6.5 Professional Potrait QVGA Emulator), lakukan koneksi dan cradle dari Device Emulator Manager :

  • Ubah setting koneksi di Windows Mobile menjadi My Work Network.
  • Klik button Synchronize :

Data telah sukses di sinkronisasi. Karena proses sinkronisasi tersebut baru dilakukan pertama kali maka database akan di create beserta object table atau view dan recordnya. Disini saya tidak akan menjelaskan tentang bagaimana caranya melakukan manipulasi data di local database sql server yang ada di mobile device. Untuk melakukan testing merge replikasi pada data yang sudah diubah baik itu di local database maupun di back end database saya akan menggunakan Query Analyzer yang sudah terdapat di device.

  • Buka Query Analyzer 3.5 di mobile device dan koneksikan ke file database Northwind.sdf yang telah di create dari hasil proses sinkronisasi.

  • Ketikkan perintah sql untuk membaca semua data customer di database sdf. Query di ketikkan di bagian tab SQL dan hasilnya dapat dilihat di bag tab Grid :

  • Tambahkan data baru ke file sdf tersebut dengan menggunakan Query Analyzer :

  • Lakukan sinkronisasi dengan melakukan klik button Synchronize Data. Proses sinkronisasi untuk yang kedua kali dan seterusnya tidak akan membuat database sdf namun hanya akan melakukan merge replikasi terhadap data-data yang berubah baik itu di database lokal maupun back end database.
  • Buka SQL Server 2008 Management Studio dan lakukan select semua data di table customer. Hasil dari penambahan data yang telah di sinkronisasi dari mobile device akan dilihat hasilnya seperti pada gambar berikut ini :

  • Lakukan penambahan data customer baru di Management Studio tersebut :

  • Lakukan kembali sinkronisasi data dari mobile device, kemudian buka kembali Query Analyzer di mobile device yang belum ditutup aplikasinya dan lakukan query semua data customer di database Northwind.sdf :

Data yang ditambahkan dari backend database akan di sinkronisasikan ke database lokal. Ok…sampai disini dulu rangkaian terakhir dari artikel SQL Server CE Merge Replication


[Comments]
Hendra Wijaya  Aug/04/2011 04:56:14 :

Pak Rully,

 

Bagaimana caranya menambahkan emulator SDK 6 ke dalam deploy di Visual studio 2008 Pak ?

 

Thanks

Rully  Aug/04/2011 11:48:38 :

Hendra > Terlebih dahulu install Windows Mobile 6 SDK di sini : http://www.microsoft.com/download/en/details.aspx?id=6135

Hendra Wijaya  Aug/05/2011 09:50:01 :

Pak Rull,

Saya sudah install WM 6 SDK nya pak.. saya sudah install yang professional.

Bagaimana langkah selanjutnya ?

Rully  Aug/05/2011 10:02:22 :

Hendra > Tinggal di jalankan saja sesuai dengan langkah yang di atas mas Hendra.

Hendra Wijaya  Aug/05/2011 02:14:25 :

Pak Rully,

waktu saya deploy hanya muncul pilihan emulator yang SDK 5, SDK 6 tidak muncul walaupun saya sudah install,

 

bagaimana pak?

 

Thanks

Ajie Wibowo  Aug/16/2011 12:45:42 :

pak, script untuk event click button syncronization dalam bahasa C# gimana pak?
mohon bantuannya...thx

Rully  Aug/16/2011 01:11:38 :

Ajie > Di internet sudah banyak tool untuk converter bahasa mas :)

bagus  Aug/16/2011 07:32:29 :

pak rully,bagaimana cranya koneksi database yang ad dilocal,,,?

mksh,,

yanna  Aug/17/2011 03:38:23 :

pak bagaimana caranya singkronisasi data dari sql server 2008 ke sql CE 2005

thank

Ajie Wibowo  Aug/19/2011 01:33:42 :

Saya udah coba tutorial di atas, tapi pas menekan tombol "Synchronize Data", labelnya muncul tulisan "SQL Server Compact encoutered problems when creating the database."
Kira-kira errornya kenapa ya Pak?
thx

Gde Muriarka  Sep/18/2012 09:16:38 :

mau share juga pak

http://muriarka.wordpress.com/2012/09/17/koneksi-emulator-windows-mobile-dengan-sql-server-sesion-2/

ENDRO CPL  Feb/04/2015 05:16:32 :

terima kasih pak rulllyyyyyy ini yang selama ini saya inginkan.....sangattt membantu saya..hatur nuhunmmm.....


[Write your comment]
Name (required)
Email (required-will not published)
 
Comment

3751
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Microsoft Certified Trainer | IT Trainer at Native Enterprise | IT Consultant | Software Developer | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.
[Read More...]
Top Download 
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 6083 times  
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 4689 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 3554 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 3324 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 2706 times  
Links 
Certifications 
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News 
© Copyright 2006-2016   Rully Yulian MF   All rights reserved.