Adodb.Command 平时很少注意到的一个参数

2016-01-29 18:45 3 1 收藏

Adodb.Command 平时很少注意到的一个参数,Adodb.Command 平时很少注意到的一个参数

【 tulaoshi.com - ASP 】

 

我们在 ASP 中调用 SQL Server 的存储过程时,如果使用 Adodb.Command 对象,通常使用如下的代码:

dim cmd, rs

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "TestProc"
cmd.Parameters.Append cmd.CreateParameter("@a" , adInteger, adParamInput, 4, 1)
cmd.Parameters.Append cmd.CreateParameter("@b" , adVarChar, adParamInput, 50, 'b')
...
set rs = cmd.Execute

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

今天我在调试一个程序的时候发现, ASP 页面上提示某个参数没有赋值, 而实际上我没赋值的却是另一个参数。 于是我打开 Sql Server 的事件探察器, 执行了一遍程序, 捕捉到实际上 ASP 发送给 Sql Server 的 SQL 语句实际上是如下的形式:

execute TestProc 1, 'b', ....

原因现在很明显了,ADO 引擎没有把对存储过程的调用翻译为完整的语法, 而是采用了上述简写方式, 这样,当中间某个参数丢失的时候, 就有可能因为错位而误判为另一个参数丢失。
然后我查了一下 Command 对象的属性, 加了如下一句:

cmd.NamedParameters = true

也就是说指定要使用显式命名的变量形式, 然后再执行一边程序, 发现事件探察器中捕捉到的语句变成了:

exec TestProc @a = 1, @b = 'b', ...

报错的参数也是正确的。
Everything is OK now

 

来源:https://www.tulaoshi.com/n/20160129/1507173.html

延伸阅读
如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: Code: 代码如下: INSERT INTO 目标表 SELECT * FROM
标签: 电脑入门
现在无线网络已经不断的深入到我们的日常生活中,基本每多家庭都搭建了一个无线网络,系统之家以市场上较多的TP-link路由器为例,介绍在组建无线网时,我们应该注意到哪些问题和可以使用的一些技巧,主要以一些实例来详细解说: 一、影响无线网性能的因素 1、传输功率:无线路由发送功率大多在100mw以下,网桥最大功率为250mw。 2、天线类型...
首先应该建立一个combo1的comboBox控件,作为下拉框的最终实现工具。 Private Sub Combo1_Click() MSFlexGrid1.Row = MSFlexGrid1.RowSel MSFlexGrid1.Col = 2 MSFlexGrid1.Text = Combo1.Text End Sub 'Private Sub Combo1_LostFocus() 'Combo1.Text = MSFlexGrid1.Text 'End Sub Private Sub Form_Load() Combo1.Vis...
标签: 暗黑破坏神3
《暗黑破坏神3》你没有注意到的细节 一、碰撞体积 跟魔兽世界不同,暗黑系列游戏中存在碰撞体积。你无法从正面推倒对方然后穿人而过,在敌人的背后攻击。所以在遇见大量怪物的时候,恰巧的你的装备又没到碾压他们的程度。那么就边打边后退吧。这样可以避免5到6只怪围住你,同时对你造成伤害。当然更大的用处是在对付JY怪群。尤其是在面对那些体...
孕妇床垫怎么选 1、透气性好 床的透气性是很重要的一点,所以选择一张透气性好的床垫,就显得非常的重要了。床垫最好是选择吸湿、通气、保温性能好床垫。因为,孕妇之后坐月子,都是女人身体最虚弱的时候,要的床垫易吸水、不干爽,非常容易得风湿和风痛。 2、静音性能好 对于孕妇,体内的孕激素会出现不停的变化,这样会导致睡眠质量...

经验教程

254

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部