http://www.perlmonks.org?node_id=503976

shonorio has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I need to get the result message of the query coded below to parse.

my $dbcon = DBI->connect ( qq{dbi:ODBC:driver={SQL Server};Server=127.0.0.1;database=master;}, qq{sa}, qq{*********} ) or die qq{Can't connect to database, erro : $DBI::errstr}; my $sth = $dbcon->prepare(q{ use [Northwind] DECLARE @id int, @indid int, @counter dec (15) CREATE TABLE #Temp ( id int, indid int ) INSERT INTO #Temp SELECT o.id, i.indid FROM sysobjects AS o FULL JOIN sysindexes AS i ON o.id = i.id WHERE o.xtype = 'U' SELECT @counter = COUNT(*) FROM #Temp SET rowcount 1 WHILE ( @counter ) > 0 BEGIN SELECT @id = id, @indid = indid FROM #Temp SET @counter = @counter -1 DBCC SHOWCONTIG (@id, @indid) DELETE FROM #Temp WHERE id = @id and indid = @indid END SET rowcount 0 DROP TABLE #Temp}) || die "Can't prepare sql:\n$DBI::errstr\n"; $sth->execute(); print $DBI::errstr;
But even the SQL code running well on SQL Query Analyzer, I'm getting the error message DBD::ODBC::st execute failed: [Microsoft][ODBC SQL Server Driver]Invalid cursor state (SQL-24000)(DBD: dbd_describe/SQLNumResultCols err=-1).

I'd like your help on 2 way, first to help-me on this error message, and second in how can I get the result message of the query.

Thanks,

Solli Moreira Honorio
Sao Paulo - Brazil