|
|
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
День добрый, извиняюсь за то что отвлекаю(сам ненавижу когда люди не могут и ленятся сами разобраться в матчасти), но уже пол месяца не могу решить проблему. При обращении к хранимой процедуре клиента получаю два 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, а драйвер к этой версии бд изъяли. з.ы. От безысходности создал вопросы на хешкоде и переполнениистека, может кого на мысль натолкнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 10:36 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByС первым все хорошо, но вот второй состоит из 20 строк, разработчики клиента утверждают что процедура возвращает около 1000. Верить, в наше время, нельзя никому. Порой даже, самому себе. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 10:56 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Код вынос мозга. На других сайтах почему-то не поленились код оформить. while (true) ? Два соврешенно разных сценария? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:00 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Не тот случай, как я уже отвечал на переполнении там скорее их сторона нуждается в работоспособности проекта чем наша) Да и они то же знают о проблеме и пытаются найти решение вместе со мной( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:02 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Почему драйвер "изъяли" тоже вопрос открытый http://www.microsoft.com/en-us/download/details.aspx?id=1511 http://msdn.microsoft.com/en-US/data/ff928484 Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:02 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByНе тот случай, как я уже отвечал на переполнении там скорее их сторона нуждается в работоспособности проекта чем наша) Да и они то же знают о проблеме и пытаются найти решение вместе со мной( Пусть логи сервера посмотрят при выполнении запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:03 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКод вынос мозга. На других сайтах почему-то не поленились код оформить. while (true) ? Два соврешенно разных сценария? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Код и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился. Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:12 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПочему драйвер "изъяли" тоже вопрос открытый http://www.microsoft.com/en-us/download/details.aspx?id=1511 http://msdn.microsoft.com/en-US/data/ff928484 Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных. А попробуйте скачать))) Скачивается ридми, утверждающий что пора переходить на новую версию) А логи ничего не пишут, типо все ок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:15 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByА попробуйте скачать))) Скачивается ридми, утверждающий что пора переходить на новую версию) А логи ничего не пишут, типо все ок Ржака. :) MS в своём индусском стиле. Копирайтеры заняты, так они драйвер на readme подменили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:17 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByКод и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился. Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю) То есть, вот так принципиально работать не будет? Не нужно кривой код оправдывать спецификациями. Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:19 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПочему драйвер "изъяли" тоже вопрос открытый http://www.microsoft.com/en-us/download/details.aspx?id=1511 http://msdn.microsoft.com/en-US/data/ff928484 Но для 2000, JTDS, все же должен быть лучше. Много там всяких настроек полезных. И кстати о настройках, я уже подумывал может в JTDS собака зарыта? Может ли он как бы порционно отдавать инфу и если да как это проверить, а затем исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:19 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
area это что за переменная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:19 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNekto_ByКод и там и тут тупо скопипастил из проекта так что хз чего он тут так вставился. Это взял с официальной документации, насколько я понял необходимы что бы выйти на ResultSet, ибо помимо него возвращаются всякие указатели и счетчики(для чего они нужны я не знаю) То есть, вот так принципиально работать не будет? Не нужно кривой код оправдывать спецификациями. Код: java 1. 2. 3. 4. Ну тут да мой косяк, каюсь) Хотя с другой стороны вдруг в перспективе понадобиться эти дополнительные фитчи из ответа по отдельности достовать, так что пускай так будет. з.ы. И да не стоит уходить от темы, есть ли идея где и как он обрезается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:22 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Попробуйте в prepareCall задать другие параметры для курсора http://jtds.sourceforge.net/resultSets.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:28 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByИ да не стоит уходить от темы, есть ли идея где и как он обрезается? Есть идея, что без отладки и логирования это всё гадание на кофейной гуще. Попробуйте хотя бы для JTDS настроить trace логирование и почитать почему именно прекращается чтение курсора. catch блок адекватный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:30 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
А если у вас принципиально нет доступа к базе, как вы вообще тестируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:33 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Процедура возвращает 2 выборки первая содержит области(ложу в класс area), вторая содержит районы(ложу в класс region) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:38 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByПроцедура возвращает 2 выборки первая содержит области(ложу в класс area), вторая содержит районы(ложу в класс region) На какой из моих вопросов это отвечает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:43 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz catch блок адекватный? Да адекватный, зарекомендовал себя в других проектах где большее количество выборок и больше данных в каждой из них Blazkowicz А если у вас принципиально нет доступа к базе, как вы вообще тестируете? пишем сервис ложим на сервер, пишем клиента и на локальной машине и смотрим результат работы, выскочила проблема смотрим лог сервера, все в логе хорошо - сидим гадаем( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:44 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНа какой из моих вопросов это отвечает? Blazkowiczarea это что за переменная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:45 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByBlazkowiczНа какой из моих вопросов это отвечает? пропущено... ОК. Я думал вы программист, ожидал ответа программиста. А вам видать просто поболтать? Давайте сделаем усилие и как программист программисту, расскажем про переменную area. Я не ваш бизнес аналитик, рассказывать где какая у вас предметная область мне не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:57 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNekto_Byпропущено... ОК. Я думал вы программист, ожидал ответа программиста. А вам видать просто поболтать? Давайте сделаем усилие и как программист программисту, расскажем про переменную area. Я не ваш бизнес аналитик, рассказывать где какая у вас предметная область мне не нужно. Так а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:24 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByТак а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них Класс Area содержит поля и акцессоры. Переменная area это не класс. Это переменная она не может содержать полей. Это ваш код? Мне для вас его цитировать нужно? Код: java 1. Что такое area? List или Set? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:28 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNekto_ByТак а что про неё говорить? Переменная содержит два поля, соответствующие полям возвращаемым в первом наборе, и гетеры сетеры для них Класс Area содержит поля и акцессоры. Переменная area это не класс. Это переменная она не может содержать полей. Это ваш код? Мне для вас его цитировать нужно? Код: java 1. Что такое area? List или Set? Извини не понял про какую часть кода ты говорил(думал про первый спойлер), area это поле - ArrayList<Area> area ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:53 |
|
||
|
Почему Resultset обрезается?
|
|||
|---|---|---|---|
|
#18+
Nekto_ByИзвини не понял про какую часть кода ты говорил(думал про первый спойлер), area это поле - ArrayList<Area> area А откуда уверенность что проблема в ResultSet, а не где-то в чтени ArrayList и выводе этого списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38667234&tid=2127067]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 471ms |

| 0 / 0 |
