存储过程报错

本帖最后由 sbeg571 于 2015-9-6 13:43 编辑

sybase12.5数据库,连接后使用带参数的存储过程,在SQL下exec执行没问题,但在finereport7.1中使用存储过程,增加参数保存后日志报错如下:
警告:The identifier that starts with '" select sybid=identity(12), ' is too long. Maximum length is 28.
莫非存储过程中有长度限制????存储过程如下:
create procedure splitpage222
@qry varchar(16384),
@ipage int,
@num int,
@maxpages int = 5000
as  

begin

        declare @rcount int
        declare @execsql varchar(16384)

        if @ipage > @maxpages
        begin
              select '输入页数[' || convert(varchar,@ipage) || ']大于最大查询页数[' ||  convert (varchar,@maxpages) ||']'
              return
        end

        select @rcount=@ipage*@num
        set rowcount @rcount
        set @execsql = stuff(@qry,charindex('select',@qry),6,'select sybid=identity(12),')
        set @execsql = stuff(@execsql, charindex('from',@execsql),4,'into #temptable1 from')
        set @execsql = @execsql || ' select * from #temptable1  where sybid>' || convert(varchar,(@ipage-1)*@num) || ' and sybid <= ' || convert(varchar,@ipage*@num)
        execute (@execsql)
        set rowcount 0
end
;
调用如下:
exec splitpage222
“ select * from a ”,
1,
5




FineReportsbeg571 发布于 2015-9-6 13:40
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
阿迪发布于2015-9-6 13:40(编辑于 2023-9-6 09:34)
555
最佳回答
0
爱米发布于2015-9-6 14:15(编辑于 2023-9-6 09:34)
555
最佳回答
0
sbeg571发布于2015-9-7 10:42(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 991浏览人数
  • 最后回答于:2015-9-7 10:42
    活动推荐 更多
    热门课程 更多
    返回顶部