我的三个帖子其实都是这一个问题,解决这个问题,兄弟把三个帖子的分一起谢谢解决者
在查询分析器中执行正常
出错代码: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)