为什么在 DB2 数据库上使用 JTOpen 时,Netbeans 8.1 数据库结果不允许 CrUD 或 "Show SQL" 操作?

Why does Netbeans 8.1 database results not allow CrUD or "Show SQL" operations when using JTOpen on a DB2 database?

任何人都知道为什么 Netbeans IDE 的数据库结果浏览器禁用 CrUD 操作和 "Show SQL 'CrUD' Operation" 当通过 JTOpen 9.1 驱动程序使用 JDBC 连接到带有 Netbeans 的 DB2 for i 数据库时 "Show SQL 'CrUD' Operation" 8.1?

JTOpen 是 IBM i DB2 for i 数据库的开源 JDBC 驱动程序,此外还有一堆 Java 类 用于与 IBMi 系统交互。 http://jt400.sourceforge.net/

我尝试了一些 JDBC 连接属性,但没有雪茄...

我想我必须继续浏览 IBM 知识库 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

许多 DB2 for i 系统配置为使用提交控制或日志记录。这不是许多工具包期望看到的。尝试更改连接字符串以告诉 Netbeans 您不需要提交控制。

原始图像仅显示一些只读操作的最明显原因似乎是连接的 "access" 属性;即,如果设置为 "read only",那将限制对 SELECT 语句的访问。但是随着显示连接属性的新信息,似乎 readOnly=false,因此 "access" 属性不应该是问题的根源。
我怀疑对于任何给定的 TABLE,问题可能是因为缺少 PRIMARY KEY CONSTRAINT;即 IIRC,某些客户端数据库应用程序可能会阻止特定 TABLE 的可更新模式,如果不知道 TABLE 具有 PK。

在连接属性中添加 "extended metadata=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

"extended metadata"
Specifies whether the driver requests extended metadata from the server. Setting this property to true increases the accuracy of the information returned from the following ResultSetMetaData methods: getColumnLabel(int) isReadOnly(int) isSearchable(int) isWriteable(int)

显然结果集只读被错误地假定为真,除非分机。元数据返回 isReadOnly(int) 的实际值。我猜它假定为假,因为在初始连接上,连接 属性 "Read Only" 为真。了解系统上的什么设置或 Library/Schema 导致连接具有 属性.

会很有帮助