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 alters the column names of table. 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
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