1

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

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

缺少插入 CrUD 操作和显示 SQL 脚本的屏幕截图

我尝试了一些 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

4

3 回答 3

2

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

于 2016-08-14T12:58:28.603 回答
2

在连接属性中添加“扩展元数据 = 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-一世/

IBM 文档在这里http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahh/jdbcproperties.htm

“扩展元数据”
指定驱动程序是否从服务器请求扩展元数据。将此属性设置为 true 可提高从以下 ResultSetMetaData 方法返回的信息的准确性: getColumnLabel(int) isReadOnly(int) isSearchable(int) isWriteable(int)

显然,结果集的 readonly 被错误地假定为 true,除非 ext. 元数据返回 isReadOnly(int) 的实际值。我猜它假定为假,因为在初始连接上,连接属性“只读”为真。了解系统或库/架构上的哪些设置导致连接具有该属性会很有帮助。

于 2016-08-21T22:09:10.087 回答
1

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

于 2016-08-21T18:56:25.693 回答