当我执行@DbLookup时,在某些情况下我会收到错误
"this function is inappropriate for file system directories"
在Web上其他地方找到的文档指出,这可能是视图名称的拼写错误,但事实并非如此。其他建议指向视图名称中的无效字符。再次,并非如此。可能是什么问题?
答案 0 :(得分:1)
拥有超过20年的Lotus经验,我以为我已经看到了一切,但没有......我昨天第一次碰到了这个!
您在参数中传递的数据库路径有问题。它可能以“/".
结尾我在构建一个独立的测试用例时遇到了它,试图重现生产问题。我一次一个地将受影响的表格复制成一个新表格并进行测试,我收到了这个错误。
它是由@DbLookup代码导致的,它计算了目标数据库的路径和文件名,如下所示:
@DbLookup("Notes":"NoCache"; theServer : "MyFolder/" + theDatabase; etc., etc.
我没有将字段theDatabase
从生产表单复制到测试表单,因此它只是一个未初始化的值。这让我以“MyFolder /”作为参数,所以看起来我正在尝试对整个文件夹进行@DbLookup。从这个角度来看,错误信息实际上非常有意义。
答案 1 :(得分:0)
我有一段时间遇到这个问题,最后发现我正在使用服务器的层次结构,这似乎不受支持。将它变成缩写形式后,它就可以了。此外,出于某种原因,我必须先@Trim
然后@Text
才能使用它。最终解决方案是这样的:
_abbreviatedServerName := @Text(@Trim(@Name([ABBREVIATE]; _serverName)));
_result := @DbLookup("":"NoCache"; _abbreviatedServerName : _databaseName; _viewName; _key; _column; [FailSilent]);