diff --git a/base/src/org/compiere/util/DB.java b/base/src/org/compiere/util/DB.java
index 287308afc4..73ffa4f9f6 100644
--- a/base/src/org/compiere/util/DB.java
+++ b/base/src/org/compiere/util/DB.java
@@ -36,10 +36,6 @@ import org.compiere.process.*;
/**
* General Database Interface
- *
- *
- * - 2007-01-30 - teo_sarca - [ 1647864 ] WAN: delete record error
- *
*
* @author Jorg Janke
* @version $Id: DB.java,v 1.8 2006/10/09 00:22:29 jjanke Exp $
@@ -48,6 +44,10 @@ import org.compiere.process.*;
* get a new connection from database pool manager which manages all connections
* set rw/ro properties for the connection accordingly.
* @author Ashley Ramdass (Posterita)
+ *
+ * @author Teo Sarca, SC ARHIPAC SERVICE SRL
+ * BF [ 1647864 ] WAN: delete record error
+ * FR [ 1884435 ] Add more DB.getSQLValue helper methods
*/
public final class DB
{
@@ -1176,6 +1176,42 @@ public final class DB
return retValue;
} // getSQLValue
+ /**
+ * Get int Value from sql
+ * @param trxName trx
+ * @param sql sql
+ * @param params array of parameters
+ * @return first value or -1
+ */
+ public static int getSQLValue (String trxName, String sql, Object... params)
+ {
+ int retValue = -1;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ try
+ {
+ pstmt = prepareStatement(sql, trxName);
+ for (int i = 0; i < params.length; i++) {
+ pstmt.setObject(i+1, params[i]);
+ }
+ rs = pstmt.executeQuery();
+ if (rs.next())
+ retValue = rs.getInt(1);
+ else
+ log.info("No Value " + sql);
+ }
+ catch (Exception e)
+ {
+ log.log(Level.SEVERE, sql, e);
+ }
+ finally
+ {
+ close(rs, pstmt);
+ rs = null; pstmt = null;
+ }
+ return retValue;
+ }
+
/**
* Get String Value from sql
* @param trxName trx
@@ -1212,6 +1248,42 @@ public final class DB
return retValue;
} // getSQLValueString
+ /**
+ * Get String Value from sql
+ * @param trxName trx
+ * @param sql sql
+ * @param params array of parameters
+ * @return first value or null
+ */
+ public static String getSQLValueString (String trxName, String sql, Object... params)
+ {
+ String retValue = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ try
+ {
+ pstmt = prepareStatement(sql, trxName);
+ for (int i = 0; i < params.length; i++) {
+ pstmt.setObject(i+1, params[i]);
+ }
+ rs = pstmt.executeQuery();
+ if (rs.next())
+ retValue = rs.getString(1);
+ else
+ log.info("No Value " + sql);
+ }
+ catch (Exception e)
+ {
+ log.log(Level.SEVERE, sql, e);
+ }
+ finally
+ {
+ close(rs, pstmt);
+ rs = null; pstmt = null;
+ }
+ return retValue;
+ }
+
/**
* Get BigDecimal Value from sql
* @param trxName trx
@@ -1247,7 +1319,79 @@ public final class DB
}
return retValue;
} // getSQLValueBD
-
+
+ /**
+ * Get BigDecimal Value from sql
+ * @param trxName trx
+ * @param sql sql
+ * @param params array of parameters
+ * @return first value or null
+ */
+ public static BigDecimal getSQLValueBD (String trxName, String sql, Object... params)
+ {
+ BigDecimal retValue = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ try
+ {
+ pstmt = prepareStatement(sql, trxName);
+ for (int i = 0; i < params.length; i++) {
+ pstmt.setObject(i+1, params[i]);
+ }
+ rs = pstmt.executeQuery();
+ if (rs.next())
+ retValue = rs.getBigDecimal(1);
+ else
+ log.info("No Value " + sql);
+ }
+ catch (Exception e)
+ {
+ log.log(Level.SEVERE, sql, e);
+ }
+ finally
+ {
+ close(rs, pstmt);
+ rs = null; pstmt = null;
+ }
+ return retValue;
+ }
+
+ /**
+ * Get Timestamp Value from sql
+ * @param trxName trx
+ * @param sql sql
+ * @param params array of parameters
+ * @return first value or null
+ */
+ public static Timestamp getSQLValueTS (String trxName, String sql, Object... params)
+ {
+ Timestamp retValue = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ try
+ {
+ pstmt = prepareStatement(sql, trxName);
+ for (int i = 0; i < params.length; i++) {
+ pstmt.setObject(i+1, params[i]);
+ }
+ rs = pstmt.executeQuery();
+ if (rs.next())
+ retValue = rs.getTimestamp(1);
+ else
+ log.info("No Value " + sql);
+ }
+ catch (Exception e)
+ {
+ log.log(Level.SEVERE, sql, e);
+ }
+ finally
+ {
+ close(rs, pstmt);
+ rs = null; pstmt = null;
+ }
+ return retValue;
+ }
+
/**
* Get Array of Key Name Pairs
* @param sql select with id / name as first / second column