ASP向SQL语句传递参数方法
来源:CSDN 发布时间:2008-04-13 06:07:00
四年前写的一个内容管理系统,应用在公司内部网上,昨天DBA说其中的SQL语句未使用参数化的调用,导致服务器负担加重,资源占用大。并列出了几个占用资源较大的语句,类似如下:
SELECT ART_ID, ART_TITLE, ... FROM USR_NEWS.VIEW_ARTICLE WHERE ART_ISPASSED='Y' and ART_CLASS=4066 ORDER BY ART_PASSTIME DESC
其中where子句中的ART_CLASS的值是先确定后组合好这样整条sql语句,然后通过ado去执行的。因参数值不同,在服务器端会产生不同的sql语句,如果有10万个值,服务器就会为这10万条sql语句创建缓存。DBA说要改为art_class=:V方式(oracle数据库),我用与访问存储过程类似的代码来写,如下:
dim userid
userid=1234
...
Command1.CommandText = "SELECT * from users where userid=:V"
Command1.Parameters.Append Command1.CreateParameter(":v", , ,,userid)
set rs = Command1.Execute
运行时在CreateParameter语句处有以下出错提示:
ADODB.Command (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
晕死,为什么存储过程可以,直接sql语句不行呢?
把省略的参数加上,还是不对。
试了几次,都不行,于是找微软技术支持,几经周转终于解决了。原来通过ADO访问时sql语句中的参数要用“?”不用“:”“@”,以下为微软工程师对此问题的小结:
问题描述:
在ASP中,如果通过VBScript调用ADO操作序列化SQL查询. 您按照.NET的调用方法出现0x800A0BB9错误。
解决办法:
在VB中调用ADO的序列化查询,您可以参考下面两篇文章:
How To Invoke a Parameterized ADO Query Using VBA/C++/Java
http://support.microsoft.com/?id=181734
INFO: Visual Basic Accessing an Oracle Database Using ADO
http://support.microsoft.com/?id=176936
需要注意的是,在VBScript中,很多常量没有定义,比如adInteger, 我们需要用具体的数值代替。


猜你喜欢
- 一、mysqlcheck简介mysqlcheck客户端可以检查和修复MyISAM表。它还可以优化和分析表。mysqlcheck的功能类似my
- 使用Access数据库生成申报数据与读入数据的实例方法:示例:Sub Mwrite()On Error GoTo thiserrDim rs
- SQL Server 2019 Enterprise (x64) - DVD (Chinese-Simplified)企业版ed2k://|
- 今天我们来学习一下 异常语法 中的另一个成员 —> finally ; 通过学习 finally ,可以帮助我们更
- 最近发现自己的博客打开很慢,通过ie浏览器打开速度还可以,使用任何第三方浏览器打开都超级慢,以为是HTML代码元素导致,一番比对后没有发现不
- 在pytorch框架中,关于日志的保存,其中一种方式就是借鉴使用了tensorboard的库。所以我们需要在环境中安装tensorboard
- 手绘图片生成器可以将导入的彩色图片通过python分析光源、灰度等操作生成手绘图片。UI界面的整体部分代码块,UI界面的设计比较简单。效果在
- 一、前言介绍xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高。xlwt:主要对xls文件进行写操作且效率高,但是不能执行xl
- 在VirtualBox中使用Ubuntu虚拟机中,会出现虚拟硬盘不够用的情况:查了一下磁盘空间,如下所示:df -H启动CMD命令行,进入V
- 作者的blog :http://www.planabc.net/老甘的《完全用CSS实现的中英文双语导航菜单》一文中使用“position:
- pycharm的pytest功能在新建一个python文件时,比如名称是test_test_test.py,由于含有test,pycharm
- 1.数组和切片有什么区别Go语言中数组是固定长度的,不能动态扩容,在编译期就会确定大小,声明方式如下:var buffer [255]int
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。JSON 函数使用 JSON
- 前言本文主要给大家总结介绍了关于Python的一些基础技巧,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1.starts
- 将数据库中的数据保存在excel文件中有很多种方法,这里主要介绍pyExcelerator的使用。一、前期准备(不详细介绍MySQL)pyt
- <html><body><table border=1> <? $id=@mssql_connec
- 1.消息丢失1.生产者发送失败所有消息队列都可能发生的问题生产者发送消息后,队列未成功接收(网络原因或其他)而生产者不知情,消息丢失生产者发
- 引言少年,你在怀着非法的心态看一篇简短的硬核科普!先抛问题:如何杀掉一个正在等待 TCP 连接的 Thread?由于众所周知的原因,在国内使
- 本文实例讲述了Go语言中使用MySql的方法。分享给大家供大家参考。具体如下:此代码需要先安装mysql的go语言驱动。首先安装mysql的
- Windows中升级MySQL应采取的步骤:1. 进行升级前你应先备份当前的MySQL安装。2. 下载最新Windows版MySQL。3.