老师好, 我编写了一个表达式用于计算满足条件的数量:
Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(*)", FL1) '计划入库行
筛选条件表达式:
FL1 = "SalesOrder='" & SOLine & "' And LineNo='" & LineNo1 & "' and BomLevel Like '" & BL & ".%' and Completed='C'"
用Output.show(FL1)
SalesOrder='ISO1932017' And LineNo='17' and BomLevel Like '0.%' And Completed= 'C'
每次运行均出现如下错误:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
Incorrect syntax near the keyword 'LineNo'.
我仔细检查应该没有语句错误呀, 我删除目录 "bin" 后重新启动,仍然报错, 我用同样条件直接进行加载, 使用正常, 但主要写入SQLcompute 中就有问题, 能否请老师帮我看一下!
LineNo是什么类型的列?整数?
试试
Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(SalesOrder)", FL1)
LineNo是字符型字段,(下图)
此主题相关图片如下:question2.jpg
我更换了 Q_Ps = DataTables("WOReleaseSchedule").SQLCompute("Count(SalesOrder)", FL1) 语句执行, 仍然报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
Incorrect syntax near the keyword 'LineNo'.
语句执行用Output.show(FL1),类似结果:
ISO19530|27 BL:0 FL:SalesOrder='ISO19530' And LineNo='27' and BomLevel Like '0%' And Completed= 'C'
百思不得其解!
如果是SqlServer,跟踪一下后台数据库,看看执行了什么sql
我在程序中仔细排查没有发现问题, 在表结构中也没有发现异常, 然后试着在SQL Server Management Studio 检查其字段信息时发现 LineNo 前后有方括号存在, 我不知道是如何产生的, 试图删除方括号却发现无效,删除后又自动添加了:
终于发现这个字段名是系统保留的名称, 我修改了这个名称即可, 但没有想到接下来所有与此有关的程序都需要一样修改((# ̄~ ̄#)
只是我好奇,系统为什么不能有所提示?
问题算基本解决了
不要改列名的,在查询条件里也加上中括号即可
FL1 = "SalesOrder='" & SOLine & "' And [LineNo] ='" & LineNo1 & "' and BomLevel