- 热门文章:
- · 一个获得随机字符串的asp函数
- · vbscript函数集
- · asp之数学函数
- · 会员管理系统中会员类的实现
- · Recordset对象方法详解
- · ASP.NET 2.0 的内部变化
- · asp之日期和时间函数示例
- · asp之字符串函数示例
- · asp之转换函数示例
- · 编写留言本应注意的问题(适用PHP和ASP)
- · 关于ASPNET用户的权限
- · 全选删除特效
上一篇:IIS防止文件下载完全手册(非更改文件名法) >>
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‘’, ...
报错的参数也是正确的。
下一篇:一个获得随机字符串的asp函数 >>
相关文章:
- · Set Up Client Certificates
- · 我写的第一个ASP.NET组件
- · ASP程序中同一个用户不允许同时登陆两次
- · 随机生成密码函数
- · 动态创建TABLE的行与列
- · 如何在Web页面上直接打开、编辑、创建Office文档
- · 取得的IP/用户名等信息
- · Flash 和 ASP / PHP 以及 javascript 的交互
- · 自定义分页UserControl 分享及探讨!
- · ASP 验证码的程序及原理
- · ViewState 剖析(翻译兼笔记)
- · 存储过程介绍及asp存储过程的使用
- · 用CSS实现的固定表头的HTML表格
- · ASP中页面限权访问的几种方法
- · 用Web Services服务实现文件上传
- · ASP六大对象介绍
- · 如何更改表的字段名?
- · 一份ASP内存的释放的实验报告
- · 如何获取设置图片大小
- · 按比例缩小图片(无组件)
- · 网站开发规范及流程v1.0
- · asp+存储过程的使用
- · 2个简单的检测外部提交函数
- · 查看服务器Application/Session变量工具
- · ASP ,IP地址分段计算
- · ASP提速技巧五则
- · 利用ASP远程获取内容
- · ASP漏洞及安全建议
- · 闰年的判别
- · 计算文件下载时间
- · ASP的函数详解
- · 一个取图片尺寸的类,支持jpg,gif,png
- · JS错误代码解释大全
- · 窗口最大化的严格定义
- · 一個簡單的驗証碼
- · 17种正则表达式
- · 一个非常简洁的验证码程序
- · 今天做了一个ASP计数器,放出源码吧,挺简单的!
