专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Windows Mobile

PULL的错误怎么解决

发布时间:2010-05-30 00:47:06 文章来源:www.iduyao.cn 采编人员:星星草
PULL的异常如何解决
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当中加上呢?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: