好,我们开始。
使用Kentico 11 / Portal Engine(无修补程序)
有一个包含“仅内容”页面类型的表。重要的一个字段是日期和时间字段。
我试图从该表中获取与特定月份和年份条件匹配的行。例如,给我所有记录Month=2 and Year=2018
。这些参数将通过查询字符串传递
我有一个自定义的存储过程,我想接收两个int(或字符串)参数,然后返回所有匹配行的集合。
我正在使用RepeaterWithCustomQuery来调用过程并处理结果行。如您所见,查询字符串参数分别命名为“ year”和“ monthnumber”。
查询
Me.PR.PREDetailSelect
在此配置中设置我的Webpart时,出现以下错误:
在我的查询中,我尝试过:
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##; @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##, @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY## @Year = ##WHERE##<br/>
任何帮助将不胜感激(提前感谢Brendan)。最后,当我尝试更改名称以保护无辜者时,不要太着迷于特定对象的名称。
答案 0 :(得分:0)
这些macros for queries不能与stor proc一起使用。如果您不传递任何内容,系统将生成此错误条件1 = 1,以免破坏如下所示的sql语句:
SELECT ##TOPN## ##COLUMNS##
FROM View_CMS_Tree_Joined AS V
INNER JOIN CONTENT_MenuItem AS C
ON V.DocumentForeignKeyValue = C.MenuItemID AND V.ClassName = N'CMS.MenuItem'
WHERE ##WHERE##
ORDER BY ##ORDERBY##
您需要将stor proc转换为SQL语句,然后才能使用这些 SQL宏或使用不带参数的stor proc
如果查看上面的查询 top 和 where 不好,因为系统会进行调整,但是您可以使用 order by 和< em>列,但它们都必须存在(我认为它会原样通过它们):
exec proc_test ##ORDERBY##, ##COLUMNS##
老实说,我建议您不要这样做,而且通过调用stor proc不会带来太大收益。