首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在YottaDB中实现MUMPS子例程的问题

在YottaDB中实现MUMPS子例程的问题
EN

Stack Overflow用户
提问于 2021-09-16 15:23:39
回答 1查看 57关注 0票数 0

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

代码语言:javascript
复制
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是

代码语言:javascript
复制
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命令、子例程、函数等?

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 14:37:13

这段代码应该可以工作,在我的系统上也可以。您的ZLINK命令中有一个拼写错误,应该是

当你想要启动probe2.m时,输入"probe2“

我猜你在错误的地方有一个空格字符,或者空格太多了。记住: mumps系列通常是这样构建的:

代码语言:javascript
复制
label<space(s) or tab>command<one space>parameter<one space>command<one space>parameter...

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

代码语言:javascript
复制
FOR I=1:1 QUIT:I=10  WRITE I,!

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69211151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档