thanks!

解决方案 »

  1.   

    asp.net(VB)中存储过程的使用方法(与直接执行SQL语句基本相同,不同之处在于红色字体部位)
    '连接数据库(使用udl文件链接数据库)
    Dim DBPath as string = server.MapPath("condb.udl")
    Dim conn AS OleDBConnection = New OleDBConnection("File Name =" & DBPath)
    conn.Open()
     
    '存储过程名称:YW_HRHSXX_1
    Dim prostr As String = "YW_HRHSXX_1('2003','01',1,1,1,1,'2003-02-08','hddd','1','2','3','4','1','2','3','4','1','2')"
    '定义执行对象
    Cmd = New OLEDBCommand(prostr, conn)
    '设置执行语句类型为存储过程
    Cmd.CommandType=CommandType.StoredProcedure
    '执行存储过程
    Cmd.ExecuteNonQuery()
    Cmd.connection.close()
    conn.close()
      

  2.   

    我的建议是在SQL中写好各种存储过程,在业务逻辑组件中调用存储过程,在界面层中调用业务逻辑组件的方法
      

  3.   

    Sql Server 中查询分析器的帮助介绍的很详细
      

  4.   

    或者去书店买这本书《Sql Server 2000存储过程与XML编程》
    清华大学出版社 出版
      

  5.   

    1. 存储过程基本理论1.1 存储过程的概念
    SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,这种方法就是存储过程。
    在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。 1.2创建存储过程
    在SQL Server中,可以使用三种方法创建存储过程 :
    ①使用创建存储过程向导创建存储过程。
    ②利用SQL Server 企业管理器创建存储过程。
    ③使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。 最常用的创建存储过程方法:
    使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。
    使用工具:SQL Server 查询分析器1.3创建存储过程时,需要确定存储过程的三个组成部分:
    ①所有的输入参数以及传给调用者的输出参数。
    ②被执行的针对数据库的操作语句,包括调用其它存储过程的语句。
    ③返回给调用者的状态值,以指明调用是成功还是失败。1.4使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程
    创建存储过程前,应该考虑下列几个事项: 
    ①不能将 CREATE PROCEDURE 语句与其它 SQL 语句组合到单个批处理中。
    ②创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。
    ③存储过程是数据库对象,其名称必须遵守标识符规则。
    ④只能在当前数据库中创建存储过程。
    ⑤一个存储过程的最大尺寸为128M。1.5使用CREATE PROCEDURE创建存储过程的语法形式如下: 
        CREATE PROC[EDURE]procedure_name[;number]
     [{@parameterdata_type}
     [VARYING][=default][OUTPUT]
     ][,...n] 
     WITH
        {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}] 
    [FORREPLICATION] 
    AS sql_statement [ ...n ] 1.6用CREATE PROCEDURE创建存储过程的语法参数的意义如下:
        procedure_name:    用于指定要创建的存储过程的名称。 
      

  6.   

    number:            该参数是可选的整数,它用来对同名的存储过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。 
    @parameter:        过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。 
    data_type:           用于指定参数的数据类型。 
    VARYING:          用于指定作为输出OUTPUT参数支持的结果集。 
    Default:             用于指定参数的默认值。 
    OUTPUT:           表明该参数是一个返回参数。 
    RECOMPILE:       表明 SQL Server 不会保存该存储过程的执行计划 。
    ENCRYPTION :     表示 SQL Server 加密了 syscomments 表,该表的text字段是包含 CREATE PROCEDURE 语句的存储过程文本。 
    FOR REPLICATION:用于指定不能在订阅服务器上执行为复制创建的存储过程。 
    AS:                用于指定该存储过程要执行的操作。
    sql_statement:       是存储过程中要包含的任意数目和类型的 Transact-SQL 语句。 
    2. 存储过程的实际应用
    2.1创建存储过程
       创建存储过程工具:SQL Server查询分析器
       创建方法:
       例(一): 添加、修改、删除类存储过程
           use base                        
    go-- 名称:gsk_add
    -- 功能:添加公司信息
    -- 返回:① 标准结果集
    --       ② 无其它结果集
    if exists (select * from sysobjects where name = 'gsk_add')
      drop proc gsk_add
    gocreate proc gsk_add
      @m_gsmc   nvarchar(20),
      @m_glydm  char(8),
      @dm       char(2) output,
      @ret       nvarchar(50) output
      with encryption as
      declare  @m_bzxx varchar(50),
              @m_psxx varchar(2000),
              @p_gsdm char(2)
      
      if exists(select * from gsk where gsmc = @m_gsmc)
      

  7.   

    begin
          select @m_bzxx='公司名称:'+@m_gsmc
          select @m_psxx='【错误类型】   登记重复'
          exec czls_add @m_glydm,'添加公司信息','0',@m_bzxx,@m_psxx,'00'
          select @ret = '公司信息添加失败,名称重复!'
          return
        end  begin tran
        insert gsk(gsdm, gsmc, deleted) values('', @m_gsmc,'0') 
        if @@error <> 0
          begin
            rollback tran
            select @ret = '服务器出错,您提交的数据可能有误!'
            return
          end    declare @curid int
        select @curid = max(orderID) from gsk
        select @p_gsdm = dbo.GetDmValue(@curid,2)
        update gsk set gsdm = @p_gsdm where orderID = @curid
        if @@error <> 0
            begin
              rollback tran
              select @ret = '服务器出错,您提交的数据可能有误!'
              return
            end
      commit tran  select @m_bzxx='公司代码:'+@p_gsdm+' ['+@m_gsmc+']'
      select @m_psxx='【系统提示】   登记成功'
      exec czls_add @m_glydm,'添加公司信息','1',@m_bzxx,@m_psxx,'00'
      select @dm = @p_gsdm, @ret = ''
      return
    go例(二)查询类存储过程
           -- 名称:xpqk_cx
    -- 功能:条件查询小片区库信息
    -- 返回:① 标准结果集
    --       ② 无其它结果集
    if exists (select * from sysobjects where name='xpqk_cx')
      drop proc xpqk_cx
    go