|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般ado|command我们在ASP中挪用SQLServer的存储历程时,假如利用Adodb.Command工具,一般利用以下的代码:
dimcmd,rs
setcmd=Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=conn
cmd.CommandType=adCmdStoredProc
cmd.CommandText="TestProc"
cmd.Parameters.Appendcmd.CreateParameter("@a",adInteger,adParamInput,4,1)
cmd.Parameters.Appendcmd.CreateParameter("@b",adVarChar,adParamInput,50,b)
...
setrs=cmd.Execute
明天我在调试一个程序的时分发明,ASP页面上提醒某个参数没有赋值,而实践上我没赋值的倒是另外一个参数。因而我翻开SqlServer的事务探察器,实行了一遍程序,捕获到实践上ASP发送给SqlServer的SQL语句实践上是以下的情势:
executeTestProc1,b,....
缘故原由如今很分明了,ADO引擎没有把对存储历程的挪用翻译为完全的语法,而是接纳了上述简写体例,如许,傍边间某个参数丧失的时分,就有大概由于错位而误判为另外一个参数丧失。
然后我查了一下Command工具的属性,加了以下一句:
cmd.NamedParameters=true
也就是说指定要利用显式定名的变量情势,然后再实行一边程序,发明事务探察器中捕获到的语句酿成了:
execTestProc@a=1,@b=b,...
报错的参数也是准确的。
</p>asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|