![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Сириус |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
У меня есть страничка, откуда с помощью Ajax-тезнологии происходит запрос к сервлету.
В этом сервлете есть код
Вот. Но по всей видимости программа не может выполнить этот код. Хотя все нормально компилируется, без ошибок, и по идее все должно было работать, но никаких записей не добавляется и где-то там застревает процесс, это я понял по результатам из функции Ajax Вот http_request.onreadystatechange, это происходит дважды, и все. Результат никогда не равняется 4. http_request.readyState == 4 ..вот это условие нормального завершения не выполняется. Значит где-то что-то не то. Хотя оператор SELECT например работает. Может быть какой-то запрет на запись в базах данных? Вот такая странная весьма тупиковая ситуация. Это сообщение отредактировал(а) Сириус - 25.12.2006, 01:21 |
|||
|
||||
| Сириус |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Попробовал методом executeUpdate, но он для INSERT не помог, хотя UPDATE получился.
Странно.. |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
А описание какие ошибки выдает сервлет будет? Или нам начинать строить логическую цепь из 117 предположений что же могло произойти?
|
|||
|
||||
| Сириус |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Ошибок не выдает сервлет.
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Должен работать. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Подозреваю, что на поле login стоит unique constraint и имеет место быть попытка вставить дублирующиеся записи, поэтому update работает, а insert нет. Ждем подробностей.
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Ситуация когда все работает, но запись не вставляется в таблицу, невозможна по определению, правильно? Если конечно не вмешались потусторонние силы. Ну тогда кому как не нам, телепатам, с ними бороться. И так. Вариант первый. СУБД не отрабатывает INSERT. Крайне маловероятно, хотя смотря что за СУБД. Вариант второй. AJAX-приложение не отправляет запрос серверу. Тоже маловероятно. Как это, при UPDATE отправляет, а при INSERT нет. Хотя все возможно. Проверь, вызывается ли сервлет. Вариант третий. В сервлете не происходит фиксация транзакции, правда опять-таки почему-то только при INSERT. Если установлен autoCommit, то такой вариант не подходит. Проверь код - фиксируется ли транзакция. Вариант четвертый, заключительный. Сервлет вываливает таки исключение, но ты его перехватываешь и ничего не печатаешь, например. Еще один вариант описан выше. Остальные 112 возможных случаев описывать пока не буду. |
|||
|
||||
| Сириус |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
tux я разве сказал что все работает? Если ошибок не выдется, это еще не значит что все работает, так что пока про потусторонние силы забудь. Я нашел проблему, выложу, может будет интересно.
В запросе на INSERT не были задействованны некоторые поля таблицы, которые не имели значений default. Поэтому INSERT не работал. А если в SQLyog просто ввести тот же запрос (не через джава, а прямо), то все работает, поэтому я думал что через Джава тоже должно работать. Вот такие тонкости. В Php тоже работает, а в Джава так нельзя, поля которые не указываются, должны иметь значение default (или скажем Auto Increment ). |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
В SQLyog работает, в PHP работает, в Java не работает, но ошибок не выдает. Не забуду я про потусторонние силы - не бывает так. Либо драйвер JDBC молча проглатывает некорректные команды (маловероятно) либо твой код где-то проглатывает ошибки. В общем, разберись со своим кодом, иначе еще много чудес увидишь. Либо драйвер замени.
|
|||
|
||||
| Сириус |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Не правильный запрос должен всегда выдавать ошибку...?......
tux, пусть будет так "В SQLyog работает, в PHP работает, в Java не работает" без " но ошибок не выдает"... |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Да, SQLException. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |