六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Adodb.Command 平時很少注意到的一個參數

[摘要]我們在 ASP 中調用 SQL Server 的存儲過程時,如果使用 Adodb.Command 對象,通常使用如下的代碼:dim cmd, rsset cmd = Server.CreateObject("ADODB.Command")cmd.ActiveConnection...

我們在 ASP 中調用 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

今天我在調試一個程序的時候發現, 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




主站蜘蛛池模板: 在线免费精品视频 | 四虎影视库 | 一级免费黄色 | 日韩a级黄色片 | 欧美一区综合 | 亚洲码和乱人伦中文一区 | 欧美一区精品 | 伊人成人在线 | 日干夜操 | 青草青在线视频 | 一级黄色片在线播放 | 亚欧日韩毛片在线看免费网站 | 亚洲欧美自拍另类图片色 | 日韩 欧美 综合 | 熟女毛片| 日韩不卡| 人人鲁免费播放视频人人香蕉 | 特黄一级真人毛片 | 亚洲狠狠 | 五月天激情在线 | 青青网站 | 天天舔日日干 | 天天干天天操天天 | 日韩一区国产二区欧美三区 | 一级做a爰毛片 | 四虎精品视频 | 亚洲v天堂| 天堂在线资源最新版 | 一二三四免费高清观看在线观看 | 日韩美女在线视频网站免费观看 | 青青青在线免费观看 | 色天天综合久久久久综合片 | 日韩 欧美 国产 亚洲 中文 | 午夜视频入口 | 亚洲国产高清视频在线观看 | 五月天婷婷伊人 | 青青青草免费 | 日韩欧美h | 日本天堂网址 | 午夜视频高清在线aaa | 色yeye在线观视频 |