我创建了一个新的仅限HDB的kdb,并且有一个用于填充表中数据的脚本。
func{[]
var1:<some logic that calls other functions and brings back results>;
var2:<same as above>;
saveToDB[var1;var2];
};
saveToDB{[var1;var2]
path:`$":/path/to/db";
tableName1:var1;
tableName2:var2;
show "saving table1";
.Q.dpft[path;.z.d;`sym;`tableName1];
show "saving table2";
.Q.dpft[path;.z.d;`sym;`tableName2];
};
我在这里做错了什么?我确实看到日志中的第一个显示字符串,然后它出错了。 我确实得到了变量var1和var2的结果。我叫func []。
P.S我尝试制作tableName1和tableName2全局,但仍然有同样的问题。
欣赏任何指针。谢谢!
答案 0 :(得分:0)
我还建议运行该函数并在saveToDB的开头添加一个break,看看var1
和var2
的样子。这可能是由表格格式引起的问题。您还可以通过包含此行来检查saveToDB
函数开头的内容。
即
if[any 98<>type each(var1;var2);:-1"ERROR: not tables"];
如果表格正常,请尝试替换
tableName1:var1;
tableName2:var2;
`tableName1 set var1;
`tableName2 set var2;
[...other code...]
delete tableName1,tableName2 from `.;
如果您使用日志,我还建议使用-1
而不是show
,因为通常的做法是从命令行重定向输出。
您还可以选择另一种保存表格的方法。例如,使用.Q.en
枚举列(如果需要)并使用.Q.par
将表保存为splayed表。