@@ -122,7 +122,7 @@ |
// return any XML data (result would be too large otherwise) |
// |
// ************************************************************************ |
- String query = "SELECT id, path, name, scienceDate FROM R2_Data ORDER BY path, name;"; |
+ String query = "SELECT " + ((limit > 0) ? " TOP " + limit : "") + " id, path, name, scienceDate FROM R2_Data ORDER BY path, name;"; |
try (Connection conn = getConnection(); Statement stmnt = conn.createStatement();) { |
ResultSet results = stmnt.executeQuery(query); |
while (results.next()) { |
@@ -140,8 +140,8 @@ |
} else { |
if (null != ids) { |
// Client wants data by Id |
- String query = "SELECT id, path, name, scienceDate, xmlData FROM R2_Data WHERE "; |
- query += buildPreparedWhereIsList("id", ids); |
+ String query = "SELECT " + ((limit > 0) ? " TOP " + limit : "") + " id, path, name, scienceDate, xmlData FROM R2_Data WHERE "; |
+ query += buildPreparedWhereIsList("id", ids) + " ORDER BY path, name;"; |
try (Connection conn = getConnection(); PreparedStatement stmnt = conn.prepareStatement(query)) { |
int counter = 1; |
for (String id : ids) { |
@@ -163,12 +163,12 @@ |
} |
} else { |
// Client wants data by other fields. Query other fields. |
- String query = "SELECT id, path, name, scienceDate, xmlData FROM R2_Data WHERE "; |
+ String query = "SELECT " + ((limit > 0) ? " TOP " + limit : "") + " id, path, name, scienceDate, xmlData FROM R2_Data WHERE "; |
boolean add = false; |
|
if ((null != paths) && (paths.length >= 0)) { |
add = true; |
- query += buildPreparedWhereIsList("path", paths); |
+ query += buildPreparedWhereIsList("path", paths) + " ORDER BY path, name;"; |
} |
|
if ((null != names) && (names.length >= 0)) { |
@@ -203,13 +203,13 @@ |
|
if ((null != partial_paths) && (partial_paths.length >= 0)) { |
for (String path : partial_paths) { |
- stmnt.setString(counter++, path); |
+ stmnt.setString(counter++, "%" + path + "%"); |
} |
} |
|
if ((null != partial_names) && (partial_names.length >= 0)) { |
for (String name : partial_names) { |
- stmnt.setString(counter++, name); |
+ stmnt.setString(counter++, "%" + name + "%"); |
} |
} |
|
@@ -263,7 +263,7 @@ |
if ((null != values) && (values.length > 0)) { |
where = "("; |
for (int i = 0; i < values.length; i++) { |
- where += fieldName + " LIKE '%" + values[i] + "%' "; |
+ where += fieldName + " LIKE ? "; |
if ((i + 1) < values.length) { |
where += " OR "; |
} |