以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]报错排查范围求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157067)

--  作者:foxtable-hg
--  发布时间:2020/9/30 9:59:00
--  [求助]报错排查范围求助
各位老师好,当报错提示\',\'附近有语法错误时,能讲一下主要排查范围么…看代码没看出来…关键是写了好多函数了,排查好费劲。

图片点击可在新窗口打开查看此主题相关图片如下:screenshot_20200930-095244_microsoft remote desktop.jpg
图片点击可在新窗口打开查看

请老师指点一下,谢谢各位老师。


--  作者:linyunu1
--  发布时间:2020/9/30 10:09:00
--  
勾选一下 【显示详细信息】  看看


--  作者:linyunu1
--  发布时间:2020/9/30 10:13:00
--  
1、写日志跟踪一下事件和函数的执行

1).项目事件BeforeShowErrorMessage在Foxtable捕获错误并即将显示错误信息前执行。
Functions.Execute("LogText",e.ex,e.Event)
e.Cancel = True

2).自定义函数logtext

Dim v  = Args(0)
Dim bu As new StringBuilder
bu.AppendLine(Format( Date.Now,"yyyy-MM-dd HH:mm:ss.ffff")) \'记录出错时间
If Args.length > 1 Then
    bu.AppendLine("事件/函数: " & Args(1)) \'记录出错的事件或者函数
End If
If Typeof v Is Exception Then \'如果是Exception的异常类型,则递归获取所有的异常堆栈
    Do While v IsNot Nothing
        bu.AppendLine( v.Message &  vbcrlf & v.StackTrace)
        v = v.InnerException
    Loop
Else \'其它情况只能传入错误的文本内容
    bu.AppendLine(v)
End If
Output.Logs("AppLogging").Add(bu.ToString)
Output.Logs("AppLogging").Save(ProjectPath & "Mmsglog.txt",True) \'日志位于当前项目目录里
Output.Logs("AppLogging").Clear

--  作者:foxtable-hg
--  发布时间:2020/9/30 10:58:00
--  
谢谢老师,详细信息也就是这一句…
--  作者:有点蓝
--  发布时间:2020/9/30 11:14:00
--  
这种可能和代码无关。检查外部表管理中的条件、列属性里设置的条件、查询表里的条件/sql等等
--  作者:foxtable-hg
--  发布时间:2020/9/30 11:48:00
--  
谢谢蓝老师,我再检查数据表,估计是有个视图出问题了