0

我正在使用 YottaDB 1.32。代码如下(在 Yottadb 中):

YDB>zedit "probes2" 

YDB>zlink "probes2"

我得到的错误如下:YDB-E-INVCMD,遇到无效的命令关键字 YDB-E-LABELMISSING,标签引用但未定义:block1 YDB-I-SRCNAM,在源模块 /home/test/.yottadb/r1 .32_x86_64/r/probe2.m

并且文件 probe2.m 是

do set i=100

 write i,!

 do block1

 write i,!

 halt

block1

 set i=i+i

 quit

顺便说一句,我正在关注 Kevin C. O'Kane 的视频。而且,我在 YottaDB 1.32 中使用 Kevin 的内容时遇到了严重问题。有人可以解释一下为什么会这样吗?或者,有什么好的资源可以让我学习实现 Mumps 命令、子例程、函数等吗?

4

1 回答 1

0

该代码应该可以工作,并且可以在我的系统上使用。您的 ZLINK 命令中有错字,应该是

ZLINK "probe2" 当你想启动probe2.m

我猜你在错误的地方有一个空格字符或空格太多。请记住:腮腺炎生产线总是这样构建的:

label<space(s) or tab>command<one space>parameter<one space>command<one space>parameter...

如果一行没有标签,它必须在第一个命令之前以空格或制表符开头。如果您使用不带参数的命令,则在下一个命令之前必须有两个空格。例子:

FOR I=1:1 QUIT:I=10  WRITE I,!

在后置条件 (I=10) 之后必须写入两个空格,否则“WRITE”被视为参数而不是新命令。

顺便说一句:第一行中的“do”只是一个标签,它之前没有空格。所以可能会产生误导。最好不要使用与命令拼写相同的标签。

于 2021-09-19T14:37:13.480 回答