此代码有什么问题。我在插入新序列号之前检查数据库中是否有可用记录。当我输入任何记录是否可用时,它会抛出一条错误消息:
“表达式无效”。 (PowerBuilder Classic 12.5和SQL Server 2008)
If This.GetColumnName() = "serial_No" Then
long ll_serial
ll_serial=dw_newrecord.find(data, 1, dw_newrecord.rowcount())
if ll_serial>0 then
messagebox("validation error", "The record already exists")
return 1
end if
End If
答案 0 :(得分:1)
您的data
表达式可能存在语法错误。它可能是一些错误的代码 - 如缺失的引号 - 或者列名称不正确。
为了帮助调整过滤器或查找表达式,您可以通过行/过滤器菜单在数据窗口设计屏幕中对其进行测试。
长期编码设计的更好解决方案是将Datawindow Debug Machine(由我的同事制作)整合到您的项目中。它是一个非常有用的工具,用于创建数据窗口表达式,用于查找,过滤以及在数据窗口中创建/修改动态对象。虽然正确地与项目的数据窗口祖先接口,但它可以帮助过滤器并找到像这里的表达式错误。
编辑:正如RealHowTo注意到的那样,该工具已经更新。这是current latest version(但是没有更新的演示截屏视频)。