我们知道Delphi的TTable、TQuery和TStoredProc部件都有个RecNo属性,它是当前记录在数据集(dataset)中的记录号。不过,这个属性只有对于dBASE和Paradox才是有意义的,而对于MS SQL Server它总为-1。这是因为记录号是个xBASE的概念,而对于大多数SQL服务器来说,都没有概念,通常一个记录在客户机查询结果的顺序号并不是该记录在当前服务器上记录的记录号(这里的记录号是按xBASE的概念)。所以直接让MS SQL Server 返回一个记录号是不可能的,只能根据实际需要采用一些变通的办法。例如,如果需要一个唯一的表示记录的标志,可以考虑使用数据库的主索引的值,因为MS SQL Server 不允许有两个记录有相同的主索引值。或者采用商品的编号、人的身份证号。如果采用循环顺序访问记录,那么循环变量也许最接近于记录号。由于你没有说明具体的用途,我们也只能提出这些建议供你参考。
|