使用分页从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;
 }
}

有没有更好的方法只使用业务连接器来实现这一点?请帮助

使用分页从AX获取记录[AX 2009]

在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