hammant 01/11/13 07:02:05 Modified: apps/db/src/java/org/apache/avalon/db/basic/actions BasicSelect.java Log: setup of select and execution now separate Revision Changes Path 1.17 +22 -28 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java Index: BasicSelect.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- BasicSelect.java 2001/11/13 14:16:23 1.16 +++ BasicSelect.java 2001/11/13 15:02:05 1.17 @@ -43,7 +43,10 @@ private boolean mPrepared; private boolean mWithParams; private int mParamCount; - StringBuffer mWhereBuffer = new StringBuffer(); + private StringBuffer mWhereBuffer = new StringBuffer(); + private BasicTable mTable = null; + private String[] mCols; + private String[] mTablenames; /** * The Constructor @@ -55,7 +58,12 @@ } public void initialize() throws ActionException { - getLogger().debug("TEST"); + getLogger().debug("BasicSelect.initialize()"); + mCols = parseSelect(mRootElement); + mTablenames = parseFrom(mRootElement); + parseLXSQL(mRootElement); + System.out.println("cols.length=" + mCols.length); + System.out.println("tablenames.length=" + mTablenames.length); } /** @@ -64,45 +72,31 @@ public void execute() throws ActionException { StringBuffer strbuf = new StringBuffer(); Vector selectedRows = new Vector(); - BasicTable table = null; - String[] cols; - String[] tablenames; - Object[] selectedrow = null; + Object[] selectedRow = null; - System.out.println("execute(): select without params"); - if(true) { - cols = parseSelect(mRootElement); - tablenames = parseFrom(mRootElement); - parseLXSQL(mRootElement); - System.out.println("cols.length=" + cols.length); - System.out.println("tablenames.length=" + tablenames.length); - } else { - throw new ActionException("invalid select syntax"); - } - selectedRows = new Vector(); if(true) { /** without where all rows */ - for(int i=0; i < tablenames.length; i++) { + for(int i=0; i < mTablenames.length; i++) { /** get the table, should be only one */ - table = (BasicTable)mDatabasePersistor.getQueryable(tablenames[i]); - Iterator it = table.getRows().iterator(); + mTable = (BasicTable)mDatabasePersistor.getQueryable(mTablenames[i]); + Iterator it = mTable.getRows().iterator(); while(it.hasNext()) { /** iterate rows and select only the needed cols */ BasicRow row = (BasicRow)it.next(); if (testRow(row)) { - if(((String)cols[0]).equals("*")) { - selectedrow = new Object[row.getColumsLength()]; - for (int j=0; j < cols.length; j++) { - selectedrow[j] = row.getValue(j); + if(((String)mCols[0]).equals("*")) { + selectedRow = new Object[row.getColumsLength()]; + for (int j=0; j < mCols.length; j++) { + selectedRow[j] = row.getValue(j); } } else { - selectedrow = new Object[cols.length]; - for (int j=0; j < cols.length; j++) { - selectedrow[j] = row.getValue(j); + selectedRow = new Object[mCols.length]; + for (int j=0; j < mCols.length; j++) { + selectedRow[j] = row.getValue(j); } } - selectedRows.add(selectedrow); + selectedRows.add(selectedRow); } } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>