Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / CachedRowSet .updateDate / 19 сообщений из 19, страница 1 из 1
03.12.2013, 11:19:12
    #38487056
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Здравствуйте. Это первая прога на java. В порядке знакомства с java.
Все вроде хорошо и вдруг уперся в тупик. При обновлении RowSet а из формы имеются записи с пустой датой и в этом случае возникает exception.
Код: java
1.
rws.updateDate("DateRe", SqlDate(sd));


Если SqlDate(sd)=null - исключение. Как обойти? Кто подскажет.
...
Рейтинг: 0 / 0
03.12.2013, 12:04:25
    #38487151
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.Сергей,
Проверить перед вызовом..
...
Рейтинг: 0 / 0
03.12.2013, 12:19:00
    #38487174
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Petro123О.Сергей,
Проверить перед вызовом..
Проверить можно, но что дальше? Если пользователь удалил дату на форме, как ее удалить в RowSet?
...
Рейтинг: 0 / 0
03.12.2013, 12:22:10
    #38487179
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Блин, ну пустое значение в базе это NULL. Соответствующие JDBC методы
setNull()
updateNull()
wasNull()
...
Рейтинг: 0 / 0
03.12.2013, 12:40:36
    #38487212
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
BlazkowiczБлин, ну пустое значение в базе это NULL. Соответствующие JDBC методы
setNull()
updateNull()
wasNull()
С базой все понятно, вопрос как ввести в CachedRowSet в поле типа Date значение NULL. CachedRowSet не связан с базой, коннект к базе закрыт.
В поле String NULL вводится запросто
Код: java
1.
rws.updateString("N_vhod", null);
...
Рейтинг: 0 / 0
03.12.2013, 12:49:16
    #38487232
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейС базой все понятно

Почему тогда выше ни слова про NULL?

О.Сергейвопрос как ввести в CachedRowSet в поле типа Date значение NULL.
Попробуйте читать то что вам отвечают до конца, а не только первое прежложение.

О.СергейCachedRowSet не связан с базой, коннект к базе закрыт.
Это радикально меняет JDBC API.

О.СергейВ поле String NULL вводится запросто
Код: java
1.
rws.updateString("N_vhod", null);


JDBC драйвер старается как может. Но справляется не везде.
...
Рейтинг: 0 / 0
03.12.2013, 12:49:39
    #38487234
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Вот сам себе и ответил. После проверки на NULL использовать
Код: java
1.
rws.updateString("DateRe", null);

для поля типа Date. Как-то кривовато, но работает!
...
Рейтинг: 0 / 0
03.12.2013, 12:50:47
    #38487236
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейВот сам себе и ответил. После проверки на NULL использовать
Код: java
1.
rws.updateString("DateRe", null);

для поля типа Date. Как-то кривовато, но работает!
facepalm
...
Рейтинг: 0 / 0
03.12.2013, 12:57:52
    #38487249
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Blazkowicz, JDBC драйвер зесь ни при чем. CachedRowSet - берет данные из ResultSet, который работает с драйвером.
...
Рейтинг: 0 / 0
03.12.2013, 13:02:37
    #38487261
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейJDBC драйвер зесь ни при чем.
Да, ну? А кто же выкидывает исключение при updateDate(null)? Давайте что ли stacktrace посмотрим чтобы не быть голословными.
А за одно и поищем кто же обрабатывает null значение при updateString.

О.СергейCachedRowSet - берет данные из ResultSet, который работает с драйвером.
CachedRowSet - это интерфейс. Вопрос ведь не в том откуда он берет данные, а в том где он их потом хранит.
Реализацией может быть как CachedRowSetImpl из JDK, так и аналогичные классы драйвера. В которые нужно смотреть.
...
Рейтинг: 0 / 0
03.12.2013, 13:09:24
    #38487270
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Blazkowicz, я извиняюсь, что не указал, у меня используется CachedRowSetImpl из библиотеки sun.
...
Рейтинг: 0 / 0
03.12.2013, 13:18:10
    #38487281
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.Сергейу меня используется CachedRowSetImpl
Ага. Теперь вижу. updateString() сохраняет значение как оно есть. В то время как updateDate пытается сначала конвертировать значение в необходимый тип на чем, вероятно, и обрыгивается.
...
Рейтинг: 0 / 0
03.12.2013, 13:23:19
    #38487292
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Вобщем недоделанный какой-то CachedRowSet получается.
...
Рейтинг: 0 / 0
03.12.2013, 13:27:52
    #38487297
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейВобщем недоделанный какой-то CachedRowSet получается.
Нет. Это просто чьё-то упорное игнорирование методов для работы с NULL значениями. Обратите внимание, что ваш код теперь зависит от реализации CachedRowSet, при том что использует методы ResultSet и имеет ненулевые шансы выкинуть ещё одни исключние, если вдруг кто-то захочет использовать его вместо с ResultSet.
...
Рейтинг: 0 / 0
03.12.2013, 13:48:54
    #38487323
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
BlazkowiczНет. Это просто чьё-то упорное игнорирование методов для работы с NULL значениями. Обратите внимание, что ваш код теперь зависит от реализации CachedRowSet, при том что использует методы ResultSet и имеет ненулевые шансы выкинуть ещё одни исключние, если вдруг кто-то захочет использовать его вместо с ResultSet.
Почему нет? Одно то что updateString() обрабатывает NULL, а другие udateXXX() нет, уже не логично, и следовательно не додумано, не доделано.
...
Рейтинг: 0 / 0
03.12.2013, 13:50:47
    #38487329
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейПочему нет? Одно то что updateString() обрабатывает NULL, а другие udateXXX() нет, уже не логично, и следовательно не додумано, не доделано.
Не верно. Там никто не обрабатывает null вообще. Потому что в JDBC никто null значениями не увлекается, так как есть явные методы работы с NULL.
...
Рейтинг: 0 / 0
03.12.2013, 13:57:44
    #38487345
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Не знаю кто чем увлекается, я просил совета, как обойти эту ситуацию с пустой датой - ответа не получил.
...
Рейтинг: 0 / 0
03.12.2013, 14:01:20
    #38487361
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
О.СергейНе знаю кто чем увлекается, я просил совета, как обойти эту ситуацию с пустой датой - ответа не получил.
А это я для кого писал 15230876 ? Используйте updateNull() для null значений и не важно какой там тип.
...
Рейтинг: 0 / 0
03.12.2013, 14:24:57
    #38487418
О.Сергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CachedRowSet .updateDate
Blazkowicz, извиняюсь, не понял, думал Вы это про обновление базы писали.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / CachedRowSet .updateDate / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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