Почему Java CachedRowset.updateDate("date",null) и CachedRowset.updateNull("date") получает ошибку?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему Java CachedRowset.updateDate("date",null) и CachedRowset.updateNull("date") получает ошибку?

Сообщение Anonymous »

//Это мой пример таблицы в базе данных Apache Derby 16.1:
CREATE TABLE Projects
(
PROJECT_ID INTEGER NOT NULL, ГЕНЕРИРУЕМЫЙ ВСЕГДА КАК ИДЕНТИЧНОСТЬ (НАЧАТЬ С 1,
INCREMENT BY 1),
PROJECT_TITLE VARCHAR(100),
START_DATE DATE
)
INSERT INTO Projects(Project_Title,Start_Date ) Значения («Тестовый проект 1000», «15 января 2023 г.»)
INSERT INTO Projects(Project_Title, Start_Date) Значения («Тестовый проект 2000», «21 февраля 2023 г.»)//Вот как создается Cached_RowSet:

Код: Выделить всё

RowSetFactory myRowSetFactory;
CachedRowSet cached_RowSet;

myRowSetFactory = RowSetProvider.newFactory();
cached_RowSet = myRowSetFactory.createCachedRowSet();
cached_RowSet.setUrl("DATABASE_URL");
cached_RowSet.setUsername("USERNAME");
cached_RowSet.setPassword("PASSWORD");
int [] keys = {1};
cached_RowSet.setKeyColumns(keys);
cached_RowSet.setCommand("Select * from Projects");
cached_RowSet.execute();
//Обновление базы данных происходит так:

Код: Выделить всё

cached_RowSet.absolute(1);
cached_RowSet.updateString("Project_Title","Project Title Update 1000");
cached_RowSet.updateDate("Start_Date", null);  // ---> gets error!!!
//или этот ---> cached_RowSet.updateNull("Start_Date"); ---> также выдает ошибку!!!
cached_RowSet.acceptChanges();
это выдаст ошибку!!!
< Strong>Это ошибка, которую я получаю:
java.sql.SQLDataException: 22005: [0] DATE, [1] INTEGER
в org.apache .derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:84)
в org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141)
в org.apache .derby.impl.jdbc.Util.generateCsSQLException(Util.java:225)
в org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:220)
в org.apache .derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java:3208)
в org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(ConnectionChild.java:153)
в org.apache .derby.impl.jdbc.EmbedPreparedStatement.dataTypeConversion(EmbedPreparedStatement.java:1714)
в org.apache.derby.impl.jdbc.EmbedPreparedStatement.setNull(EmbedPreparedStatement.java:345)
в java.sql .rowset/com.sun.rowset.internal.CachedRowSetWriter.updateOriginalRow(CachedRowSetWriter.java:752)
в java.sql.rowset/com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:366)
в java.sql.rowset/com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:898) ........ xxxxxxxxx
это использование OpenJDK 17.
Однако, если я использую оператор типа «UPDATE Projects SET Start_Date = null WHERE Project_ID = 1»,
он работает. Я думаю, что в Java CachedRowSet есть ошибка. Пожалуйста, помогите.
Пожалуйста, помогите. Я уже задавал этот вопрос более 1 года назад. Никто не может решить эту проблему.
Пожалуйста, помогите. Спасибо.
Я попытался установить в поле даты значение null, используяcachedrowset.updateDate("date",null) илиcachedrowset.updateNull("date"). поскольку рассматриваемое поле даты имеет значение NULL, я ожидаю, что для него будет установлено нулевое значение. но кэшированный набор всегда выдает ошибку.
В качестве обходного пути мне нужно использовать оператор SQL «UPDATE Projects SET Start_Date = null WHERE Project_ID = 1». Это работает, но не тот набор кэшированных строк, который я действительно хочу сделать.
Я думаю, что в Java CachedRowSet есть ошибка. Пожалуйста, помогите.
Пожалуйста, помогите

Подробнее здесь: https://stackoverflow.com/questions/790 ... tenulldate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java CachedRowSet.UpdateDate(null) всегда получает ошибку
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Java CachedRowSet.UpdateDate(null) всегда получает ошибку
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Java.util.Date против java.sql.Date
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • CachedRowSet медленнее, чем ResultSet?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Сохранение нескольких изменений строк CachedRowset в базе данных
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»