ruby-odbc and OUTPUT params not working

C

Chris Hall

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top