Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
796 views
in Technique[技术] by (71.8m points)

多行命令一起执行出错,单独执行正常

image
如图所示,三行命令如果选中一起执行就出错,每行命令单独选中执行就正确.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

一般的脚本语言都是逐条解释执行的。但这容易导致一个问题,运行时出现语法错误。所以DolphinDB database运行时,会对一段脚本先进行整体解析,如果有语法问题,譬如变量未定义,函数不存在,函数参数个数不正确等问题,直接报syntax error。如果没有问题,开始逐条执行。DolphinDB不一样,是先解析所有脚本,列出所有变量。然后再开始运行。

问题中的第一个语句undef all,是一个函数调用,它是在运行时执行,而不是在解析时执行。所以在运行的时候,把定义的变量全部删除了,导致运行后面的语句时出现异常。可以用go语句把程序分成多个代码块,让系统会分段解析并执行代码块。

undef all 
go;
login(`admin,`123456)
dbDate=...

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...