2010-06-16 1 views
2

Как получить возвращаемое значение хранимой процедуры с помощью perl и dbi для сервера sql? может кто-нибудь представить пример.Perl Dbi и хранимые процедуры

+0

Я ответил на это в другой области. http://stackoverflow.com/questions/64200/how-do-i-call-mysql-stored-procedures-from-perl – Nexion

ответ

8

Примеры в DBD :: ODBC t/dir (см. 20SqlServer.t). В основном вы делаете (не полный рабочий пример):

my $output; 
my $input = 'fred'; 
my $sth = $dbh->prepare(q/{ ? = call myproc(?) }/); 
$sth->bind_param_inout(1, \$output, 100); 
$sth->bind_param(2, $input); 
$sth->execute 

Теперь $ output должен содержать возвращаемую процедуру. Убедитесь, что вы установили длину в bind_param_inout достаточно (100 выше).

+0

+1 Ваш пример просто решил одну мою проблему. Спасибо – bvr

+0

Спасибо за напоминание о параметрах SQL sproc out так +1. (-: Это не объясняет, как получить возвращаемое значение sproc. –

+1

Я не понимаю, как это не объясняет, как получить возвращаемое значение процедуры. «? =» - это возвращаемое значение, т. Е. если вы должны были закончить процедуру (если возвращать значение из proc поддерживается базой данных) с возвратом XXX, то первым заполнителем является возвращаемое значение. Вышеприведенный пример может быть функцией (которая во всех dbs возвращает значение) и первым заполнителем будет возвращаемое значение. Вам нужно определить, что вы считаете возвращаемым значением с примером. – bohica

 Смежные вопросы

  • Нет связанных вопросов^_^