我们使用AX 2012 R3。
Temporary TempDB Tables [AX 2012]声明 AOT 下的查询> 查询可以将TempDB表作为数据源引用。
我的问题:AOT查询如何读取写入TempDB表数据源的记录?
我遇到的问题是AOT查询似乎无法从我的TempDB表数据源中读取任何记录:
我在AOT下定义了一个TempDB表,并且我还创建了一个AOT查询,该查询将此TempDB表作为数据源引用。
我编写了一个方法来填充TempDB表,然后编写一个while queryRun
循环,与上面提到的AOT查询对象一起传递。但是,循环体从未运行过。
我确保代码编写正确:如果我将TempDB表更改为Regular表,则输入循环体并正确生成结果。
(或者,我写了while select
而不是AOT查询的queryRun
。while select
循环生成正确的结果,无论连接表是TempDB还是Regular。 但是,我想允许添加其他范围。while select
循环似乎无法执行此操作。因此,我在while queryRun
之后使用SysQuery::findOrCreateRange
循环。 )
上面的链接还指出 TempDB表仅在实例化它的方法的范围内存在。填充TempDB表和我写的循环都是在同一个方法中完成的。但是,由于我从未实例化一个表,实例化它(TempDB表)是什么意思?
编辑 s:1)我还尝试在while queryRun
循环之后编写一些代码,以查看TempDB表中是否有记录,并发现记录仍然存在于TempDB表。
2)为了澄清,while queryRun
循环意味着以下
QueryRun queryRun = new QueryRun(query);
while(queryRun.next()){...}
上面query
实例化中的queryRun
是一个AOT查询对象。
答案 0 :(得分:4)
填写NULL
表后,您需要通过TempDb
然后执行queryRun.setRecord([TempDb Table])