读书人

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

发布时间: 2012-03-09 16:54:58 作者: rapoo

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 + '''' 

读书人网 >PB

热点推荐