用ON error do <过程名> 后系统经常报错如何处理
我弄了一个WEBservice,有几个问题请教各位大神:1.没有错误处理转移前,客户端没有报错,在客户端用ON ERROR DO ErrorProc 后经常报错,不知如何解决?以下是错误处理代码:
*******************************
* 名称: ErrProc *
* 功能: 系统错误处理 *
*******************************
PROCEDURE ErrProc
LOCAL cError
IF AERROR(aErrArray)<1
RETURN
ENDIF
IF nErrTimes < 10
nErrTimes = nErrTimes + 1
RETRY
ELSE
nErrTimes = 0
ENDIF
DO CASE
CASE aErrArray(1)=1427
MESSAGEBOX(aErrArray(2)+CHR(10)+aErrArray(3)+CHR(10)aErrArray(4)+CHR(10)+"错误号:"+ALLTRIM(STR(aErrArray(1))),0+16,"错误")
CASE aErrArray(1)=1429
IF MESSAGEBOX("无法连接服务器, 请检查网络。"+CHR(10)+aErrArray(2)+CHR(10)+aErrArray(3)+CHR(10)+aErrArray(4)+CHR(10)+"错误号:"+ALLTRIM(STR(aErrArray(1))),5+16,"错误") = 4
RETRY
ELSE
DO QuitProc
ENDIF
CASE aErrArray(1)=1526
MESSAGEBOX(aErrArray(2)+CHR(10)+aErrArray(3)+CHR(10)aErrArray(4)+CHR(10)+"错误号:"+ALLTRIM(STR(aErrArray(1))),0+16,"错误")
OTHERWISE
cError = ALLTRIM(STR(aErrArray(1)))+CHR(10)+aErrArray(2)
IF !ISNULL(aErrArray(3))
cError = CHR(10) + cError + "参数指定错误:"+aErrArray(3)
ENDIF
IF !ISNULL(aErrArray(4))
cError = CHR(10) + cError + "工作区号:"+ALLTRIM(STR(aErrArray(4))
ENDIF
IF !ISNULL(aErrArray(5))
DO CASE
CASE aErrArray(5)=1
cError = CHR(10) + cError + "数据插入错误。"
CASE aErrArray(5)=2
cError = CHR(10) + cError + "数据更新错误。"
CASE aErrArray(5)=1
cError = CHR(10) + cError + "数据删除错误。"
ENDCASE
IF MESSAGEBOX(cError,5+16,"错误") = 4
RETRY
ELSE
TABLEREVERT(.F.,aErrArray(4))
RETURN
ENDIF
ELSE
MESSAGEBOX(cError,0+16,"错误")
ENDIF
ENDCASE
RELEASE aErrArray
RETURN
2.我建了一个表单,表单的数据环境均用CursorAdapter,在INIT给各个CA进行初始化,数据来源为XML,将子表用表格(Grid)进行编辑,表格控件中用VALID控件修改其它字段,并采用行缓冲方式更新WebService的SQL数据库,现在问题是,编译前进行调试时,发现表格的第一条记录可以正常处理,所有的VALID都运行正确,也能处理相关数据库的相关表,但再加入第二条记录时,发现所有的VALID都不运行,但编译后可以运行。不知为什么?我检查所有代码,没有发现控件重新绑定的情况,而且我把非更新字段的修改状态设定为“没有编辑过”也不能解决该问题。
3.请教各位大神,如何设定soap的Delay的值,因为现在我服务器网络不给力,是铁通用花生壳动态域名的,现在速度很慢,经常报无法连接的情况,我想延长等待时间,谢谢各位。