当前位置: 代码迷 >> PB >> pb调用存储过程传递参数的有关问题
  详细解决方案

pb调用存储过程传递参数的有关问题

热度:66   发布时间:2016-04-29 10:03:38.0
pb调用存储过程传递参数的问题
存储过程代码:
-------------------------------------
ALTER PROCEDURE [dbo].[GetStudents]
@Year int,
@StudentNo varchar(200)
AS

declare @Sql nvarchar(4000)

set @Sql = 'select * 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, '1234567')

pb出错现象:select error: select * from student_2009 where studentNo='1234567'
在sqlserver2005的查询分析器中,执行代码:year=2009, studentNo='1234567'可以正确执行。这个问题真的很头痛。

------解决方案--------------------
把settrans改成settransobject试试
------解决方案--------------------
studentno是字符型吧

SQL code
set @Sql = 'select * from student_' + cast(@Year as varchar(4)) +  '  where studentNo= ''' + @StudentNo + ''''
  相关解决方案