On Saturday, October 16, 2010 10:08 AM, Martin J. Evans wrote: > When I run your code with a different driver to MS SQL Server it works
> as I'd expect: [...] > print "Execute() returned $exec_retval.\n"; > print 'errstr is"', $sth->errstr, '"', "\n"; > > mar...@bragi:~/svn/dbd-odbc/trunk/rt_data$ perl success_with_info.pl > DBD::ODBC::st execute failed: [unixODBC][Easysoft][SQL Server > Driver][SQL Server ]Cannot insert the value NULL into column > 'enabled', table 'master.dbo.feeds'; column does not allow > nulls. INSERT fails. (SQL-23000) [state was 23000 now 01000] > [unixODBC][Easysoft][SQL Server Driver][SQL Server]The statement has > been terminated. (SQL-01000) at success_with_info.pl line 103. > Use of uninitialized value $exec_retval in concatenation (.) or string > at success_with_info.pl line 110. > Execute() returned . > errstr is"[unixODBC][Easysoft][SQL Server Driver][SQL Server]Cannot > insert the value NULL into column 'enabled', table > 'master.dbo.feeds'; column does not allow nulls. INSERT > fails. (SQL-23000) [state was 23000 now 01000] > [unixODBC][Easysoft][SQL Server Driver][SQL Server]The statement has > been terminated. (SQL-01000)" > mar...@bragi:~/svn/dbd-odbc/trunk/rt_data$ > > Which as far as I'm concerned is more evidence that your driver is > broken. Please send me the driver name, version etc you are using. At > the very least I may add a note that it is broken as there is little I > might be able to do to work around this. That's interesting -- what driver were you using for that test? (as mentioned elsewhere in this thread, I am using SQLSRV32.DLL, version 6.01.7600.16385, of 2009/07/13). I spoke to a database guy I know at Microsoft; he was of the opinion that since the sproc was *called* successfully, it was not an error condition, and that I need to parse the return info (error message). He wasn't speaking authoritatively though, and I don't know if this is true in general. Do you happen to know what counts as an "error condition" for SQL Server / ODBC? And what counts as SQL_SUCCESS_WITH_INFO? Thanks, -- Eric