日期:2014-05-18  浏览次数:20477 次

如何给存储过程传递参数?
这是我的存储过程,想用DELPHI的ADOStoredProc传递参数@aa给这个存储过程,就是用户选时间给@AA,ADOStoredProc然后执行。  
目前set   @aa=   '   '   '2007-9-7   '   '   '这个是我为了测试设定的,想动态的实现,不知道怎么弄?  

CREATE   PROCEDURE   peng       AS  

DECLARE       @SQL       VARCHAR(8000),@aa   VARCHAR(80)  
    set   @aa=   '   '   '2007-9-7   '   '   '  

    SET       @SQL=   'SELECT       时间   '        
    SELECT       @SQL=       @SQL+            
      ',min(CASE       WHEN     开启的棚       =         '   '   '       +       编号       +         '   '   '       THEN       客户资料   else     '+   '   '   '关闭   '   '   '+   '       END)       [   '       +       棚名称     +         ']   '        
    FROM       (SELECT       DISTINCT       编号,棚名称       FROM     棚名称)       a    
    print   @SQL        
    SET       @SQL=@SQL+   '       FROM       录入客户   Where   日期=   '+@aa   +   '   GROUP       BY       时间   '      
    exec       (@SQL)

------解决方案--------------------
CREATE PROCEDURE peng
@aa VARCHAR(80)
AS
set nocount on
DECLARE @SQL VARCHAR(8000)--,@aa VARCHAR(80)
--set @aa= ' ' '2007-9-7 ' ' '
SET @SQL= 'SELECT 时间 '
SELECT @SQL= @SQL+
',min(CASE WHEN 开启的棚 = ' ' ' + 编号 + ' ' ' THEN 客户资料 else '+ ' ' '关闭 ' ' '+ ' END) [ ' + 棚名称 + '] '
FROM (SELECT DISTINCT 编号,棚名称 FROM 棚名称) a
print @SQL
--SET @SQL=@SQL+ ' FROM 录入客户 Where 日期= '+@aa + ' GROUP BY 时间 '
SET @SQL=@SQL+ ' FROM 录入客户 Where 日期= ' ' '+@aa + ' ' ' GROUP BY 时间 '
exec (@SQL)
set nocount off
go

--调用:
exec peng '2007-09-07 '