This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch version3
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/version3 by this push:
     new 5fa85fc  EMPIREDB-362 even more beautification
5fa85fc is described below

commit 5fa85fc94265f1904dfd9e430ee8ba521f564988
Author: Rainer Döbele <[email protected]>
AuthorDate: Tue Feb 15 23:29:42 2022 +0100

    EMPIREDB-362 even more beautification
---
 .../empire/samples/db/advanced/SampleAdvDB.java    |  4 ++--
 .../apache/empire/samples/db/beans/Department.java |  2 +-
 .../apache/empire/samples/db/beans/Employee.java   |  2 +-
 .../jsf2/websample/db/records/EmployeeRecord.java  |  2 +-
 .../jsf2/websample/web/SampleApplication.java      |  2 +-
 .../jsf2/websample/web/pages/SamplePage.java       |  2 +-
 .../apache/empire/rest/app/SampleServiceApp.java   | 16 ++++++-------
 .../empire/rest/service/EmployeeService.java       | 13 ++++++-----
 .../vue/sample/db/records/EmployeeRecord.java      |  2 +-
 .../empire/vue/sample/db/records/SampleRecord.java |  2 +-
 .../main/java/org/apache/empire/db/DBDatabase.java |  2 +-
 .../main/java/org/apache/empire/db/DBQuery.java    |  4 ++--
 .../main/java/org/apache/empire/db/DBRowSet.java   | 26 ++++++++++++++++------
 .../main/java/org/apache/empire/db/DBTable.java    | 14 ++++++------
 .../main/java/org/apache/empire/db/DBUtils.java    |  8 +++----
 .../src/main/java/org/apache/empire/db/DBView.java |  9 ++++++++
 .../empire/dbms/oracle/DBMSHandlerOracle.java      |  2 +-
 .../org/apache/empire/db/AliasExpressionTest.java  |  2 +-
 .../java/org/apache/empire/db/DBCommandTest.java   | 18 +++++++--------
 .../apache/empire/db/PreparedStatementTest.java    |  2 +-
 .../dbms/mssql/DBMSHandlerMSSqlDateTest.java       |  4 ++--
 .../empire/dbms/mssql/DBMSHandlerMSSqlTest.java    |  4 ++--
 .../empire/dbms/mysql/DBMSHandlerMySQLTest.java    |  6 ++---
 .../dbms/postgresql/DBMSHandlerPostgreSQLTest.java |  4 ++--
 24 files changed, 86 insertions(+), 66 deletions(-)

diff --git 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvDB.java
 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvDB.java
index af5eeca..4b576f0 100644
--- 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvDB.java
+++ 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvDB.java
@@ -204,7 +204,7 @@ public class SampleAdvDB extends TDatabase<SampleAdvDB>
             SampleAdvDB.EmployeeDepartmentHistory EDH = DB.T_EMP_DEP_HIST;
             
             // Define the sub query
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = newCommand();
             cmd.select (EDH.C_EMPLOYEE_ID, EDH.C_DATE_FROM.max());
             cmd.groupBy(EDH.C_EMPLOYEE_ID);
             return cmd;
@@ -252,7 +252,7 @@ public class SampleAdvDB extends TDatabase<SampleAdvDB>
             SampleAdvDB.Departments DEP = DB.T_DEPARTMENTS;
 
             // Define the query
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = newCommand();
             // Select required columns
             cmd.select(EMP.C_EMPLOYEE_ID);
             cmd.select(DEP.C_DEPARTMENT_ID);
diff --git 
a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
 
b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
index 6713b03..d106699 100644
--- 
a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
+++ 
b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
@@ -66,7 +66,7 @@ public class Department implements DataBean<SampleDB>
     @Override
     public void initialize(SampleDB db, DBContext context, int rownum, Object 
parent)
     {
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.where(db.EMPLOYEES.DEPARTMENT_ID.is(this.id));
         cmd.orderBy(db.EMPLOYEES.FIRST_NAME, db.EMPLOYEES.LAST_NAME);
         employees = context.getUtils().queryBeanList(cmd, Employee.class, 
db.EMPLOYEES, this);
diff --git 
a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
 
b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
index a26d790..ef76a8e 100644
--- 
a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
+++ 
b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
@@ -282,7 +282,7 @@ public class Employee implements DataBean<SampleDB>
         // Don't to that: (because of recursion)
         // else department = context.getUtils().queryBean(Department.class, 
DBRecord.key(this.departmentId));
         
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.where(db.PAYMENTS.EMPLOYEE_ID.is(this.id));
         cmd.orderBy(db.PAYMENTS.YEAR.desc());
         cmd.orderBy(db.PAYMENTS.MONTH.desc());
