powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему Resultset обрезается?
25 сообщений из 38, страница 1 из 2
Почему Resultset обрезается?
    #38667234
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый, извиняюсь за то что отвлекаю(сам ненавижу когда люди не могут и ленятся сами разобраться в матчасти), но уже пол месяца не могу решить проблему.
При обращении к хранимой процедуре клиента получаю два Resultset. С первым все хорошо, но вот второй состоит из 20 строк, разработчики клиента утверждают что процедура возвращает около 1000.


Основной код Connect connectObject = new Connect();
Connection connectionToPool = null;
CallableStatement procedure = null;
ResultSet table = null;
int rowCounter;
SOATO answer = new SOATO();
int counter = 1;

try {
connectObject.init(POOL);
connectionToPool = connectObject.getConnection();

procedure = connectionToPool.prepareCall("{call procedure()}");
procedure.execute();

while (true) {
rowCounter = procedure.getUpdateCount();

if (rowCounter > 0) { // This is update counter
procedure.getMoreResults();
continue;
}

if (rowCounter == 0) { // DDL command or 0 updates
procedure.getMoreResults();
continue;
}

table = procedure.getResultSet(); // If we reached here, we have a
// set of data, or no more results
if (table != null) {
switch (counter) {
case 1: // Area tables
answer.areaDataHandler(table);
counter++;
break;

case 2: // Region tables
answer.regionDataHandler(table);
counter++;
break;

default:
break;
}
procedure.getMoreResults();
continue;
}
break; // No more results
}
}

areaDataHandler
regionDataHandler() аналогичен areaDataHandler()

public void areaDataHandler(ResultSet table) throws SQLException {
while (table.next()) {
Area temp = new Area();
temp.setKodobl(table.getInt("kodobl"));
temp.setNameobl(table.getString("nameobl"));
area.add(temp);
}
}


База данных MSSQL 2000, использовался сторонний jdbc драйвер ибо мелкомягкие прекратили поддержку 2000, а драйвер к этой версии бд изъяли.

з.ы.
От безысходности создал вопросы на хешкоде и переполнениистека, может кого на мысль натолкнет.
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667260
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByС первым все хорошо, но вот второй состоит из 20 строк, разработчики клиента утверждают что процедура возвращает около 1000.
Верить, в наше время, нельзя никому. Порой даже, самому себе. (с)
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667271
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код вынос мозга. На других сайтах почему-то не поленились код оформить.
while (true) ?

Два соврешенно разных сценария?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
if (rowCounter > 0) { // This is update counter
procedure.getMoreResults();
continue;
}

if (rowCounter == 0) { // DDL command or 0 updates
procedure.getMoreResults();
continue;
}
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667275
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не тот случай, как я уже отвечал на переполнении там скорее их сторона нуждается в работоспособности проекта чем наша)
Да и они то же знают о проблеме и пытаются найти решение вместе со мной(
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667277
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему драйвер "изъяли" тоже вопрос открытый
http://www.microsoft.com/en-us/download/details.aspx?id=1511
http://msdn.microsoft.com/en-US/data/ff928484

Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных.
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667280
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByНе тот случай, как я уже отвечал на переполнении там скорее их сторона нуждается в работоспособности проекта чем наша)
Да и они то же знают о проблеме и пытаются найти решение вместе со мной(
Пусть логи сервера посмотрят при выполнении запроса.
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667292
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczКод вынос мозга. На других сайтах почему-то не поленились код оформить.
while (true) ?

Два соврешенно разных сценария?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
if (rowCounter > 0) { // This is update counter
procedure.getMoreResults();
continue;
}

if (rowCounter == 0) { // DDL command or 0 updates
procedure.getMoreResults();
continue;
}


Код и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился.
Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю)
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667296
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПочему драйвер "изъяли" тоже вопрос открытый
http://www.microsoft.com/en-us/download/details.aspx?id=1511
http://msdn.microsoft.com/en-US/data/ff928484

Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных.
А попробуйте скачать)))
Скачивается ридми, утверждающий что пора переходить на новую версию)
А логи ничего не пишут, типо все ок
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667301
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByА попробуйте скачать)))
Скачивается ридми, утверждающий что пора переходить на новую версию)
А логи ничего не пишут, типо все ок
Ржака. :) MS в своём индусском стиле. Копирайтеры заняты, так они драйвер на readme подменили.
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667306
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByКод и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился.
Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю)

