紧急问题!有关存储过程!

brain_wiser 2001-07-24 04:10:09
请帮我看看这段代码,有什么问题!
该存储过程我在SQL的查询分析器下施行没有问题,可一用Command调用,就出现问题,好像不施行存储过程。

//==================
参数不会有问题,我都测试过

报错为:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

[Microsoft][ODBC SQL Server Driver]Optional feature not implemented

/users/add.asp,行135



=================================
set conn=server.CreateObject("adodb.connection")
conn.connectionstring="dsn=bgqc"
conn.open
set com=server.CreateObject("ADODB.Command")
com.ActiveConnection=conn
com.CommandText="commonuser_add"
com.CommandType=adCmdStoredProc
'--------------------------------------------------------创建参数
com.Parameters.Append com.CreateParameter("@username",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@realname",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@userright",adTinyInt,adParamInput,1)
com.Parameters.Append com.CreateParameter("@password",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@gender",adChar,adParamInput,2)
com.Parameters.Append com.CreateParameter("@email",adChar,adParamInput,20)
com.Parameters.Append com.CreateParameter("@province",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@city",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@address",adChar,adParamInput,80)
com.Parameters.Append com.CreateParameter("@zip",adChar,adParamInput,6)
com.Parameters.Append com.CreateParameter("@idno",adChar,adParamInput,18)

com.Parameters.Append com.CreateParameter("@hometel",adChar,adParamInput,15)
com.Parameters.Append com.CreateParameter("@worktel",adChar,adParamInput,20)
com.Parameters.Append com.CreateParameter("@cell",adChar,adParamInput,15)
com.Parameters.Append com.CreateParameter("@industry",adChar,adParamInput,20)
com.Parameters.Append com.CreateParameter("@occupation",adChar,adParamInput,20)
com.Parameters.Append com.CreateParameter("@income",adChar,adParamInput,10)
com.Parameters.Append com.CreateParameter("@logoncount",adInteger,adParamInput,4)
com.Parameters.Append com.CreateParameter("@logintime",adDate,adParamInput,8)
com.Parameters.Append com.CreateParameter("@ip",adChar,adParamInput,16)
com.Parameters.Append com.CreateParameter("@isip",adTinyInt,adParamInput,1)
com.Parameters.Append com.CreateParameter("@isuser",adTinyInt,adParamInput,1)
''--------------------------------------------------------------------------------------------------------------

com("@username")=mname
com("@realname")=mrealname
com("@userright")=muserright
com("@password")=mpassword
com("@gender")=mgender
com("@email")=memail
com("@province")=mprovince
com("@city")=mcity
com("@address")=maddress
com("@zip")=mzip
com("@idno")=midno
com("@hometel")=mhometel
com("@worktel")=mworktel
com("@cell")=mcell
com("@industry")=mindustry
com("@occupation")=moccupation
com("@income")=mincome
com("@logoncount")=mlogoncount
com("@logintime")=mlogintime
com("@ip")=mip
com("@isip")=misip
com("@isuser")=misuser
com.Execute //行135
==================================
报错为:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

[Microsoft][ODBC SQL Server Driver]Optional feature not implemented

/users/add.asp,行135


=======================================
存储过程是:
CREATE PROCEDURE commonuser_add
(
@username char(10),
@realname char(10),
@userright tinyint,
@password char(10),
@gender char(2),
@email char(20),
@province char(10),
@city char(10),
@address char(80),
@zip char(6),
@idno char(18),
@hometel char(15),
@worktel char(20),
@cell char(15),
@industry char(20),
@occupation char(20),
@income char(10),
@logoncount int,
@logintime datetime,
@ip char(16),
@isip tinyint,
@isuser tinyint
)
AS
INSERT commonuser
(username,realname,userright,password,gender,email,province,city,address,zip,idno,hometel,worktel,cell,industry,occupation,income,logoncount,logintime,ip,isip,isuser)
values
(@username,@realname,@userright,@password,@gender,@email,@province,@city,@address,@zip,@idno,@hometel,@worktel,@cell,@industry,@occupation,@income,@logoncount,@logintime,@ip,@isip,@isuser)
GO

...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
brain_wiser 2001-07-25
  • 打赏
  • 举报
回复
真的非常感谢!
你提的建议真的是我平时疏忽的,很感谢!
freezwy 2001-07-24
  • 打赏
  • 举报
回复
因为在SQL SERVER中char类型是强制等长度的方式存储,如果不足你指定的长度,那系统自动加剩余长度个空格,导致在取出字段后,必须trim()一次,否则很容易出错,在传递参数时,如果不处理空格,也很难受。正是因为这些,强烈建议,对于不确定长度的字符串,都使用varchar,这样,在存储过程和程序中也很好处理。对于时间型的数据,最好使用smalldatetime
brain_wiser 2001-07-24
  • 打赏
  • 举报
回复
非常感谢!
就是出现在时间数据类型这地方,已经解决,谢谢,分已送出!
freezwy 2001-07-24
  • 打赏
  • 举报
回复
有问题就继续弄这个帖子里,我继续关注这个问题的。
brain_wiser 2001-07-24
  • 打赏
  • 举报
回复
谢谢,我查一查。
freezwy 2001-07-24
  • 打赏
  • 举报
回复
你检查你的参数长度都是正确的吗?如果参数的长度正确就不会出问题的。
另外出现这个问题还有一个可能的原因是,参数类型不正确。比如
时间型使用adDBTimeStamp,长度为8。
另外,参数最好使用varchar形的,就是把adchar全部改为advarchar
下面这些东西对你非常有帮助的。
========================================================
参许参数值的类型的意义如下:
名称值 整数值 功能
  adDBTimeStamp 135 日期时间数据类型
  adDecimal 14 十进制整数值
  adDouble 5 双精度小数值
  adError 10 系统错误信息
AdGUID 72 全域性唯一识别字(Globally unique identifier)
adDispath 9 COM/OLE自动对象(Automation Object)
adInteger 3 4字节有符号整数
adIUnknown 13 COM/OLE对象
adLongVarBinary 205 大型2字节值
adLongVarChar 201 大型字符串值
adLongVarWChar 203 大型未编码字符串
adNumeric 131 十进制整数值
adSingle 4 单精度浮点小数
adSmallInt 2 2字节有符号整数
adTinyInt 16 1字节有符号整数
adUnsignedBigInt 21 8字节无符号整数
adUnsignedInt 19 4字节无符号整数
adUnsignedSmallInt 18 2字节无符号整数
adUnsignedTinyInt 17 1字节无符号整数
adUserDefined 132 用户自定义数据类型
adVariant 12 OLE对象
adVarBinary 204 双字节字符变量值
adVarChar 200 字符变量值
advarchar 202 未编码字符串变量值
adWchar 130 未编码字符串
    
方向值的意义如上:
名称值 整数值 功能
adParamInput 1 允许数据输入至该参数当中
adParamOutput 2 允许数据输出至该参数当中
adParamInputOutput 3 允许数据输入、输出至该参数当中
adparamReturnValue 4 允许从一子程序中返回数据至该参数当中
brain_wiser 2001-07-24
  • 打赏
  • 举报
回复
To:freezwy(网络自由人) 

有的。
你看有什么问题。现在我发现的问题好像是:com.execute没作用。
freezwy 2001-07-24
  • 打赏
  • 举报
回复
你包含了adovbs.inc了吗?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