connecting to an SQLExpress database to run a stored procedure, and
output parameters are not working.  If anyone has any help they can
give, it would be greatly appreciated.

require 'rubygems'
require 'odbc'

# CREATE PROCEDURE dbo.up_TestSP4(@NotUsed INT, @ReturnVar INT OUTPUT)
# AS
# SET @ReturnVar = 666
# /*
# DECLARE @P2 INT
# EXEC dbo.up_TestSP4 10, @P2 OUTPUT
# SELECT @P2
# */

# Error:
# 2000 (8162) [FreeTDS][SQL Server]The formal parameter "@P2" was not
# declared as an OUTPUT parameter, but the actual parameter passed in
# requested output.
# odbc_test.rb:26:in `execute'

begin
  conn = ODBC::Database.connect("dsn", "xxx", "xxx")
  stmt = conn.prepare("exec dbo.up_TestSP4 ?, ?")
  stmt.param_iotype(1, ODBC::SQL_PARAM_OUTPUT)
  stmt.param_output_type(1, ODBC::SQL_INTEGER)
  stmt.param_output_size(1, 4)
  res = stmt.execute(1, nil)
  out_value = stmt.param_output_value(1)
  puts "#{out_value}"
rescue Exception => e
  puts e
  puts e.backtrace.join("\n")
ensure
  stmt.cancel if stmt
  conn.disconnect if conn && conn.connected?
end
-- 
Posted via http://www.ruby-forum.com/.