details: https://code.openbravo.com/erp/stable/2.50/rev/4b2156ebe0da
changeset: 9651:4b2156ebe0da
user: Asier Lostalé <asier.lostale <at> openbravo.com>
date: Tue Sep 06 09:42:13 2011 +0200
summary: fixed bug 18436: 2.50 grid, cursors in Oracle are not reused
Using prepared statement parameter for grid limits in Oracle
diffstat:
src/org/openbravo/erpCommon/utility/TableSQLData.java | 31 +++++++++++++++---
1 files changed, 25 insertions(+), 6 deletions(-)
diffs (51 lines):
diff -r f0df4e7f4ffd -r 4b2156ebe0da
src/org/openbravo/erpCommon/utility/TableSQLData.java
--- a/src/org/openbravo/erpCommon/utility/TableSQLData.java Mon Sep 05
18:00:11 2011 +0200
+++ b/src/org/openbravo/erpCommon/utility/TableSQLData.java Tue Sep 06
09:42:13 2011 +0200
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2001-2010 Openbravo SLU
+ * All portions are Copyright (C) 2001-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -2133,14 +2133,33 @@
String rangeEnd = Integer.toString(startPosition + rangeLength);
if (getPool().getRDBMS().equalsIgnoreCase("ORACLE")) {
txtAuxWhere.append("A");
- if (hasRangeLimit)
- txtAuxWhere.append(" WHERE ROWNUM <= " + rangeEnd);
+ if (hasRangeLimit) {
+ txtAuxWhere.append(" WHERE ROWNUM <= ?");
+ addWrapperParameter("oraRangeEnd", "RANGE", "");
+ try {
+ setParameter("oraRangeEnd", rangeEnd);
+ } catch (Exception e) {
+ // This shouldn't happen as name parameter is not null nor empty
+ log4j.error("Error setting parameters ", e);
+ }
+ }
txtAuxWhere.append(")\n");
txtAuxWhere.append(" WHERE rn1 ");
- if (hasRangeLimit)
- txtAuxWhere.append("BETWEEN " + rangeStart + " AND " + rangeEnd);
- else
+ if (hasRangeLimit) {
+ txtAuxWhere.append("BETWEEN ? AND ?");
+ addWrapperParameter("oraRangeBtw1", "RANGE", "");
+ addWrapperParameter("oraRangeBtw2", "RANGE", "");
+
+ try {
+ setParameter("oraRangeBtw1", rangeStart);
+ setParameter("oraRangeBtw2", rangeEnd);
+ } catch (Exception e) {
+ // This shouldn't happen as name parameter is not null nor empty
+ log4j.error("Error setting parameters ", e);
+ }
+ } else {
txtAuxWhere.append(">= ?");
+ }
txtAuxWhere.append(")\n");
} else {
if (hasRangeLimit)
------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits