【发布时间】:2015-05-27 11:10:16
【问题描述】:
如何将以下内容更改为具有 if 条件的参数化查询...?我想让它成为参数化查询 qith 命令对象...
strQry="SELECT distinct EnrolID" &_
" FROM " & strview & " WHERE ProgramID=" &vP&_
" AND EnrolStatus = 'ZZY' AND CampusID=" &vC
if vW <> "" THEN
strQry=strQry + " AND WID like '%" &WID& "%'"
end if
if vBID<>0 THEN
strQry=strQry + " AND BID=" &vBID
end if
if vProgramID= "2" then
if vT<>0 THEN
strQry=strQry + " AND eid=" &vT
end if
if vYr<>0 THEN
strQry=strQry + " AND Year(A_Dt)=" &vY
end if
end if
strQry = strQry + " ORDER BY EN"
set objRS=createObject("ADODB.recordset")
obj.Open strQry, Conn
【问题讨论】:
-
你不能参数化表名(或任何其他标识符),并且添加像
ANDs 这样的东西也需要动态SQL(所以你被这些部分的串联卡住了)。您只能参数化变量(如条件中使用的变量)。为什么要动态选择从哪个表/视图中获取数据?YEAR(A_dt)会忽略索引(你应该使用范围查询),除了有一个糟糕的列名。 -
如果代码只是更新查询。我如何才能使其参数化查询保持 if 条件检查完整
-
@Papai 首先你是在使用.net 还是asp-classic 我问这个是因为它们是两种不同的技术,已经让那些试图为你提供答案的人感到困惑。另外,您肯定使用mysql 还是sql-server?
标签: mysql sql .net vb.net asp-classic