![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| alafin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
Нужно реализовать автоматическое увеличение счетчика при добавлении в базу новой записи. Делаю так:
но вызывается исключение. --------------------
http://python.com.ua |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Во-первых, этот вопрос относится больше к БД и SQL, чем к Java, поскольку все упирается в грамотное формирование запроса.
Во-вторых, совершенно не понятно что у Вас таблица User содержит. Опишите ее, тогда можно и с запросом разбираться. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
И что за исключение выдается.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shurr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 5 Всего: 7 |
Судя по запросу - он написан для СУБД, которая поддерживает автоинкрементные поля, например MySQL, и подразумевается что первое поле - автоинкрементное.
Возможно имеет место попытка использовать запрос, написанного для одной СУБД, в другой СУБД, или при создании поля таблицы оно не было помечено как автоинкрементное. Для корректного ответа, как уже сказали выше, нужно название СУБД, описание полей таблицы (в идеале - скрипт, которым создавалась таблица), а также текст сообщения выбрасываемого исключения. |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
С моей точки зрения команда выглядит немного странно, так как перечисленны величины которые вставляются, но не перечисленно что вставляется....
Я так понимаю, что null - это и есть то что должно быти автоинкремент? Когда я переносил код с пхп на Java наткнулся на эксепшен, когда при создании записи передавал полю с автоинкрементом пустую строку (в пхп работало), тогда я просто перестал что любо передавать этому полю, и все стало "ок" т.е. эксепшен: Sql = "INSERT INTO `User` ( `id` , `login`, `pass`) VALUES ( '', '"+login+"','"+pass+"');"; Все ок: Sql = "INSERT INTO `User` ( `login`, `pass`) VALUES ('"+login+"','"+pass+"');"; id - автоинкримент... -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| Shurr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 24.10.2006 Репутация: 5 Всего: 7 |
Логично что вылетает исключение - для автоинкремента надо вставлять не пустую строку, а null. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
В MSSQL поле, которое описано в базе как автоинкремент, в INSERT запросе отсутствует. Автоинкремент означает, что база сама устанавливает значение, а не получает его из запроса.
Это сообщение отредактировал(а) COVD - 20.1.2007, 17:59 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |