人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

Adodb.Command 平時很少注意到的一個參數(shù)

Adodb.Command 平時很少注意到的一個參數(shù)

更新時間:2022-08-13 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

我們在 ASP 中調(diào)用 SQL Server 的存儲過程時,如果使用 Adodb.Command 對象,通常使用如下的代碼:

dim cmd, rs

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

今天我在調(diào)試一個程序的時候發(fā)現(xiàn), ASP 頁面上提示某個參數(shù)沒有賦值, 而實際上我沒賦值的卻是另一個參數(shù)。 于是我打開 Sql Server 的事件探察器, 執(zhí)行了一遍程序, 捕捉到實際上 ASP 發(fā)送給 Sql Server 的 SQL 語句實際上是如下的形式:

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

原因現(xiàn)在很明顯了,ADO 引擎沒有把對存儲過程的調(diào)用翻譯為完整的語法, 而是采用了上述簡寫方式, 這樣,當中間某個參數(shù)丟失的時候, 就有可能因為錯位而誤判為另一個參數(shù)丟失。
然后我查了一下 Command 對象的屬性, 加了如下一句:

cmd.NamedParameters = true

也就是說指定要使用顯式命名的變量形式, 然后再執(zhí)行一邊程序, 發(fā)現(xiàn)事件探察器中捕捉到的語句變成了:

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

報錯的參數(shù)也是正確的。
Everything is OK now

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 延津县| 马山县| 阳城县| 高雄县| 康定县| 凤冈县| 道孚县| 临江市| 东乡| 苍梧县| 汨罗市| 札达县| 会理县| 富锦市| 锦屏县| 正宁县| 平阴县| 边坝县| 奉化市| 叙永县| 观塘区| 宁津县| 乡城县| 长阳| 交口县| 武义县| 巴里| 西青区| 石狮市| 河池市| 中方县| 新宁县| 舒城县| 盱眙县| 鄄城县| 桃园县| 邳州市| 安西县| 罗田县| 泽州县| 芦山县|