2014-10-08 79 views
0

将Symfony与Sql Server一起使用,从我读到的内容看来,与数据库的连接似乎并不稳定。订购时发生SQL Server错误 - Symfony2

只要我使用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在网上发现更正,但没有成功。

你有什么想法吗?

Thx!

编辑:

这个bug似乎涉及到分页程序与第二个参数为true。将它传递给false,我没有错误

+0

好吧,你看了例外呢?很明显,您在错误的上下文中使用ORDER BY:ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中是无效的,除非还指定了TOP,OFFSET或FOR XML, – kix 2014-10-08 07:50:03

+0

好的,但这个查询是由教条生成的。我的第一个代码块对我来说似乎是正确的...... – Neufman 2014-10-08 07:52:49

+0

那么,代码*可能是正确的,但您使用的底层存储似乎不允许排序。 – kix 2014-10-08 08:12:12

回答

0

dctrn_result是派生表。从错误消息中,您不能使用订单。我不知道symfony2,但去数据库引擎的代码是无效的。

  • Craftydba