PULL方法同步数据应用一例
Public Sub createDB()
If Not File.Exists(ProgPath & "sddb.sdf") Or File.Exists(ProgPath & "sdinfodb.sdf") Then
File.Delete(ProgPath & "sdinfodb.sdf")
Dim sqlEngine As New SqlCeEngine("Data Source=/Program Files/hht/sdinfodb.sdf")
sqlEngine.CreateDatabase()
End If
Dim toHHT As String = elemSetting(0).Item("hht").InnerText
Dim varIP As String = elemSetting(0).Item("ip").InnerText
Dim strCon As String
Dim rda As SqlCeRemoteDataAccess = Nothing
Dim LocalConnectionString As String = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=/Program Files/sdinfodb.sdf"
strCon = "Provider=sqloledb;Data Source=" & varIP & ";Initial Catalog=mydb;user id=sa;password=123"
'如果在 OLEDBConnectionString 中设置 INTEGRATED SECURITY="SSPI" 以使用 Windows 身份验证,则 Internet 用户必须具有读取 SQL Server 表的权限。
'strCon = "Provider=sqloledb;Data Source=" & varIP & ";Initial Catalog=mydb;Integrated Security=SSPI;"
'将SQL SERVER 2000的表同步到Windows CE的数据库里
Try
rda = New SqlCeRemoteDataAccess
rda.InternetUrl = "http://" & varIP & "/serviceWing/sscesa20.dll"
rda.LocalConnectionString = LocalConnectionString
rda.InternetLogin = ""
rda.InternetPassword = ""
'PULL的第四个参数是设置被同步的表是否有主健,RdaTrackOption.TrackingOffWithIndexes-没有,RdaTrackOption.TrackingOnWithIndexes-有
rda.Pull("tabList", "SELECT * FROM tabList where bname LIKE '%" & name & "%';", strCon, RdaTrackOption.TrackingOffWithIndexes, "Error Table")
rda.Pull("tabInfo", "SELECT * FROM tabInfo;", strCon, RdaTrackOption.TrackingOffWithIndexes, "Error Table")
rda.Dispose()
MsgBox("Create Success!",MsgBoxStyle.Information)
Catch ex As Exception
MsgBox("Create Error!", MsgBoxStyle.Critical)
Finally
rda.Dispose()
End Try
End Sub