我有这样的查询:在ASP(VBS)ADO LIKE查询
SELECT TaFellesVaktjournal.*, TaBygg.ByggNavn
FROM TaFellesVaktjournal LEFT JOIN TaBygg ON
TaFellesVaktjournal.VaktFellesByggNavnId =
TaBygg.ByggBudsjtilstEiendom WHERE VaktjFellesDato
>= @dtfr AND VaktjFellesDato <= @dttl AND (VaktFellesSak
= @sok OR VaktjFellesHendelse = @sok) ORDER BY
VaktjFellesDato DESC, VaktjFellesTid DESC
不过,我得到指出的错误No value given for one or more required parameters.
。 我为@dtfr,@dttl和@sok指定了值。此外,如果我将包含@sok的部分(@dttl后的所有内容)移除到ORDER BY,则错误消失。
我已经让舒尔指定了sok的值,并且它不是空的。我甚至试过指定2个名为sok的参数(因为它们是两个地方)。任何人都知道我可以做到这一点?
我用它来创建参数的代码如下:
Dim conn, cmd, param
set cmd = server.createobject("adodb.command")
set param = server.createobject("adodb.parameter")
set param = cmd.createparameter("@sok", adVarChar, adParamInput, 255, sok)
cmd.parameters.append param
你确定这个类型(adVarChar)吗? – Fionnuala 2010-06-30 08:31:35
另外,不要指定255作为长度,而要做len(sok)。您也可以在1行代码中添加参数。这是我总是这样做的:AdoCmd.Parameters.Append AdoCmd.CreateParameter(“@ name”,adVarChar,adParamInput,Len(Name),Name) – Rob 2010-06-30 08:39:47
是的,adVarChar是正确的。我知道你可以在一行中做到这一点,但我宁愿添加一个函数,该函数需要cmd,名称,类型,长度和值,并且这会对我产生影响。我觉得它更容易阅读:) – Alxandr 2010-06-30 08:42:52