То есть, вот так принципиально работать не будет? Не нужно кривой код оправдывать спецификациями.
Код: java
1.
2.
3.
4.
if (rowCounter => 0) {
   procedure.getMoreResults();
   continue;
}
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667307
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПочему драйвер "изъяли" тоже вопрос открытый
http://www.microsoft.com/en-us/download/details.aspx?id=1511
http://msdn.microsoft.com/en-US/data/ff928484

Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных.
И кстати о настройках, я уже подумывал может в JTDS собака зарыта? Может ли он как бы порционно отдавать инфу и если да как это проверить, а затем исправить?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667308
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
area это что за переменная?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667312
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNekto_ByКод и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился.
Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю)

То есть, вот так принципиально работать не будет? Не нужно кривой код оправдывать спецификациями.
Код: java
1.
2.
3.
4.
if (rowCounter => 0) {
   procedure.getMoreResults();
   continue;
}


Ну тут да мой косяк, каюсь)
Хотя с другой стороны вдруг в перспективе понадобиться эти дополнительные фитчи из ответа по отдельности достовать, так что пускай так будет.
з.ы.
И да не стоит уходить от темы, есть ли идея где и как он обрезается?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667319
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте в prepareCall задать другие параметры для курсора
http://jtds.sourceforge.net/resultSets.html
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667324
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByИ да не стоит уходить от темы, есть ли идея где и как он обрезается?
Есть идея, что без отладки и логирования это всё гадание на кофейной гуще. Попробуйте хотя бы для JTDS настроить trace логирование и почитать почему именно прекращается чтение курсора.

catch блок адекватный?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667326
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если у вас принципиально нет доступа к базе, как вы вообще тестируете?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667330
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Процедура возвращает 2 выборки первая содержит области(ложу в класс area), вторая содержит районы(ложу в класс region)
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667338
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByПроцедура возвращает 2 выборки первая содержит области(ложу в класс area), вторая содержит районы(ложу в класс region)
На какой из моих вопросов это отвечает?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667341
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz catch блок адекватный?
Да адекватный, зарекомендовал себя в других проектах где большее количество выборок и больше данных в каждой из них
Blazkowicz А если у вас принципиально нет доступа к базе, как вы вообще тестируете?
пишем сервис ложим на сервер, пишем клиента и на локальной машине и смотрим результат работы, выскочила проблема смотрим лог сервера, все в логе хорошо - сидим гадаем(
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667345
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНа какой из моих вопросов это отвечает?
Blazkowiczarea это что за переменная?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667363
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByBlazkowiczНа какой из моих вопросов это отвечает?
пропущено...

ОК. Я думал вы программист, ожидал ответа программиста. А вам видать просто поболтать?
Давайте сделаем усилие и как программист программисту, расскажем про переменную area. Я не ваш бизнес аналитик, рассказывать где какая у вас предметная область мне не нужно.
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667423
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNekto_Byпропущено...

ОК. Я думал вы программист, ожидал ответа программиста. А вам видать просто поболтать?
Давайте сделаем усилие и как программист программисту, расскажем про переменную area. Я не ваш бизнес аналитик, рассказывать где какая у вас предметная область мне не нужно.
Так а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667433
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByТак а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них
Класс Area содержит поля и акцессоры. Переменная area это не класс. Это переменная она не может содержать полей. Это ваш код? Мне для вас его цитировать нужно?
Код: java
1.
area.add(temp);


Что такое area? List или Set?
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667471
Nekto_By
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNekto_ByТак а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них
Класс Area содержит поля и акцессоры. Переменная area это не класс. Это переменная она не может содержать полей. Это ваш код? Мне для вас его цитировать нужно?
Код: java
1.
area.add(temp);


Что такое area? List или Set?
Извини не понял про какую часть кода ты говорил(думал про первый спойлер), area это поле - ArrayList<Area> area
...
Рейтинг: 0 / 0
Почему Resultset обрезается?
    #38667481
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nekto_ByИзвини не понял про какую часть кода ты говорил(думал про первый спойлер), area это поле - ArrayList<Area> area
А откуда уверенность что проблема в ResultSet, а не где-то в чтени ArrayList и выводе этого списка?
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему Resultset обрезается?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]