diff --git 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
index e7839a6..0b03e32 100644
--- 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
+++ 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
@@ -55,7 +55,7 @@ public class EmployeeRecord extends SampleRecord<TEmployees>
         if (column.equals(T.DEPARTMENT_ID))
         {
             SampleDB db = (SampleDB) getDatabase();
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = context.createCommand();
             cmd.select(db.T_DEPARTMENTS.ID);
             cmd.select(db.T_DEPARTMENTS.NAME);
             cmd.orderBy(db.T_DEPARTMENTS.NAME);
diff --git 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/SampleApplication.java
 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/SampleApplication.java
index 73c4138..b701a8c 100644
--- 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/SampleApplication.java
+++ 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/SampleApplication.java
@@ -192,7 +192,7 @@ public class SampleApplication extends WebApplication {
 
        private boolean databaseExists(DBContext context) {
                // Check wether DB exists
-               DBCommand cmd = sampleDB.createCommand();
+               DBCommand cmd = context.createCommand();
                cmd.select(sampleDB.T_DEPARTMENTS.count());
                try {
                        return (context.getUtils().querySingleInt(cmd, -1) >= 
0);
diff --git 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
index dc53bf8..554fdfb 100644
--- 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
+++ 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
@@ -74,6 +74,6 @@ public class SamplePage extends Page
 
     protected DBCommand createQueryCommand()
     {
-        return getDatabase().createCommand();
+        return getSampleContext().createCommand();
     }
 }
diff --git 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/app/SampleServiceApp.java
 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/app/SampleServiceApp.java
index 3104d82..e77ac51 100644
--- 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/app/SampleServiceApp.java
+++ 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/app/SampleServiceApp.java
@@ -193,7 +193,7 @@ public class SampleServiceApp
 
     private static boolean databaseExists(SampleDB db, DBContext context) {
         // Check wether DB exists
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.select(db.T_DEPARTMENTS.count());
         try {
             return (context.getUtils().querySingleInt(cmd, -1) >= 0);
@@ -231,8 +231,8 @@ public class SampleServiceApp
         // Insert a Department
         DBRecord rec = new DBRecord(context, db.T_DEPARTMENTS);
         rec.create();
-        rec.setValue(db.T_DEPARTMENTS.NAME, department_name);
-        rec.setValue(db.T_DEPARTMENTS.BUSINESS_UNIT, businessUnit);
+        rec.set(db.T_DEPARTMENTS.NAME, department_name);
+        rec.set(db.T_DEPARTMENTS.BUSINESS_UNIT, businessUnit);
         try {
             rec.update();
         } catch (Exception e) {
@@ -250,11 +250,11 @@ public class SampleServiceApp
         // Insert an Employee
         DBRecord rec = new DBRecord(context, db.T_EMPLOYEES);
         rec.create();
-        rec.setValue(db.T_EMPLOYEES.SALUTATION, salutation);
-        rec.setValue(db.T_EMPLOYEES.FIRST_NAME, firstName);
-        rec.setValue(db.T_EMPLOYEES.LAST_NAME, lastName);
-        rec.setValue(db.T_EMPLOYEES.GENDER, gender);
-        rec.setValue(db.T_EMPLOYEES.DEPARTMENT_ID, depID);
+        rec.set(db.T_EMPLOYEES.SALUTATION, salutation);
+        rec.set(db.T_EMPLOYEES.FIRST_NAME, firstName);
+        rec.set(db.T_EMPLOYEES.LAST_NAME, lastName);
+        rec.set(db.T_EMPLOYEES.GENDER, gender);
+        rec.set(db.T_EMPLOYEES.DEPARTMENT_ID, depID);
         try {
             rec.update();
         } catch (Exception e) {
diff --git 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/service/EmployeeService.java
 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/service/EmployeeService.java
index b1accdb..cdb6505 100644
--- 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/service/EmployeeService.java
+++ 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/rest/service/EmployeeService.java
@@ -61,17 +61,17 @@ public class EmployeeService extends Service {
     @Produces(MediaType.APPLICATION_JSON)
     public Response getEmployeeFilter() {
 
-        RecordContext ctx = this.getRecordContext(); 
-           TextResolver textResolver = ctx.getTextResolver();
+        RecordContext context = this.getRecordContext(); 
+           TextResolver textResolver = context.getTextResolver();
 
         // Query Department options
         SampleDB db = getDatabase();
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.select(db.T_DEPARTMENTS.ID, db.T_DEPARTMENTS.NAME);
         cmd.join  (db.T_DEPARTMENTS.ID, db.T_EMPLOYEES.DEPARTMENT_ID);
         cmd.groupBy(cmd.getSelectExpressions());
         cmd.orderBy(db.T_DEPARTMENTS.NAME);
-        Options departmentOptions = ctx.getUtils().queryOptionList(cmd);
+        Options departmentOptions = context.getUtils().queryOptionList(cmd);
         
         // Create Metadata
         TEmployees TE = db.T_EMPLOYEES;
@@ -103,7 +103,8 @@ public class EmployeeService extends Service {
 
         log.info("Providing employee list...");
 
-        DBCommand cmd = db.createCommand();
+        RecordContext context = getRecordContext();
+        DBCommand cmd = context.createCommand();
         cmd.select(TE.ID, FULL_NAME, DEPARTMENT, TE.GENDER, TE.DATE_OF_BIRTH, 
TE.RETIRED);
         cmd.join  (TE.DEPARTMENT_ID, TD.ID, DBJoinType.LEFT);
 
@@ -126,7 +127,7 @@ public class EmployeeService extends Service {
             meta[i] = new JsoColumnMeta(cols.get(i), txtres);
         }
         
-        DBReader reader = new DBReader(getRecordContext());
+        DBReader reader = new DBReader(context);
         List<JsoRecordData> list = new ArrayList<>();
         try {
             reader.open(cmd);
diff --git 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/EmployeeRecord.java
 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/EmployeeRecord.java
index 5cbca22..9ac5037 100644
--- 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/EmployeeRecord.java
+++ 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/EmployeeRecord.java
@@ -55,7 +55,7 @@ public class EmployeeRecord extends SampleRecord<TEmployees>
         if (column.equals(T.DEPARTMENT_ID))
         {
             SampleDB db = (SampleDB) getDatabase();
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = context.createCommand();
             cmd.select(db.T_DEPARTMENTS.ID);
             cmd.select(db.T_DEPARTMENTS.NAME);
             cmd.orderBy(db.T_DEPARTMENTS.NAME);
diff --git 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
index a949588..1e5499f 100644
--- 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
+++ 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
@@ -117,7 +117,7 @@ public abstract class SampleRecord<T extends SampleTable> 
extends DBRecord
             // set Value
             try {
                 // set the value
-                this.setValue(c, value);
+                this.set(c, value);
             } catch(FieldValueException e) {
                 // add exception to list
                 exptns.add(e);
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java 
b/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java
index 6f5028b..0e2f75e 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java
@@ -886,7 +886,7 @@ public abstract class DBDatabase extends DBObject
     public final DBCommand createCommand()
     {
         checkOpen(); 
-        return dbms.createCommand(this.isPreparedStatementsEnabled());
+        return dbms.createCommand(isPreparedStatementsEnabled());
     }
     
     /**
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java 
b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
index ac1e021..0c845b1 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
@@ -433,6 +433,7 @@ public class DBQuery extends DBRowSet
         // Get the fields and the flags
         Object[] fields = record.getFields();
         // Get all Update Commands
+        DBContext context = record.getContext();
         Map<DBRowSet, DBCommand> updCmds = new HashMap<DBRowSet, DBCommand>(3);
         for (int i = 0; i < columns.size(); i++)
         { // get the table
@@ -443,7 +444,7 @@ public class DBQuery extends DBRowSet
             DBCommand updCmd = updCmds.get(table);
             if (updCmd == null)
             { // Add a new Command
-                updCmd = db.createCommand();
+                updCmd = createRecordCommand(context);
                 updCmds.put(table, updCmd);
             }
             /*
@@ -462,7 +463,6 @@ public class DBQuery extends DBRowSet
             }
         }
         // the connection
-        DBContext context = record.getContext();
         Connection conn = context.getConnection();
         // the commands
         DBCommand cmd = getCommandFromExpression();
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java 
b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index 9bc2acf..2eb4a8c 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -822,7 +822,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         // Check Arguments
         checkParamNull("key", key);
         // Select
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = createRecordCommand(record.getContext());
         cmd.select(columns);
         // Set key constraints
         setKeyConstraints(cmd, key);
@@ -845,7 +845,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
             if (c.getRowSet().equals(this)==false)
                 throw new InvalidArgumentException("whereConstraints", 
c.getFullName());
         // read now
-        DBCommand cmd = getDatabase().createCommand();
+        DBCommand cmd = createRecordCommand(record.getContext());
         cmd.select(getColumns());
         cmd.where(whereConstraints);
         readRecord(record, cmd);
@@ -863,7 +863,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         // Check Arguments
         checkParamNull("key", key);
         // create command
-        DBCommand cmd = db.createCommand();        
+        DBCommand cmd = createRecordCommand(record.getContext());
         for (DBColumn column : this.columns)
         {   // key column?
             if (isKeyColumn(column))
@@ -904,7 +904,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         checkParamNull("key", key);
         checkParamNull("context", context);
         // Select
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = createRecordCommand(context);
         cmd.select(count());
         // Set key constraints
         setKeyConstraints(cmd, key);
@@ -953,7 +953,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         // Get the fields and the flags
         Object[] fields = record.getFields();
         // Build SQL-Statement
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = createRecordCommand(context);
         String sql = null;
         int setCount = 0;
         // Perform action
@@ -1152,7 +1152,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         DBColumn[] keyColumns =(DBColumn[])getKeyColumns();
         if (keyColumns==null || keyColumns.length==0)
         {   // No Primary Key
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = createRecordCommand(context);
             for (int i=0; i<parentKey.length; i++)
                 cmd.where(refs[i].getSourceColumn().is(parentKey[i]));
             if (context.executeDelete((DBTable)this, cmd)<0)
@@ -1160,7 +1160,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         }
         else
         {   // Query all key
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = createRecordCommand(context);
             cmd.select(keyColumns);
             // Set constraints
             for (int i=0; i<parentKey.length; i++)
@@ -1182,6 +1182,18 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         }
         // Done
     }
+    
+    /**
+     *  Mabe use Prepared statements even if disabled in context 
+     */
+    protected DBCommand createRecordCommand(DBContext context)
+    {
+        /** 
+         * alternative is:
+         *    return context.getDbms().createCommand(true); 
+         */
+        return context.createCommand();
+    }
 
     /**
      * Returns additional data stored on a record by the RowSet
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBTable.java 
b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
index 47df45f..d464f21 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBTable.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
@@ -590,18 +590,18 @@ public class DBTable extends DBRowSet implements Cloneable
      * @param id the record's primary key
      * @param conn a valid JDBC connection
      */
-    public DBIndex checkUniqueConstraints(DBRecordBase rec)
+    public DBIndex checkUniqueConstraints(DBRecordBase record)
     {
         for (DBIndex idx : getIndexes())
         {
             if (idx.getType()==DBIndexType.PRIMARY_KEY)
             {   // Only for new records
-                if (!rec.isNew())
+                if (!record.isNew())
                     continue; // not new
             }
             else if (idx.getType().isUnique())
             {   // check if any of the fields were actually changed
-                if (!rec.isNew() && !rec.wasAnyModified(idx.getColumns()))
+                if (!record.isNew() && 
!record.wasAnyModified(idx.getColumns()))
                     continue; // not modified
             }
             else 
@@ -609,14 +609,14 @@ public class DBTable extends DBRowSet implements Cloneable
                 continue;
             }
             // Check index
-            DBCommand cmd = db.createCommand();
+            DBCommand cmd = createRecordCommand(record.getContext());
             cmd.select(count());
             for (DBColumn c : idx.getColumns())
             {
-                Object value = rec.get(c);
+                Object value = record.get(c);
                 cmd.where(c.is(value));
             }
-            DBUtils utils = rec.getContext().getUtils();
+            DBUtils utils = record.getContext().getUtils();
             int count = utils.querySingleInt(cmd);
             if (count>0)
             {   // Index is violated
@@ -670,7 +670,7 @@ public class DBTable extends DBRowSet implements Cloneable
         deleteAllReferences(key, context);
         
         // Build SQL-Statement
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = createRecordCommand(context);
         // Set key constraints
         setKeyConstraints(cmd, key);
         // Perform delete
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java 
b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
index 8d19fd4..2270aaa 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
@@ -1164,8 +1164,7 @@ public class DBUtils implements DBContextAware
         DBObject.checkParamNull("rowset", rowset);
         DBObject.checkParamNull("whereConstraints", whereConstraints);
         // find
-        DBDatabase db = whereConstraints.getDatabase();
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.where(whereConstraints);
         // use factory of rowset
         return queryBean(cmd, getRowsetBeanListFactory(beanType, rowset));
@@ -1185,8 +1184,7 @@ public class DBUtils implements DBContextAware
         if (factory==null)
             throw new UnknownBeanTypeException(beanType);
         // add constraints
-        DBDatabase db = whereConstraints.getDatabase();
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.where(whereConstraints);
         // query now
         return queryBean(cmd, factory);
@@ -1204,7 +1202,7 @@ public class DBUtils implements DBContextAware
         DBObject.checkParamNull("rowset", rowset);
         DBObject.checkParamNull("key", key);
         // set key constraints 
-        DBCommand cmd = rowset.getDatabase().createCommand();
+        DBCommand cmd = context.createCommand();
         rowset.setKeyConstraints(cmd, key);
         // use factory of rowset
         return queryBean(cmd, getRowsetBeanListFactory(beanType, rowset));
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBView.java 
b/empire-db/src/main/java/org/apache/empire/db/DBView.java
index 9d5acd3..2ba45f1 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBView.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBView.java
@@ -252,6 +252,15 @@ public abstract class DBView extends DBRowSet
         else
             setKeyColumns((DBViewColumn[]) null);
     }
+    
+    /**
+     * Use this to create a new View command inside the createCommand() method!
+     * @return a new command for this view
+     */
+    protected DBCommand newCommand()
+    {
+        return db.getDbms().createCommand(false);
+    }
 
     /**
      * Returns the command required to create the view<br>
diff --git 
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java 
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
index 2d57c2d..b7f69a5 100644
--- 
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
+++ 
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
@@ -445,7 +445,7 @@ public class DBMSHandlerOracle extends DBMSHandlerBase
         // Database definition
         OracleSYSDatabase sysDB = new OracleSYSDatabase(this);
         // Check Columns
-        DBCommand sysDBCommand = sysDB.createCommand();
+        DBCommand sysDBCommand = createCommand(false);
         sysDBCommand.select(sysDB.CI.getColumns());
         sysDBCommand.where (sysDB.CI.C_OWNER.is(owner));
         
diff --git 
a/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java 
b/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
index 1f8efa9..a8d78d0 100644
--- a/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
@@ -62,7 +62,7 @@ public class AliasExpressionTest
         int numberIndex = record.getFieldIndex(t.C_NUMBER);
         Assert.assertEquals(record.getFieldIndex(AMOUNT), numberIndex);
         
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         cmd.select(ALIAS_1, t.C_TEXT, ALIAS_2, ALIAS_2_NEU, AMOUNT); /* Don't 
select ALIAS_X */
         DBColumnExpr[] expr = cmd.getSelectExprList();
         // Hint: ALIAS_2_NEU is not a separate column
diff --git a/empire-db/src/test/java/org/apache/empire/db/DBCommandTest.java 
b/empire-db/src/test/java/org/apache/empire/db/DBCommandTest.java
index 62e300f..00b621c 100644
--- a/empire-db/src/test/java/org/apache/empire/db/DBCommandTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/DBCommandTest.java
@@ -38,25 +38,25 @@ public class DBCommandTest
        @Test
        public void testDBCommand()
        {
-               MockDB mock = new MockDB();
+               MockDB MDB = new MockDB();
                DBContext context = new DBContextStatic(new MockDriver(), null);
-               mock.open(context);
+               MDB.open(context);
                
                List<DBColumn> list = new ArrayList<DBColumn>();
-               DBCommand command = mock.createCommand();
+               DBCommand command = context.createCommand();
            command.select(list);
            assertNull(command.getSelectExprList());
            
                List<DBColumnExpr> list2 = new ArrayList<DBColumnExpr>();
-               list2.add(mock.TABLE.COL1);
-               list2.add(mock.TABLE.COL3);
-               DBCommand command2 = mock.createCommand();
+               list2.add(MDB.TABLE.COL1);
+               list2.add(MDB.TABLE.COL3);
+               DBCommand command2 = context.createCommand();
                command2.select(list2);
                assertEquals(2, command2.getSelectExprList().length);
                
-        DBCommand command3 = mock.createCommand();
-        command3.select (mock.TABLE.getColumns());
-        command3.groupBy(mock.TABLE.COL1, mock.TABLE.COL2, mock.TABLE.COL2);
+        DBCommand command3 = context.createCommand();
+        command3.select (MDB.TABLE.getColumns());
+        command3.groupBy(MDB.TABLE.COL1, MDB.TABLE.COL2, MDB.TABLE.COL2);
         assertEquals(3, command3.getSelectExprList().length);
         assertEquals(2, command3.groupBy.size());
        }
diff --git 
a/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java 
b/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java
index 6cd0075..34a4ab6 100644
--- a/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java
@@ -65,7 +65,7 @@ public class PreparedStatementTest{
         // Define shortcuts for tables used - not necessary but convenient
         CompanyDB.Departments DEP = db.DEPARTMENT;
         // Define the query
-        DBCommand cmd = db.createCommand();
+        DBCommand cmd = context.createCommand();
         // Create parameters
         DBCmdParam empIdParam  = cmd.addParam(null);
         // the previous line could be shorter
diff --git 
a/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlDateTest.java
 
b/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlDateTest.java
index fe021a0..5afc152 100644
--- 
a/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlDateTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlDateTest.java
@@ -121,7 +121,7 @@ public class DBMSHandlerMSSqlDateTest {
         * </PRE>
         */
        private static void clearDatabase(DBContext context, DateTimeTestDB db) 
{
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                // Delete all Employees (no constraints)
                context.executeDelete(db.USER_INFO, cmd);
        }
@@ -136,7 +136,7 @@ public class DBMSHandlerMSSqlDateTest {
         */
        private static boolean databaseExists(DBContext context, DateTimeTestDB 
db) {
                // Check whether DB exists
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                cmd.select(db.USER_INFO.count());
                // Check using "select count(*) from DEPARTMENTS"
 
diff --git 
a/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlTest.java
 
b/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlTest.java
index ff56c08..881df0c 100644
--- 
a/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/dbms/mssql/DBMSHandlerMSSqlTest.java
@@ -89,7 +89,7 @@ public class DBMSHandlerMSSqlTest
         */
        private static void clearDatabase(DBContext context, CompanyDB db)
     {
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                // Delete all Employees (no constraints)
                context.executeDelete(db.DEPARTMENT, cmd);
        }
@@ -105,7 +105,7 @@ public class DBMSHandlerMSSqlTest
        private static boolean databaseExists(DBContext context, CompanyDB db)
     {
                // Check whether DB exists
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                cmd.select(db.DEPARTMENT.count());
                // Check using "select count(*) from DEPARTMENTS"
                System.out.println("Checking whether table DEPARTMENTS exists 
(SQLException will be logged if not - please ignore) ...");
diff --git 
a/empire-db/src/test/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQLTest.java
 
b/empire-db/src/test/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQLTest.java
index 2ad27a9..a432193 100644
--- 
a/empire-db/src/test/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQLTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQLTest.java
@@ -44,21 +44,21 @@ public class DBMSHandlerMySQLTest {
 
         Departments TD = db.DEPARTMENT;
         
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
 
                // Test 1
                cmd.select(TD.count());
                cmd.where(TD.NAME.is("\\LCI\\"));
                assertTrue(cmd.getSelect().endsWith(("`NAME`='\\\\LCI\\\\'"))); 
// Must be double escaped
                
-               cmd = db.createCommand();
+               cmd = context.createCommand();
 
                // Test 2
                cmd.select(TD.count());
                cmd.where(TD.NAME.is("'"));
                assertTrue(cmd.getSelect().contains("`NAME`=''''"));
 
-               cmd = db.createCommand();
+               cmd = context.createCommand();
                
                // \ and '
                cmd.select(TD.count());
diff --git 
a/empire-db/src/test/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQLTest.java
 
b/empire-db/src/test/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQLTest.java
index fb3ab9b..b9b0ec8 100644
--- 
a/empire-db/src/test/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQLTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQLTest.java
@@ -113,7 +113,7 @@ public class DBMSHandlerPostgreSQLTest
         emp.update();
                
                // read a value
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                cmd.select(db.DATA.DATA);
                DBReader reader = new DBReader(context);
                try {
@@ -137,7 +137,7 @@ public class DBMSHandlerPostgreSQLTest
        private static boolean databaseExists(DBContext context, CompanyDB db)
     {
                // Check whether DB exists
-               DBCommand cmd = db.createCommand();
+               DBCommand cmd = context.createCommand();
                cmd.select(db.DEPARTMENT.count());
                // Check using "select count(*) from DEPARTMENTS"
                

Reply via email to