Kdb 为什么我在尝试.Q.dpft时出现排名错误?

Kdb 为什么我在尝试.Q.dpft时出现排名错误?,kdb,Kdb,我创建了一个新的仅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"; ta

我创建了一个新的仅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]; 
  };
func{[]
var1:;
var2:;
saveToDB[var1;var2];
};
saveToDB{[var1;var2]
路径:`$':/path/to/db”;
表1:var1;
表2:var2;
显示“保存表1”;
.Q.dpft[path;.z.d;`sym;`tablename 1];
显示“保存表2”;
.Q.dpft[path;.z.d;`sym;`tablename 2];
};
我做错了什么?我确实在日志中看到了第一个show字符串,然后它出错了。 我将结果输入变量var1和var2。我打电话给func[]

另外,我试着制作tableName1和tableName2的全局表,但仍然有同样的问题


感谢你的指点。谢谢

我还建议运行该函数,并在saveToDB的开头添加一个中断符,然后查看
var1
var2
的外观。这可能是由表的格式引起的问题。您还可以在
saveToDB
函数的开头包括此行来检查这一点

i、 e

如果您使用的是日志,我还建议您使用
-1
而不是
show
,因为重定向命令行的输出是常见的做法


您还可以选择另一种保存表格的方法。例如,使用
.Q.en
枚举列(如有必要),并使用
.Q.par
将表保存为八字表

“它出错了”,所以,为什么你没有引用你的帖子中的全部错误?Q.par没有把数据保存为八字表。设置用于显示数据的函数。Q.par返回分区数据库中一个分区的位置。我相信亚历克斯打算使用.q.PAR和SET来保存表SpRead。类似于以下代码:
(`$(string.Q.par[`.;.z.d;`tablename1]),“/”)set.Q.en[`.]tablename1
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 `.;