summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/db
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-06-25 13:28:18 +0000
committerKurt Zenker <kz@openoffice.org>2008-06-25 13:28:18 +0000
commit84298c18d66b417b73e958b003eb181be199f461 (patch)
treeb92c93f233f53bb7a4f19091c1fb0c30c3d51cdf /wizards/com/sun/star/wizards/db
parentb7f1a299ab0cce3fd2df32098636bf9912882341 (diff)
INTEGRATION: CWS rptwizard01 (1.10.104); FILE MERGED
2008/06/03 09:45:25 lla 1.10.104.4: #i86092# problem with sorting fixed 2008/05/21 10:13:16 lla 1.10.104.3: RESYNC: (1.10-1.11); FILE MERGED 2008/05/20 10:54:36 lla 1.10.104.2: #i86092# fix a wrong '==' with java strings, we must use 'equals()' 2008/02/14 13:14:57 lla 1.10.104.1: #i86092# cleanups
Diffstat (limited to 'wizards/com/sun/star/wizards/db')
-rw-r--r--wizards/com/sun/star/wizards/db/SQLQueryComposer.java62
1 files changed, 45 insertions, 17 deletions
diff --git a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
index b1e8985dabe4..18ac74a3bb83 100644
--- a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
+++ b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: SQLQueryComposer.java,v $
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
* This file is part of OpenOffice.org.
*
@@ -26,7 +26,8 @@
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
- ************************************************************************/package com.sun.star.wizards.db;
+ ************************************************************************/
+package com.sun.star.wizards.db;
import java.util.Vector;
@@ -144,13 +145,13 @@ public class SQLQueryComposer {
public void prependSortingCriteria() throws SQLException{
XIndexAccess xColumnIndexAccess = xQueryAnalyzer.getOrderColumns();
xQueryComposer.setOrder("");
- for (int i = 0; i < CurDBMetaData.SortFieldNames.length; i++)
+ for (int i = 0; i < CurDBMetaData.getSortFieldNames().length; i++)
appendSortingCriterion(i, false);
for (int i = 0; i < xColumnIndexAccess.getCount(); i++){
try {
XPropertySet xColumnPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xColumnIndexAccess.getByIndex(i));
String sName = (String) xColumnPropertySet.getPropertyValue("Name");
- if (JavaTools.FieldInTable(CurDBMetaData.SortFieldNames, sName) == -1){
+ if (JavaTools.FieldInTable(CurDBMetaData.getSortFieldNames(), sName) == -1){
boolean bascend = AnyConverter.toBoolean(xColumnPropertySet.getPropertyValue("IsAscending"));
xQueryComposer.appendOrderByColumn(xColumnPropertySet, bascend);
}
@@ -160,9 +161,13 @@ public class SQLQueryComposer {
}
}
- private void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException{
- XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(CurDBMetaData.SortFieldNames[_SortIndex][0], _baddAliasFieldNames);
- boolean bascend = (CurDBMetaData.SortFieldNames[_SortIndex][1] == "ASC");
+ private void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException
+ {
+ String sSortValue = CurDBMetaData.getSortFieldNames()[_SortIndex][0];
+ XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(sSortValue, _baddAliasFieldNames);
+
+ String sSort = CurDBMetaData.getSortFieldNames()[_SortIndex][1];
+ boolean bascend = ( sSort.equals( "ASC" ));
xQueryComposer.appendOrderByColumn(xColumn, bascend);
}
@@ -170,20 +175,30 @@ public class SQLQueryComposer {
public void appendSortingcriteria(boolean _baddAliasFieldNames) throws SQLException {
String sOrder = "";
xQueryComposer.setOrder("");
- for (int i = 0; i < CurDBMetaData.SortFieldNames.length; i++) {
- int iAggregate = CurDBMetaData.getAggregateIndex(CurDBMetaData.SortFieldNames[i][0]);
- if (iAggregate > -1){
+ for (int i = 0; i < CurDBMetaData.getSortFieldNames().length; i++)
+ {
+ String sSortValue = CurDBMetaData.getSortFieldNames()[i][0];
+ int iAggregate = CurDBMetaData.getAggregateIndex(sSortValue);
+ if (iAggregate > -1)
+ {
sOrder = xQueryAnalyzer.getOrder();
if (sOrder.length() > 0)
+ {
sOrder += ", ";
+ }
sOrder += CurDBMetaData.AggregateFieldNames[iAggregate][1] + "(" + CurDBMetaData.AggregateFieldNames[iAggregate][0] + ")";
- sOrder += " " + CurDBMetaData.SortFieldNames[i][1];
+ sOrder += " " + CurDBMetaData.getSortFieldNames()[i][1];
xQueryComposer.setOrder(sOrder);
}
else
+ {
appendSortingCriterion(i, _baddAliasFieldNames);
+ }
sOrder = xQueryAnalyzer.getOrder();
}
+ // just for debug!
+ sOrder = xQueryComposer.getOrder();
+ int dummy = 0;
}
public void appendGroupByColumns(boolean _baddAliasFieldNames) throws SQLException {
@@ -213,37 +228,50 @@ public class SQLQueryComposer {
public boolean setQueryCommand(String QueryName, XWindow _xParentWindow, boolean _bincludeGrouping, boolean _baddAliasFieldNames) {
- try {
+ try
+ {
String s;
bincludeGrouping = _bincludeGrouping;
fromclause = "FROM";
String[] sCommandNames = CurDBMetaData.getIncludedCommandNames();
- for (int i = 0; i < sCommandNames.length; i++){
+ for (int i = 0; i < sCommandNames.length; i++)
+ {
CommandName curCommandName = new CommandName(CurDBMetaData, sCommandNames[i]); //(setComposedCommandName)
curCommandName.setAliasName(getuniqueAliasName(curCommandName.getTableName()));
fromclause += " " + curCommandName.getComposedName() + " " + quoteName(curCommandName.getAliasName());
if (i < sCommandNames.length - 1)
+ {
fromclause += ", ";
+ }
composedCommandNames.add(curCommandName);
}
appendSelectClause(_baddAliasFieldNames);
String queryclause = selectclause + " " + fromclause;
xQueryAnalyzer.setQuery(queryclause);
- if (CurDBMetaData.FilterConditions != null){
- if (CurDBMetaData.FilterConditions.length > 0) {
+ if (CurDBMetaData.FilterConditions != null)
+ {
+ if (CurDBMetaData.FilterConditions.length > 0)
+ {
CurDBMetaData.FilterConditions = replaceConditionsByAlias(CurDBMetaData.FilterConditions);
xQueryComposer.setStructuredFilter(CurDBMetaData.FilterConditions);
}
}
s = xQueryAnalyzer.getQuery();
- if (_bincludeGrouping){
+ if (_bincludeGrouping)
+ {
appendGroupByColumns(_baddAliasFieldNames);
if (CurDBMetaData.GroupByFilterConditions.length > 0)
+ {
xQueryComposer.setStructuredHavingClause(CurDBMetaData.GroupByFilterConditions);
+ }
}
appendSortingcriteria(_baddAliasFieldNames);
+
+ s = xQueryAnalyzer.getQuery();
return true;
- } catch (Exception exception) {
+ }
+ catch (Exception exception)
+ {
exception.printStackTrace(System.out);
displaySQLErrorDialog(exception, _xParentWindow);
return false;