【发布时间】:2014-12-02 19:17:28
【问题描述】:
将 Symfony 与 Sql Server 一起使用,根据我的阅读,与数据库的连接似乎不稳定。
一旦我使用 orderBy 方法,我就会得到一个错误:
这是一个例子:
$qStores =
$this->getManager()
->createQueryBuilder()
->select('rpdv')
->from('MainBundle:PointDeVenteReference', 'rpdv')
->andWhere( 'rpdv.partenaireClient = :id_partner ' )
->setParameter( 'id_partner', $this->getUser()->getPartenaire()->getIdPartenaire() )
->orderBy( 'rpdv.idPointDeVenteReference' , 'DESC' )
->setFirstResult( 0 )
->setMaxResults( 30 );
$stores = new Paginator( $qStores, FALSE );
还有错误:
An exception has been thrown during the rendering of a template ("An exception occurred while executing
'SELECT DISTINCT TOP 30 id_point_de_vente_reference0
FROM ( SELECT p0_.id_point_de_vente_reference AS id_point_de_vente_reference0,
p0_.reference AS reference1,
p0_.date_derniere_modification AS date_derniere_modification2,
p0_.blocage AS blocage3
FROM point_de_vente_reference p0_
WHERE p0_.id_partenaire_client = ?
ORDER BY p0_.id_point_de_vente_reference DESC ) dctrn_result
ORDER BY id_point_de_vente_reference0 DESC'
with params [2829]:SQLSTATE[42000]:
[Microsoft][SQL Server Native Client 11.0][SQL Server]
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions,
unless TOP, OFFSET or FOR XML is also specified.") in MainBundle:Default:store/list.html.twig at line 79.
我试图用网上找到的更正来更改类 SQLServerPlatform,但没有成功。
你有什么想法吗?
谢谢!
编辑:
此错误似乎与第二个参数为 true 的分页器有关。传给false,我没有错误
【问题讨论】:
-
嗯,你读过异常吗?它显然表明您在错误的上下文中使用
ORDER BY:ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified -
好的,但是这个查询是由教义生成的。我的第一段代码对我来说似乎是正确的......
-
好吧,代码可能是正确的,但是您使用的底层存储似乎不允许排序。
-
“底层存储”是什么意思? SQL server 很高兴地接受了“Order by”。问题似乎在于该学说构建了一个错误的查询。
-
您不能将
ORDER BY与视图、派生表、子查询等一起使用。这是您的SQL 服务器返回的错误。你试过追查它的起源吗?
标签: sql-server symfony doctrine dbal