@strUserName  VARCHAR 
================>
@strUserName  VARCHAR (20)不定义长度的话,默认为1,会被截断

解决方案 »

  1.   

    谢谢vivianfdlpw() 
    这个问题解决了
    可以不可以在帮忙看一个运行时问题
    运行时报错,提示:将 varchar 值 '( RecordID< select min(RecordID) from(SELECT TOP ' 转换为数据类型为 int 的列时发生语法错误。 
      

  2.   

    CREATE PROCEDURE [GetCustomersDataPage] 
             @PageIndex INT,
             @PageSize  INT,
             @strUserName  VARCHAR(30),
             @RecordCount INT OUT,
             @PageCount INT OUTAS
    SELECT @RecordCount = COUNT(*)  FROM   MoneyRecord WHERE UserName=@strUserName
    SET @PageCount = CEILING(@RecordCount * 1.0 / @PageSize) 
    DECLARE @SQLSTR VARCHAR(500)
    DECLARE @strWhere  VARCHAR(500)
    DECLARE @MinID INT
    IF @PageIndex = 0 
    begin
    SET @MinID= SELECT MIN(RecordID) from (SELECT TOP  @PageIndex*@PageSize  RecordID from [MoneyRecord] where UserName=@strUserName
    SET @strWhere =' RecordID<'+@MinID+' and (UserName = '+str(@strUserName)+')'        
    SET @SQLSTR =' SELECT TOP  '+STR( @PageSize )+' myDateTime,MoneyType,MoneyNum,myKeyWords,Others  FROM [MoneyRecord] where '+str(@strWhere)+' Order by RecordID desc'
    endELSE  
    begin        
            
    SET @SQLSTR =' SELECT TOP  '+STR( @PageSize )+' RecordID, myDateTime,MoneyType,MoneyNum,myKeyWords,Others  FROM [MoneyRecord] where '+'( RecordID< select min(RecordID) from(SELECT TOP '+@PageIndex * @PageSize +' RecordID from [MoneyRecord] where UserName='+str(@strUserName)+')) and (UserName = '+str(@strUserName)+')'+' Order by RecordID desc' 
    endEXEC (@SQLSTR)
    GO
    存储过程不对
    1是说 @PageIndex*@PageSize 有错误  
    2是说SET附近有错
      

  3.   

    请看:
    http://community.csdn.net/Expert/topic/4355/4355415.xml?temp=.5544092