Почему я не могу получить доступ к данным столбца по целому числу от executeQuery obj? - PullRequest
1 голос
/ 28 июня 2010

Я двухдневный новичок в NetRexx и Java.

Я попытался изменить примеры из Красной книги IBM, чтобы создать многопоточный tcp-сервер, который выполняет SQL в базе данных Firebird.

Первая попытка здесь http://www.compkarori.co.nz:8000/NetRexx/JDBC-bridge.nrx

Когда я пытаюсь перебрать данные столбца

loop col=1 to nbr_columns 
 say 'Column' col
 -- say rs.getString(col) -- gives error Message:  Column name 1 not found in result set.
 if buffer = '' then 
     buffer = rs.getString(column_name).trim()
 else
     buffer = buffer || '|' || rs.getString(column_name).trim()
end

Я получаю ошибку, как в комментариях к коду, если я использую счетчик цикла в качестве индекса viz: rs.getString (col), и поэтому я прибегаю к использованию имени столбца. Но если я сделаю это:

say rs.getString(1)

все в порядке. Это потому, что col является строкой Rexx, а не целым числом Java или чем-то еще?

Кроме того, я должен закрывать сокет и поток после каждого запроса, в противном случае я не получаю никакого ответа. Это необходимо или я могу как-то оставить поток работающим, чтобы принимать новые запросы?

(ps: кто-нибудь может добавить тег NetRexx ??)

1 Ответ

1 голос
/ 20 июля 2010

Метод getString перегружен, поэтому мне нужно принудительно установить значение int. И я выяснил, как повторно использовать поток и сокет ... отметив, что только объекты соединений Oracle и Firebird / Interbase JDBC кажутся поточно-безопасными

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...