现在位置:中国IDC吧>数据库>SQL server数据库> 文章内容

RDA实现SQL CE与MS SQL间数据存取

收藏发布 来源:天极 作者:中国IDC吧 更新日期:2008-09-30 点击:

CurrentLogonUserID = dtLocalUserInfo.Rows(0).Item("emp_id").ToString
CurrentLogonUserName = dtLocalUserInfo.Rows(0).Item("emp_name").ToString
Return True
Else '验证失败,返回false
Return False
End If

  登录成功后根据登录用户名只返回其相关的任务记录,并将任务记录保存在名为” itemlist”的表中: rda.Pull("itemlist", "Select * from itemlist where emp_id='" EMPId "'", RemoteConnString, RdaTrackOption.TrackingOnWithIndexes)

  由于RDA不会保持记录锁,push操作会无条件的将所有数据改动都应用到SQL Server中,所以容易引起当前数据库的其他用户的更新数据的丢失。我们需要按照一定的筛选条件过滤我们感兴趣的记录,以便获取唯一且不同于其它用户返回的记录集。TrackingOnWithIndexes说明在PPC上对任务状态的更改将会被跟踪,在后面的同步操作时会根据跟踪的变化将更改更新到远程数据库中。

  任务记录成功获得后,我们隐藏登录用Panel而将操作用Panel置于顶层用于对任务记录的添加、状态更新、删除已经同步操作等。 9 1 2 3 4 :   本文介绍如何利用 RDA(RemoteDataAccess远程数据存取)实现掌上电脑Pocket PC(简称PPC)上的SQL Server CE 2.0与桌面SQL Server 2000数据库间的数据存取。我们将采用Visual Basic .Net 2003进行智能设备端的程序开发。

  用listview控件来显示任务记录,我们遍历返回的itemlist表,每一条记录创建一个ListViewItem,并添加到listview中以便显示: While Reader.Read
Dim ls As New ListViewItem(Reader.Item("ID").ToString)
ls.SubItems.Add(Trim(Reader.Item("TaskName").ToString))
ls.SubItems.Add(Trim(Reader.Item("TaskContent").ToString))
ls.SubItems.Add(Reader.Item("Finished").ToString)
lvItemList.Items.Add(ls)
End While

  向SQL Server CE表添加、删除和更新操作同桌面数据库操作相似,例如添加操作: selectCMD.CommandText = "insert into itemlist (ID,TaskName,TaskContent,Finished,EMP_ID)
values (" _
TextBox1.Text "," _
"'" taskname "'" "," _
"'" taskcontent "'" "," "0" "," "'" CurrentLogonUserID "'" ")"
selectCMD.CommandTimeout = 30
conn.Open()
selectCMD.ExecuteNonQuery()

  对智能设备本地表进行更新后还需要将改动保存到远程SQL Server中去,我们使用如下代码:

  rda.Push("itemlist", RemoteConnString, RdaBatchOption.BatchingOn)

  将更改成批推入远程SQL Server中,注意:只有跟踪的提取表才可以执行Push操作。运行在实际设备上的图示如下:

  

  该程序成功运行在Windows XP SP2和Dell X3i(Pocket PC 2003)环境下。



上一页 1 2 3下一页
收藏此页到网摘/书签:
所有评论

评论列表

用户名: 新注册) 密码: 匿名评论