\r
StringBuilder sql = new StringBuilder();\r
sql.append("SELECT ");\r
+ \r
+ if(options.isCountOnly() == true) {\r
+ sql.append(" COUNT(");\r
+ }\r
sql.append("i.id itemid,");\r
sql.append("i.title itemtitle,");\r
sql.append("m.id mediaid,");\r
sql.append("m.houseid mediahouseid,");\r
sql.append("mf.houseid mediafilehouseid,");\r
sql.append("vw_mf.mediafilecount");\r
+ if(options.isCountOnly() == true) {\r
+ sql.append(") AS NumberOfRecords");\r
+ } \r
+\r
sql.append(" FROM ITEM i, MEDIA m, MEDIAFILE mf, MEDIADESCRIPTION md, VW_MEDIAFILES vw_mf, ITEMTYPE it");\r
sql.append(" WHERE i.id = md.itemid AND m.id = md.mediaid AND mf.id = md.mediafileid");\r
sql.append(" AND m.id=vw_mf.mediaid AND m.itemTypeId = it.id");\r
sql.append(" AND CONTAINS(md.description, '" + criteria + "') >= 1");\r
}\r
\r
- /*\r
- if (options.getFrom() != null)\r
- sql.append(String.format(" AND m.archived > '%s'", df.format(options.getFrom())));\r
- \r
- if (options.getTo() != null)\r
- sql.append(String.format(" AND m.archived < '%s'", df.format(options.getTo())));\r
- */\r
if (options.getFrom() != null)\r
sql.append(String.format(" AND m.creation > '%s'", df.format(options.getFrom())));\r
\r
PreparedStatement st = connection.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY,\r
ResultSet.CONCUR_UPDATABLE);\r
\r
- // Ettol elszall a 11.5-on a kereses\r
+ // TODO Ettol elszall a 11.5-on a kereses\r
// if (criteria != null && criteria.trim().length() > 0) {\r
// st.setString(1, criteria);\r
// logger.info("Parameter is {}", criteria);\r
PreparedStatement st = null;\r
DefaultContext context = manager.getDbContext();\r
Connection connection = context.getConnection();\r
+ SearchOptions optionsForCounting= options;\r
+ optionsForCounting.setCountOnly(true);\r
+ \r
try {\r
int maxRecords = options.getToResult() - options.getFromResult();\r
\r
+ //creating a query for checking resultset size\r
+ st= createStatement(connection, optionsForCounting.getText(), optionsForCounting);\r
+ st.close();\r
+ rs= st.executeQuery();\r
+ rs.close();\r
+ logger.info("Checking size");\r
+ result.setItemCount(rs.getInt("NumberOfRecords"));\r
+ \r
st = createStatement(connection, options.getText(), options);\r
-\r
- logger.info("Executing query, fetch size is {}, automcommit {}", st.getFetchSize(),\r
+ logger.info("Executing query, fetch size is {}, autocommit {}", st.getFetchSize(),\r
connection.getAutoCommit());\r
rs = st.executeQuery();\r
- logger.info("Checking size");\r
- rs.last();\r
- result.setItemCount(rs.getRow());\r
logger.info("Result size is {}", result.getItemCount());\r
\r
- // set begining position\r
- if (options.getFromResult() > -1) {\r
- if (options.getFromResult() <= result.getItemCount()) {\r
- if (options.getFromResult() > 1) {\r
- rs.absolute(options.getFromResult() - 1);\r
- } else {\r
- rs.beforeFirst();\r
- }\r
- } else {\r
- if (result.getItemCount() > 0) {\r
- throw new Exception("Invalid searchResult 'from' position: " + options.getFromResult()\r
- + " total records: " + result.getItemCount());\r
- }\r
- }\r
- } else {\r
- rs.beforeFirst();\r
- }\r
-\r
List<ArchivedMedia> resultList = null;\r
logger.info("Processing query result, maxRecords {}", maxRecords);\r
while (rs.next() && maxRecords > 0) {\r
resultList.add(am);\r
\r
am.setRelevant(rs.getString("description"));\r
- // setRelevant(criterias, am, rs.getString("description"));\r
maxRecords--;\r
}\r
logger.info("Query result processed");\r
manager.throwError(e);\r
} finally {\r
try {\r
-\r
if (rs != null)\r
rs.close();\r
} catch (Exception e1) {\r
result.setItemCount(rs.getRow());\r
logger.info("Result size is {}", result.getItemCount());\r
\r
- // set begining position\r
+ // set beginning position\r
if (options.getFromResult() > -1) {\r
if (options.getFromResult() <= result.getItemCount()) {\r
if (options.getFromResult() > 1) {\r