- VB.NET code
Private Sub MyPull(ByVal MyTable As String)'ExistTable表中存放PPC本地数据库的所有表格名称,MyTable为要PULL的表格 Dim rdaNW As New SqlCeRemoteDataAccess Dim dbEngine As New SqlCeEngine Dim connDB As New SqlCeConnection(strConnLocal) Dim cmndDB As New SqlCeCommand("SELECT * FROM ExistTable WHERE TableName='" + MyTable + "'", connDB) Dim drdrDB As SqlCeDataReader '判断本地数据库是否存在该表 connDB.Open() drdrDB = cmndDB.ExecuteReader() If drdrDB.Read = False Then MsgBox("该表不存在")'表格不存在,则先在MyTable里插入该表名,然后PULL With cmndDB .CommandText = "INSERT ExistTable(TableName) VALUES('" + MyTable + "')" .ExecuteNonQuery() End With Else MsgBox("表格存在!")'表格存在,则先删除本地表,然后PULL With cmndDB .CommandText = "DROP TABLE " + MyTable .ExecuteNonQuery() End With End If connDB.Close() Try With rdaNW .LocalConnectionString = strConnLocal .InternetUrl = strURL .InternetLogin = "" .InternetPassword = "" .Pull(MyTable, strSQL, strConnRemote, RdaTrackOption.TrackingOn) End With MsgBox("Pull OK!") Catch exSQL As Exception MsgBox(exSQL.Message) Finally rdaNW.Dispose() End Try End Sub
异常的出现:
1. 检查本地是否有该表,如果没有,则写入表名,如果有,则删除该表。(到这一步的状态果是,ExistTable有Mytable这个名字,但是本地数据库中实际上还没有MyTable),然后执行PULL操作,如果此时由于某种原因(比如网络链接不正常)导致PULL失败,即MyTable未下载到PPC上。程序结束。
2. 在第一次的基础上,如果再次运行程序就会出现异常了:
检查本地是否有该表,发现ExistTable有Mytable这个名字,于是误认为存在,试图执行删除操作,结果导致异常。
曾经尝试,把删除操作放在每一次PULL成功之后进行,发现还是有可能会出现异常的。
希望有经验的兄弟指教一下。多谢。
------解决方案--------------------
顶!
我也顺便打个广告,本人也有支持MAPINFO的.shp文件的地图的Windows mobile 5.0/6.0手机GIS地图软件,还有PC端的服务软件,可成套出售,可以完成以下功能:
1,通过GPRS上网连接后台服务端程序来实时传输在外工作的数据到后台数据库!
2,可以实时发回PDA的GPS信息,在后台地图上直接定位PDA用户的位置,也可以下发PDA的经纬度信息让PDA用户定位和跟踪其它PDA用户,了解自己与其它PDA的位置关系,起到定位和跟踪的作用!
3,可以发回PDA当前所在地名如在天河城附近等,实现在外面工作就知道在何时何地上班打卡的效果!
4,后台可以对PDA用户进行字管理,可以对在外面工作的PDA用户进行任务下发和任务管理如
PDA号码:13800138000
任务名称:测试线路
任务说明:主要是在天河北路一带的地下管线进行检测!
5,可以对PDA用户需要返回数据的属性进行后台配置,下发与管理如测试线路的属性模板:
//0-编辑属性(可多个) ; 1-下拉属性(可多个) ; 2-选择属性(可多个) ; 3-大文本编辑框(可以没有此属性,但有此属性时只能有一个) ; 4-列表属性(可以没有此属性,但有此属性时只能有一个)(属性0+属性1+属性2/2+属性2%2)<=28
name,名称,0,;beproject,所属项目,0,;type,类型,1,0:小-1:中-2:大;complete,完成,2,;remark,备注,3,;listbox,设备表,4,
6,可以实时上传文件到后台服务器,实时下载后台服务器的文件和实时更新PDA上客户端的系统!
7,可以实时采集和传输图像信息!
跟据您的需要,还可以增加其它功能!
------解决方案--------------------
1.其实就是个逻辑问题,先判断如果有,那么删除。再判断如果没有,那么创建。除非你想保留老的表。
------解决方案--------------------
你在FINALLY当中加上呢?