Я получаю простой ResultSet из моей базы данных SQL Server, используя драйвер JDBC Microsoft (mssqlserver.jar).Я думаю, что это драйвер MSSQL2000, который загружается из [Microsoft JDBC] [1]
Я хочу вызывать методы получения более одного раза для доступа к значениям, но при этом выдается следующее исключение:
java.sql.SQLException
: [Microsoft] [Драйвер SQLServer 2000 для JDBC] ResultSet
не может перечитать данные строки для столбца 1.
Вопрос в том, что яизвлечение данных в ResultSet.Из ResultSet я обращаюсь к данным в своем коде перед передачей ResultSet в другое место в коде для повторного использования.
Код подобен следующему:
// build query string
String selectQuery = "SELECT * FROM SomeWhere";
// get the data
Statement statement = sourceConnection.createStatement();
ResultSet rs = statement.executeQuery(selectQuery);
while( rs.next() ) {
// do my own internal processing
doSomethingWithRs(rs);
// now do something with the record set outside - in subclass
afterRowCopied(rs);
}
// ...
private void doSomethingWithRs(ResultSet rs) {
// access data
for( int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
Object o = rs.getObject(i);
// do something with o...
}
}
Редактировать
Я использую для этого Java 1.6.
end Редактировать
Есть мысли?Все, что я могу сделать, это переупаковать данные с ResultSetMetaData в пользовательский класс.
На самом деле не найдено слишком много сообщений по этой проблеме.Сайт Microsoft не помогает вообще.