Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kdb 将表发布回tickerplant_Kdb - Fatal编程技术网

Kdb 将表发布回tickerplant

Kdb 将表发布回tickerplant,kdb,Kdb,我试图直接从实时引擎发布一个表。基本上,我有一个实时引擎,它连接到tickerplant,订阅表的原始版本,并添加一些新列。现在我想把这个表的增强版本推回到tickerplant。我有一个pub函数,它以以下方式推送表格: neg[handle](`.u.upd;`tablename;tabledata) 问题是我得到了一个类型错误。我查看了表的模式,它们略有不同 meta table1 c | t f a ----------------| ----- time

我试图直接从实时引擎发布一个表。基本上,我有一个实时引擎,它连接到tickerplant,订阅表的原始版本,并添加一些新列。现在我想把这个表的增强版本推回到tickerplant。我有一个pub函数,它以以下方式推送表格:

neg[handle](`.u.upd;`tablename;tabledata)
问题是我得到了一个类型错误。我查看了表的模式,它们略有不同

meta table1
c               | t f a
----------------| -----
time            | p
sym             | s
col1            | c
col2            | s
col3            | i

meta table2
c               | t f a
----------------| -----
time            | p
sym             | s
col1            | C
col2            | s
col3            | i

资本
C
很可能就是问题所在。但是,我不能用大写字母在tickerplant中加载模式。你知道我该怎么做吗

您可以使用泛型列表类型定义架构,它将从第一次插入中获取其类型

tab:([] col1:`int$();generic:();col3:`$())

另一个问题是,您的tickerplant可能希望将一个列表(列表)发送到其.u.upd,而不是发送给它的表,因此您可能希望在发送前对表进行
值翻转。(请注意,如果第一列不是时间戳,tickerplant将尝试预先添加时间戳)

您可以使用泛型列表类型定义模式,它将从第一次插入中获取其类型

tab:([] col1:`int$();generic:();col3:`$())

另一个问题是,您的tickerplant可能希望将一个列表(列表)发送到其.u.upd,而不是发送给它的表,因此您可能希望在发送前对表进行
值翻转。(请注意,如果第一列不是时间戳,tickerplant将尝试预先添加时间戳)

元表中的大写字母C是嵌套传入数据的结果。要解决这个问题,您应该用一个非类型化的空列表声明模式

table2:([] time:`timestamp$();sym:`$();col1:();col2:`$();col3:"I"$())
因此,在输入结果之前,其元数据为:

q)meta table2
c   | t f a
----| -----
time| p
sym | s
col1|
col2| s
col3| i
然后将对其进行更新,以匹配表中的第一个条目

此外,.u.upd要求输入不是表而是列表列表,这可以解决 使用:


元表中的大写字母C是嵌套传入数据的结果。要解决这个问题,您应该用一个非类型化的空列表声明模式

table2:([] time:`timestamp$();sym:`$();col1:();col2:`$();col3:"I"$())
因此,在输入结果之前,其元数据为:

q)meta table2
c   | t f a
----| -----
time| p
sym | s
col1|
col2| s
col3| i
然后将对其进行更新,以匹配表中的第一个条目

此外,.u.upd要求输入不是表而是列表列表,这可以解决 使用:


嘿,谢谢!这就是我要找的。但是,除非我正在丢失数据,否则没有必要使用
值flip tabledata
。事实上,它甚至不起作用。我想我们的upd功能是用来处理98型通过手柄进入的。嘿,谢谢!这就是我要找的。但是,除非我正在丢失数据,否则没有必要使用
值flip tabledata
。事实上,它甚至不起作用。我认为我们的upd功能是用来处理通过手柄的98型。