我正在MS SQL中使用perl运行存储过程 返回值是一个整数(0 =如果可以,并且某些负值在特定点提前退出) 代码运行SP - 它不给我所有的回报价值。如何获得返回值和SQL存储过程运行使用Perl?
我的代码:
use dbd::odbc;
#...
$dbh->do("use XXX"); #Name of the DB
my $sth = $dbh->prepare("
DECLARE \@return_value int
EXEC \@return_value = [dbo].[test1]
\@BeginDate = '11/11/2011',
\@EndDate = '11/11/2011'
select \@return_value
");
$sth->execute();
#### AFTER THIS I TRIED:
while (@dbrow = $sth->fetchrow_array()) {
$return_value = @dbrow[0]
}
#### i also tried:
my $return_value = $sth->fetchrow_array()
#### both get nothing.
当我使用普通SELECT
查询,上述两种工作。
也,上面的程序,如果在SQL Server Management Studio中跑过来给我一个正确的返回值 –
从你的代码,这是很清楚的,你没有启用警告。请确保使用'use warnings'来启用它们;' – ysth
你确定所有东西都在执行吗?您没有检查任何数据库或语句处理方法调用的返回值。 – CanSpice