为什么我不能通过executeQuery obj中的整数访问列数据?

时间:2010-06-27 22:22:33

标签: java jdbc netrexx

我是NetRexx和Java的两天新手。

我尝试修改IBM红皮书示例,以创建一个在firebird数据库上执行SQL的多线程tcp服务器。

第一次尝试是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),我会在代码注释中收到错误,所以我正在使用columnname。但如果我这样做:

say rs.getString(1)

没关系。这是因为col是Rexx字符串而不是Java整数还是什么?

此外,我必须在每次查询后关闭套接字和线程,否则我不会得到任何回复。这是必要的还是我可以以某种方式让线程继续运行以接受新的查询?

(ps:有人可以添加NetRexx标签吗??)

1 个答案:

答案 0 :(得分:1)

getString方法被重载,这就是我需要强制int值的原因。我想出了如何重用线程和套接字..注意到只有Oracle和Firebird / Interbase JDBC连接对象看起来是线程安全的