使用分页从AX获取记录[AX 2009]
本文关键字:AX 2009 记录 获取 分页 | 更新日期: 2023-09-27 17:57:45
我试图一次从AX获取一定数量的记录。我想执行类似于的操作
SELECT * FROM (SELECT *, ROW_NUMBER() AS ROWNO
FROM TableName)
AS TableName WHERE ROWNO > startIndex
AND ROWNO <= endIndex;
目前,我正在从AX(使用.net业务连接器)获取所有记录:
axRecord.ExecuteStmt("select * from %1");
i = 0;
while(axRecord.Found)
{
if(i<startIndex)
{
i++;
continue;
}
// Perform operations
i++;
if(i==endIndex)
{
break;
}
}
有没有更好的方法只使用业务连接器来实现这一点?请帮助
在X++的内部SQL语法中,有一些关键字(firstOnly, firstOnly10, firstOnly100, firstOnly1000
)来限制将提取的行数。它可以与RecId字段组合,手动提取模拟分页的行组:
select firstonly10 inventTable // only fetch 10 rows
index hint ItemIdx
where inventTable.RecId > lastRecIdFetched // save last recId for each page
&& inventTable.itemId == itemId;
您在MSDN上有完整的select语句语法参考:
http://msdn.microsoft.com/en-us/library/aa656402.aspx