|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
MadMax : 2 Новичок
|
Янв 24, 2012 10:00 |
|
|
Уважаемые форумчане, помогите разобраться со следующей проблемой: столкнулся с плавающей ошибкой, связанной с перемещением по ResultSet, а именно определением количества строк. На некоторых базах все работает (DB2 через ODBC, MySql напрямую), а на другой (Cache через ODBC) выходит эта ошибка.
Вот куски кода:
| Код: |
sql = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
int number = -1;
if (sql.execute(query)) {
result = sql.getResultSet();
info = result.getMetaData();
number = fillData(rowLimit);
} else {
number = sql.getUpdateCount();
}
return number;
|
и сама функция для извлечения данных fillData
| Код: |
public int fillData(int rowLimit) throws projectException{
if (checkConnection()) {
try {
colHeads = new String[0];
data = new String[0][0];
int number = -1;
int rownum = 0;
if (info != null && result != null) {
number = info.getColumnCount();
colHeads = new String[number];
/*возникает ошибка*/ result.last();
int total = result.getRow();
total = (total<rowLimit?total:rowLimit);
data = new String[total][number];
for (int i = 0;i<number;i++)
colHeads[i] = info.getColumnLabel(i+1);
result.beforeFirst();
while(result.next()) {
if (rownum>=total) break;
for (int i = 0;i<number;i++) {
data[rownum][i] = result.getString(i+1);
}
rownum++;
}
}
return rownum;
} catch (Exception e) {
try {
closeConnection();
} catch (projectException e1) {}
finally {throw new projectException(e.getMessage());}
}
} else
return -1;
}
|
Подскажите, в какую сторону капать?
Соединение на обоих базах проходит правильно, запрос выполняется, количество столбцов извлекается правильно, не работает перемещение по ResultSet |
|
|
|
 |
MadMax : 2 Новичок
|
Янв 30, 2012 9:22 |
|
|
| Удивительно, но эта ошибка исчезла, когда я вместо ODBC использовал подключение напрямую к серверу. |
|
|
|
 |
|
|
Страница 1 из 1
|
Список форумов
-> Работа с базами данных |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|