ms sql server 2000分页之后的内容为什么会都是一样的?

表waybill没有主键,数据库是ms sql server 2000的,会不会跟数据库有关系?

我自己手工写了控制器WaybillController,控制器中的部分代码:




$criteria=new CDbCriteria;

$criteria->select='airport';

$cnt = Waybill::model()->count($criteria);

$pages=new CPagination($cnt);

$pages->applyLimit($criteria);

$dataProvider=Waybill::model()->findAll($criteria);


$this->render('_list',array(

    'userList'=>$dataProvider,

    'pages'=>$pages,

));



_list.php中代码如下:




<?php foreach($userList as $n=>$post) : ?>

<tr>

<td><?php echo $post->airport ?></td>

</tr>

<?php endforeach ?>

<?php $this->widget('CLinkPager',array('pages'=>$pages)); ?>



最终所有的页面内容都是一样的

自己先顶一下!

$pages->PageSize = …

试了没有用的,如果不设默认的是一页10项

理论上应该还有个$pages->PageStart = intval($_GET[‘start’]); 我没有看过哈,分页必须的

没见到这个属性

[sql]

SELECT TOP 10 airport FROM [dbo].[haobang] [t]

SELECT * FROM (SELECT TOP 10 * FROM (SELECT TOP 20 airport FROM [dbo].[haobang] [t]) as [inner top table] ) as [outer top table]

SELECT * FROM (SELECT TOP 10 * FROM (SELECT TOP 30 airport FROM [dbo].[haobang] [t]) as [inner top table] ) as [outer top table]

[/sql]

以上是前三页的applyLimit函数里返回的sql语句,我在sql server 2000的查询分析器里执行了一下确实是结果都是一样的,不知道是sql server不支持offset还是,yii解析有点问题

也许是驱动的bug~