当前位置: 代码迷 >> PB >> 高分150求教pb调用存储过程的有关问题
  详细解决方案

高分150求教pb调用存储过程的有关问题

热度:90   发布时间:2016-04-29 10:04:07.0
高分150求教pb调用存储过程的问题
我的三个帖子其实都是这一个问题,解决这个问题,兄弟把三个帖子的分一起谢谢解决者
在查询分析器中执行正常
出错代码:select error:从数据类型转换成numric时出错

存储过程代码: 
------------------------------------- 
ALTER PROCEDURE [dbo].[GetStudents] 
@Year int, 
@StudentNo varchar(200) 
AS 

declare @Sql nvarchar(4000) 

set @Sql = 'select studentNo, year from student_' + cast(@Year as varchar(4)) + ' where studentNo= ' + @StudentNo 
exec(@Sql) 
-------------------------------------- 

数据窗口的代码 
procedure="1 execute dbo.GetStudents;1 @Year = :Year, @StudentNo= :StudentNo" arguments=(("Year", number),("StudentNo", string)) ) 

------------------------------- 
调用代码: 
dw_1.SetTrans(sqlca) 
dw_1.retrieve(2010, '123456789012345') 
StudentNo在数据库中和数据窗口当中定义的都是字符的类型
PB调用中出现select error:从数据类型转换成numric时出错,然后程序还可以继续执行。
在查询分析器中执行正常。输入2010, '123456789012345'
错误的原因估计是因为把StudentNo当做数字进行处理了,但是我传入的都是以String型传入的,这问题也是太莫名其妙了,应该怎么改动


------解决方案--------------------
set @Sql = 'select studentNo, year from student_' + cast(@Year as varchar(4)) + ' where studentNo= ''' + @StudentNo + ''''
exec(@Sql)
  相关解决方案