I have a ruby script which I run using the JRuby Interpreter. The script
connects to a Sybase database using DBI and Sybase JDBC (jTDS3.jar and
jconn3.jar)
My problem is that I have a select query that when I return the result I
change the column names. For example:
SELECT
t.TRANSACTION as ‘business_transaction’,
t.TRADE_CURRENCY as ‘currency’,
t.CURRENCY as ‘settlement_currency’
…etc…
FROM
TRADE t
…etc…
My problem is when using the examples directly from the documentation
(http://www.kitebird.com/articles/ruby-dbi.html)
sth = dbh.execute(stmt)
printf “Number of rows: %d\n”, rows.size
printf “Number of columns: %d\n”, sth.column_names.size
sth.column_info.each_with_index do |info, i|
printf “— Column %d (%s) —\n”, i, info[“name”]
end
or simply
sth = dbh.execute(stmt)
rows = sth.fetch_all
col_names = sth.column_names
sth.finish
DBI::Utils::TableFormatter.ascii(col_names, rows)
Not ALL the names come out as I set them using the ‘as’ clause in the
query. Some are the original field names and some are the names I have
specified.
For example they will list like:
— Column 0 (TRANSACTION) —
— Column 1 (TRADE_CURRENCY) —
— Column 2 (settlement_currency) —
or
TRANSACTION
TRADE_CURRENCY
settlement_currency
When testing this in Squirrel SQL Client the columns are correctly named
so is this a bug in DBI or the Sybase JDBC drivers? or am I doing
something wrong?
Any help would be greatly appreciated
I posted on: