London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

SQL error with EntryQuery

Vote:
 

When running

// Query EntryQuery entryQ = new EntryQuery();
// Author UserAuthorCriterion authorC = new UserAuthorCriterion(); authorC.User = new UserCriterion(); authorC.User. authorC.User.ID = new IntegerCriterion(); authorC.User.ID.Value = dqcUser.Id; entryQ.Author = authorC;
// Given user's guestbook BlogCriterion blogC = new BlogCriterion(); blogC.ID = new IntegerCriterion(); blogC.ID.Value = dqcUser.Guestbook.Id; entryQ.Blog = blogC;

// Add OR group CriteriaGroup orGroup = new CriteriaGroup(); orGroup.AddCriterion(LogicalOperator.Or, authorC); orGroup.AddCriterion(LogicalOperator.Or, blogC); entryQ.AddCriteriaGroup(orGroup);
// Get result EntryCollection scEntryCollection = BlogHandler.GetQueryResult(entryQ, page, pageSize, out totalItems);

I get an exception with this message

Incorrect syntax near '('.  Incorrect syntax near 'entry0_'.

I used the SQL Server Profiler to look at the actual SQL, then replaced the parameters @p0 and @p1 with the values from the profiler. Running this query directly of course gave the same error, but I got it to execute if I added an "AND" in the code.

SELECT   TOP 2147483647 ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__,   COUNT(*) OVER() AS __hibernate_total_rows_nr__,    entry0_.intID as intID15_,   entry0_.intBlogID as intBlogID15_,   entry0_.strTitle as strTitle15_,   entry0_.strContent as strContent15_,   entry0_.strSenderIP as strSende5_15_,   entry0_.datTimeStamp as datTimeS6_15_,   entry0_.datUpdated as datUpdated15_,   entry0_.intNumComments as intNumCo8_15_,   entry0_.intImageGalleryID as intImage9_15_,  entry0_.datPublicationStart as datPubl10_15_,   entry0_.datPublicationEnd as datPubl11_15_,   entry0_.intAuthorID as intAuth12_15_    from tblStarCommunityBlogEntry entry0_, vwStarCommunityAuthor iauthor1_    where     (     (      (iauthor1_.intUserID IS NOT NULL  and       entry0_.intAuthorID=iauthor1_.intID)      AND      (       iauthor1_.blnAnonymous=0       AND /* added an AND here to make it work */       (        (         iauthor1_.intUserID=33          and          entry0_.intAuthorID=iauthor1_.intID        )       )        and        entry0_.intAuthorID=iauthor1_.intID      )     )     OR     (      (       (entry0_.intBlogID=281 )      )     )    )

Am I doing something wrong with the EntryQuery, or might this actually be a bug?

Best regards,
Mattias

#26297
Dec 01, 2008 18:13
Vote:
 

It sounds like this may be a bug.

Please report it at http://world.episerver.com/en/Support/Register-Support-Incident/  with the above information as well as product version.

 

Regards,

Håkan

#26314
Dec 02, 2008 9:24
Vote:
 
#26365
Dec 02, 2008 18:04
Vote:
 

Hi,

This is now reported in the Support system and verified as a bug.

//Tom

#26819
Dec 23, 2008 11:42
This thread is locked and should be used for reference only. Please use the Legacy add-ons forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.