使用SAP Hana JDBC驱动程序创建Scroll_Insensitive ResultSet

时间:2015-06-24 06:22:58

标签: java jdbc hana

我正在尝试使用SAP Hana JDBC Driver中的/创建Scroll_Insensitive ResultSet。当我运行以下代码时:

Class.forName("com.sap.db.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:sap://10.32.86.10:30115/autocommit=false",username,password);                  
java.sql.Statement stmt = connection.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
java.sql.ResultSet resultSet = stmt.executeQuery("SELECT * FROM SAMPLE");
resultSet.next();
String hello = resultSet.getString(1);

我得到以下异常:

com.sap.db.jdbc.exceptions.jdbc40.SQLDataException: Invalid argument resultSetType, use TYPE_FORWARD_ONLY.

如果我用第三行替换:

java.sql.Statement stmt = connection.createStatement();

它没有任何障碍。我需要ResultSet为Scroll_Insensitive才能使用

等方法
rs.previous(), rs.last(), rs.getRow(), etc.

相同的代码适用于MySQL,Microsoft SQL,TeraData&甲骨文。 SAP Hana有什么问题?有解决方法吗?

2 个答案:

答案 0 :(得分:0)

答案就是错误消息所暗示的内容:SAP HANA的JDBC驱动程序(当前)仅为您提供FORWARD ONLY游标类型。

这里的问题是你在这里真正需要TYPE_SCROLL_INSENSITIVE游标类型的具体特征吗?

答案 1 :(得分:0)

我还遇到了同样的错误,我想检查已处理的行是否是结果集的最后一行,并在resultset对象上尝试rs.last()方法。以下是我在SAP SCN上发现的内容:

  

由于使用仅向前游标时的性能提升我们   从TYPE_SCROLL_SENSITIVE更改了结果集类型的默认值   从JDBC驱动程序版本7.6开始到TYPE_FORWARD_ONLY。所以我想   例外来自你没有设置的声明   创建它时的结果集类型。请检查是否全部   您想要滚动的语句设置正确   结果集类型。

这是线程的链接: The operation is not allowed for result set type FORWARD_ONLY