The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w
# $Id$

use strict;
use DBI;

# Connect to the database, and create a table and stored procedure:
my $dbh=DBI->connect("dbi:ODBC:PERL_TEST_SQLSERVER", $ENV{DBI_USER}, $ENV{DBI_PASS}, { RaiseError => 1 }) or die "Can't connect";
eval {$dbh->do("DROP PROCEDURE proc1");};
my $proc1 =
    "CREATE PROCEDURE proc1 ".
    "	\@MaxOrderID1      int OUTPUT, " .
    "	\@MaxOrderID2    varchar(32) OUTPUT AS " .
    "	SELECT \@MaxOrderid1 = 200 + 100 " . 
    "	SELECT \@MaxOrderid2 = '200' + '100' ".
    "   return (0) ";


eval {$dbh->do ($proc1);};
if ($@) {
   print "Error creating procedure.\n$@\n";
}

# Execute it:
if (-e "dbitrace.log") {
   unlink("dbitrace.log");
}
$dbh->trace(9, "dbitrace.log");
my $sth = $dbh->prepare ("{call proc1(?, ?) }");
my $retValue1;
my $retValue2;
$sth->bind_param_inout(1,\$retValue1, 32);
$sth->bind_param_inout(2,\$retValue2, 32);
$sth->execute;
print "$retValue1, $retValue2\n";
$dbh->disconnect;