From 2e2d76e81d65536b8320bbf80b101e466da3893b Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 1 May 2013 20:43:04 +0200 Subject: [PATCH] [#2299] Fixed some issues related to Sybase's unsupported ResultSet holdability --- .../java/org/jooq/impl/AbstractResultQuery.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java index 75ff45aa5b..fb464a9515 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractResultQuery.java @@ -198,10 +198,16 @@ abstract class AbstractResultQuery extends AbstractQuery imple // [#1846] [#2265] [#2299] Users may explicitly specify how ResultSets // created by jOOQ behave. This will override any other default behaviour if (resultSetConcurrency != 0 || resultSetType != 0 || resultSetHoldability != 0) { - ctx.statement(ctx.connection().prepareStatement(ctx.sql(), - resultSetType != 0 ? resultSetType : ResultSet.TYPE_FORWARD_ONLY, - resultSetConcurrency != 0 ? resultSetConcurrency : ResultSet.CONCUR_READ_ONLY, - resultSetHoldability != 0 ? resultSetHoldability : ctx.connection().getHoldability())); + int type = resultSetType != 0 ? resultSetType : ResultSet.TYPE_FORWARD_ONLY; + int concurrency = resultSetConcurrency != 0 ? resultSetConcurrency : ResultSet.CONCUR_READ_ONLY; + + // Sybase doesn't support holdability. Avoid setting it! + if (resultSetHoldability == 0) { + ctx.statement(ctx.connection().prepareStatement(ctx.sql(), type, concurrency)); + } + else { + ctx.statement(ctx.connection().prepareStatement(ctx.sql(), type, concurrency, resultSetHoldability)); + } } // [#1296] These dialects do not implement FOR UPDATE. But the same