我将在前面加上我建议我们改为查看某种报告软件,这是在应用程序之外,但是,时间有限,我现在正处于当前状态题。
我正在构建一个函数,并希望使用参数设置。我该如何避免以下情况?
//extremely dangerous
var queryString = "Select * from dbo." + functionName + "(:startDate, :endDate)";
var result = GetANHibernateSession().CreateSQLQuery(queryString)
.SetDateTime("startDate", startDate)
.SetDateTime("endDate", endDate);
功能可以来和在运行时去,这意味着我无法在编译时构建查询。
编辑:我还应该指出,functionName不是来自不受信任的来源,而是来自数据库本身,没有面向外部的插入机制。这只是一点安全性。