4

我正在编写将数据库加载到特定路径并对其进行一些处理的 aq 脚本。db 的位置当前在脚本中是硬编码的,但我想将 db 路径作为参数传递并让它从变量中的路径加载。

目前它看起来像这样:

q) \l /path/to/dbDir        #Works

我发现 .Ql 应该让我们使用变量来执行此操作,所以我尝试在脚本中使用以下内容,

dbPath:`$.z.x 0
.Q.l hsym dbPath            #Fails

当使用参数 /path/to/dbDir 运行时,脚本总是会失败并出现一些不可读的内容,并且:

':/path/to/dbDir: No such file or directory

有人可以帮忙吗?

4

3 回答 3

5

\x ...总是等价于system"x ...",这是“我如何将变量传递给\命令问题”的一般解决方案

在你的情况下,你想要

system"l ",.z.x 0

(顺便说一句,我不认为.Q.l涉及\l代码,只涉及数据,所以不要尝试使用它来加载额外的 .q 文件)

于 2012-03-23T02:49:28.027 回答
4

.Ql是\l的同义词,它只接受一个参数,它不是一个 hsym,而是一个文件或目录名。

顺便说一句,不可读的东西是函数定义,然后是类型错误(因为它不希望出现 hsym)

于 2011-07-12T13:51:05.617 回答
2

好的,当我们尝试没有 hsym 的 .Ql 时,它似乎可以工作:

dbPath:`$.z.x 0
.Q.l dbPath
于 2011-07-06T11:13:10.837 回答