Почему результаты базы данных Netbeans 8.1 не позволяют выполнять операции CrUD или "Показать SQL" при использовании JTOpen в базе данных DB2?

Кто-нибудь знает, почему обозреватель результатов в базе данных IDE Netbeans отключает операции CrUD и "Показать операцию CrUD SQL" при использовании соединения JDBC через драйвер JTOpen 9.1 с базой данных DB2 for i с Netbeans 8.1?

JTOpen - это драйвер JDBC с открытым исходным кодом для базы данных IBM i DB2 for i в дополнение к связке классов Java для взаимодействия с системой IBMi. http://jt400.sourceforge.net/

Снимок экрана: отсутствующие операции вставки CrUD и Show SQL Scripts

Я попробовал несколько свойств соединения JDBC, но без сигары... Пробовал несколько разных свойств соединения JDBC

Я думаю, мне придется продолжать просматривать IBM KB http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahh/jdbcproperties.htm

и источник JT400 https://github.com/devjunix/libjt400-java/blob/master/src/com/ibm/as400/access/JDProperties.java

3 ответа

Решение

Добавление "расширенных метаданных =true" в свойствах соединения исправило мою проблему.

https://godzillai5.wordpress.com/2016/08/21/jdbc-jt400-setting-to-get-crud-and-show-sql-features-added-in-netbeans-with-ibm-db2-for-i/

Документация IBM здесь http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahh/jdbcproperties.htm

"расширенные метаданные"
Указывает, запрашивает ли драйвер расширенные метаданные с сервера. Установка этого свойства в true повышает точность информации, возвращаемой следующими методами ResultSetMetaData: getColumnLabel (int) isReadOnly (int) isSearchable (int) isWriteable (int)

по-видимому, только для результирующего набора неверно считается истинным, если только не доп. метаданные возвращаются с фактическим значением для isReadOnly (int). Я предполагаю, что он принял значение false, потому что при начальном соединении свойство подключения "Только чтение" имеет значение true. Было бы полезно понять, какой параметр в системе или библиотеке / схеме вызывает соединение, имеющее это свойство.

Многие системы DB2 for i сконфигурированы так, чтобы не использовать управление фиксацией или ведение журнала. Это не то, что многие инструментарии ожидают увидеть. Попробуйте изменить строку подключения, чтобы сообщить Netbeans, что вы не хотите контролировать принятие.

Кажется, что наиболее очевидной причиной для исходного изображения, показывающего только некоторые представленные операции только для чтения, был атрибут "доступ" для соединения; т.е. если установлено значение "только для чтения", это ограничит доступ только к операторам SELECT. Но с новой информацией, показывающей свойства соединения, кажется readOnly=false, так что атрибут "доступ" не должен быть источником проблемы.
Я подозреваю, что для любой данной ТАБЛИЦЫ проблема может быть в отсутствии ПЕРВИЧНОГО КЛЮЧЕВОГО ОГРАНИЧЕНИЯ; т.е. IIRC, некоторые клиентские приложения базы данных могут предотвращать режим с возможностью обновления для конкретного TABLE, если неизвестно, что этот TABLE имеет PK.

Другие вопросы по тегам