• 有關ASP執行存儲過程中的日期類型


    轉自:http://topic.csdn.net/t/20010724/16/207190.html

    楼主brain_wiser(风风无路)2001-07-24 16:10:09 在 Web 开发 / ASP 提问

    请帮我看看这段代码,有什么问题!  
      该存储过程我在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  
       
      问题点数:20、回复次数:8Top

    1 楼freezwy(网络自由人)回复于 2001-07-24 16:20:53 得分 0

    你包含了adovbs.inc了吗?Top

    2 楼brain_wiser(风风无路)回复于 2001-07-24 16:34:47 得分 0

    To:freezwy(网络自由人)   
         
      有的。  
        你看有什么问题。现在我发现的问题好像是:com.execute没作用。Top

    3 楼freezwy(网络自由人)回复于 2001-07-24 16:41:45 得分 20

    你检查你的参数长度都是正确的吗?如果参数的长度正确就不会出问题的。  
      另外出现这个问题还有一个可能的原因是,参数类型不正确。比如  
      时间型使用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                                 允许从一子程序中返回数据至该参数当中   Top

    4 楼brain_wiser(风风无路)回复于 2001-07-24 16:44:30 得分 0

    谢谢,我查一查。Top

    5 楼freezwy(网络自由人)回复于 2001-07-24 16:46:44 得分 0

    有问题就继续弄这个帖子里,我继续关注这个问题的。Top

    6 楼brain_wiser(风风无路)回复于 2001-07-24 16:49:24 得分 0

    非常感谢!  
          就是出现在时间数据类型这地方,已经解决,谢谢,分已送出!Top

    7 楼freezwy(网络自由人)回复于 2001-07-24 16:53:35 得分 0

    因为在SQL   SERVER中char类型是强制等长度的方式存储,如果不足你指定的长度,那系统自动加剩余长度个空格,导致在取出字段后,必须trim()一次,否则很容易出错,在传递参数时,如果不处理空格,也很难受。正是因为这些,强烈建议,对于不确定长度的字符串,都使用varchar,这样,在存储过程和程序中也很好处理。对于时间型的数据,最好使用smalldatetime   
     

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)
    Java里的构造函数(构造方法)
    Java里this的作用和用法
    JAVA中的重载和重写
    从键盘接收字符类型的数据并实现剪刀石头布的规则
    使用Notepad++编码编译时报错(已解决?)
    云就是网络,云计算呢
    使用JavaMail创建邮件和发送邮件
    mysql锁机制
    java中几种常用的设计模式
  • 原文地址:https://www.cnblogs.com/Athrun/p/1157131.html
Copyright © 2020-2023  润新知