PULL的异常如何解决

yinzs 2008-10-27 10:59:59
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成功之后进行,发现还是有可能会出现异常的。

希望有经验的兄弟指教一下。多谢。
...全文
60 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