数据库里面 明明没有声明这个类型啊 怎么老是报这个错误呢  弄了一个早上了  请高手啊。。
下面是我的存储过程,用来做分页提取的。。 declare @type1 int=0
    ,@FaBujgdm char(4)='01'  ---机构代码
    ,@TotalCount int =50 --计算总记录数
    ,@pagesize int=100  --一页的记录数
    ,@currentpage int=1  --当前页数
    ,@XMzdbh int=0BEGIN
  --行数
  --if @FaBujgdm ='11'
   begin
    if @type1=11
begin

       SELECT  @TotalCount=count(XMzdbh)
           FROM     sztz_XiangMu 
          where FaBujgdm =@FaBujgdm
end
 
   
  
--提取数据 分页
if @type1 =12
declare @CurrentCount int
declare @PreviousCount int
  
  if @currentpage =1
begin




set @CurrentCount=@pagesize*@currentpage
 exec('SELECT top '+@CurrentCount+'xt_jg.jgdm, xt_jg.jgmc, sztz_XiangMu.XMzdbh, sztz_XiangMu.XMLBdm, sztz_XiangMu.XMmc, sztz_XiangMu.XMJiBie, sztz_XiangMu.XueFen, 
                      sztz_XiangMu.KaiZhanShiJian, sztz_XiangMu.KaiZhanDiDian, sztz_XiangMu.CYDXFanWei, sztz_XiangMu.FaBujgdm, sztz_XiangMu.BeiZhu, sztz_XiangMu.Stop, 
                      sztz_XiangMu.StopYuanYin, sztz_XiangMu.XueXiaoShenHe, sztz_XiangMu.Xd
FROM         sztz_XiangMu CROSS JOIN
                      xt_jg
      where FaBujgdm='+@FaBujgdm+ '
                  order by dbo.sztz_XiangMu.XMzdbh desc')
              
end
 
else if @currentpage >1
   begin
    set @CurrentCount=@pagesize*@currentpage
    set @PreviousCount=@pagesize*(@currentpage-1)
   exec('SELECT   top  '+@pagesize+'  SELECT dbo.xt_jg.jgmc AS jgmc, dbo.sztz_XiangMuLeiBie.XMLBmc AS XMLBmc, 
      dbo.sztz_XiangMu.*
      FROM dbo.sztz_XiangMu INNER JOIN
      dbo.sztz_XiangMuLeiBie ON 
      dbo.sztz_XiangMu.XMLBdm = dbo.sztz_XiangMuLeiBie.XMLBdm INNER JOIN
      dbo.xt_jg ON dbo.sztz_XiangMu.FaBujgdm = dbo.xt_jg.jgdm
                  where dbo.sztz_XiangMu.FaBujgdm=@FaBujgdm not in '+'(select top '+@PreviousCount+' XMzdbh FROM dbo.sztz_XiangMu  WHERE   dbo.sztz_XiangMu.FaBujgdm ='+@FaBujgdm+' order by sztz_XiangMu.XMzdbh asc)'+'
   WHERE dbo.sztz_XiangMu.XMzdbh not in '+'(select top '+@PreviousCount+' XMzdbh FROM dbo.sztz_XiangMu  order by dbo.sztz_XiangMu.XMzdbh asc)'+'
  and sztz_XiangMu.FaBujgdm ='+@FaBujgdm+ '
   order by sztz_XiangMu.XMzdbh asc')
   end
   end
   end

解决方案 »

  1.   

    我知道是类型转换出错啊,关键是我在数据库里面没有让他转换,都是char啊。。运用断点执行之后发现在下面这个地方的时候就报错
    set @CurrentCount=@pagesize*@currentpage
    exec('SELECT top '+@CurrentCount+'xt_jg.jgdm, xt_jg.jgmc, sztz_XiangMu.XMzdbh, sztz_XiangMu.XMLBdm, sztz_XiangMu.XMmc, sztz_XiangMu.XMJiBie, sztz_XiangMu.XueFen,  
      sztz_XiangMu.KaiZhanShiJian, sztz_XiangMu.KaiZhanDiDian, sztz_XiangMu.CYDXFanWei, sztz_XiangMu.FaBujgdm, sztz_XiangMu.BeiZhu, sztz_XiangMu.Stop,  
      sztz_XiangMu.StopYuanYin, sztz_XiangMu.XueXiaoShenHe, sztz_XiangMu.Xd
    FROM sztz_XiangMu CROSS JOIN
      xt_jg
      where FaBujgdm='+@FaBujgdm+ '
      order by dbo.sztz_XiangMu.XMzdbh desc')高手们帮帮忙啊 急啊。。头快炸了。。
      

  2.   

    在查询分析器执行 调试
    A07 substring
      

  3.   

    'SELECT top '+@CurrentCount+'xt_jg.jgdm 是不是差空格
    你把执行的sql先打出来看,有没有问题
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  4.   

     值 'A07 ' 不能转换成数据类型 int 07可以转换成int