com.jdbwc.core
Class WCStatement

java.lang.Object
  extended by com.jdbwc.core.WCStatement
All Implemented Interfaces:
java.sql.Statement, java.sql.Wrapper
Direct Known Subclasses:
WCPreparedStatement

public class WCStatement
extends java.lang.Object
implements Statement

Extended JDBC-API implementation for java.sql.Statement.
See this packages Statement interface for extension method details.

Version:
2008-05-29
Author:
Tim Gall (Oz-DevWorX)

Field Summary
protected  WCConnection myConnection
           
protected  int myDirection
           
protected  int myMaxSize
           
protected  int mySize
           
protected  int rsConcurrency
           
protected  int rsHoldability
           
protected  int rsType
           
static byte USES_VARIABLES_FALSE
           
static byte USES_VARIABLES_TRUE
           
static byte USES_VARIABLES_UNKNOWN
           
 
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
 
Constructor Summary
protected WCStatement()
          Constructs a new instance of this.
This is not used for instantiation, only for accessing prtected variables.
protected WCStatement(WCConnection connection)
           
 
Method Summary
 void addBatch(java.lang.String sql)
           
 void cancel()
           
 void clearBatch()
           
 void clearWarnings()
           
 void close()
           
 boolean execute(java.lang.String sql)
           
 boolean execute(java.lang.String sql, int autoGeneratedKeys)
           
 boolean execute(java.lang.String sql, int[] columnIndexes)
           
 boolean execute(java.lang.String sql, java.lang.String[] columnNames)
           
 int[] executeBatch()
           
 WCResultSet executeQuery(java.lang.String sql)
           
protected  boolean executeStoredRoutine(java.lang.String sqlRoutine)
          PHP has trouble with custom DELIMITERS.
 int executeUpdate(java.lang.String sql)
           
 int executeUpdate(java.lang.String sql, int autoGeneratedKeys)
           
 int executeUpdate(java.lang.String sql, int[] columnIndexes)
           
 int executeUpdate(java.lang.String sql, java.lang.String[] columnNames)
           
protected  boolean executeWithResults(java.lang.String sqlRoutine)
          ResultSets are stored in the extra results holder.
If ResultSets were found this method returns true, otherwise it returns false.
 WCConnection getConnection()
           
 int getFetchDirection()
           
 int getFetchSize()
           
 WCResultSet getGeneratedKeys()
           
 int getMaxFieldSize()
           
 int getMaxRows()
           
 boolean getMoreResults()
           
 boolean getMoreResults(int current)
           
 int getQueryTimeout()
           
 WCResultSet getResultSet()
           
 int getResultSetConcurrency()
           
 int getResultSetHoldability()
           
 int getResultSetType()
           
 int getRowAffected()
           
 int[] getRowsAffected()
           
protected  WCStatement getStatement()
           
 int getUpdateCount()
           
 java.sql.SQLWarning getWarnings()
           
 boolean isClosed()
           
 boolean isPoolable()
           
 boolean isWrapperFor(java.lang.Class<?> iface)
           
protected static WCResultSet[] prepareForJava(WCConnection connection, WCStatement statement, java.lang.String query, java.lang.String rawResult)
          rawResult is in standard .CVS format as a String.
"," seperates entries "\n" seperates rows "\n\n" seperates files ---------------------- "__NL_" should be replaced with "\n" "__CA_" should be replaced with ","
 void setCursorName(java.lang.String name)
           
 void setEscapeProcessing(boolean enable)
           
 void setFetchDirection(int direction)
           
 void setFetchSize(int rows)
           
 void setMaxFieldSize(int max)
           
 void setMaxRows(int max)
           
 void setPoolable(boolean poolable)
           
 void setQueryTimeout(int seconds)
           
<T> T
unwrap(java.lang.Class<T> iface)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

USES_VARIABLES_FALSE

public static final byte USES_VARIABLES_FALSE
See Also:
Constant Field Values

USES_VARIABLES_TRUE

public static final byte USES_VARIABLES_TRUE
See Also:
Constant Field Values

USES_VARIABLES_UNKNOWN

public static final byte USES_VARIABLES_UNKNOWN
See Also:
Constant Field Values

myConnection

protected transient WCConnection myConnection

rsType

protected transient int rsType

rsConcurrency

protected transient int rsConcurrency

rsHoldability

protected transient int rsHoldability

myDirection

protected transient int myDirection

mySize

protected transient int mySize

myMaxSize

protected transient int myMaxSize
Constructor Detail

WCStatement

protected WCStatement()
Constructs a new instance of this.
This is not used for instantiation, only for accessing prtected variables.


WCStatement

protected WCStatement(WCConnection connection)
Method Detail

getStatement

protected WCStatement getStatement()

prepareForJava

protected static WCResultSet[] prepareForJava(WCConnection connection,
                                              WCStatement statement,
                                              java.lang.String query,
                                              java.lang.String rawResult)
                                       throws java.sql.SQLException
rawResult is in standard .CVS format as a String.

Parameters:
rawResult - String containing valid .cvs data. First row contains column names.
Returns:
a WCResultSet[] of reformatted .cvs input data.
Each inner WCResultSet represents a seperate .cvs database.
Throws:
java.sql.SQLException

addBatch

public void addBatch(java.lang.String sql)
              throws java.sql.SQLException
Specified by:
addBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

cancel

public void cancel()
            throws java.sql.SQLException
Specified by:
cancel in interface java.sql.Statement
Throws:
java.sql.SQLException

clearBatch

public void clearBatch()
                throws java.sql.SQLException
Specified by:
clearBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException
Specified by:
clearWarnings in interface java.sql.Statement
Throws:
java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
Specified by:
close in interface java.sql.Statement
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String sql)
                throws java.sql.SQLException
Specified by:
execute in interface java.sql.Statement
Throws:
java.sql.SQLException

executeStoredRoutine

protected boolean executeStoredRoutine(java.lang.String sqlRoutine)
                                throws java.sql.SQLException
PHP has trouble with custom DELIMITERS. In particular the DELIMITER keyword, so rather than have developers tear thier hair out over this, we silently reformat the sql to suit PHP and avoid much frustration in the process.
From reading, I get the impression this may apply to all PHP db interfaces (mySql, postgresSql).

Parameters:
sqlRoutine -
Returns:
true on success
Throws:
java.sql.SQLException

executeWithResults

protected boolean executeWithResults(java.lang.String sqlRoutine)
                              throws java.sql.SQLException
ResultSets are stored in the extra results holder.
If ResultSets were found this method returns true, otherwise it returns false.

Parameters:
sqlRoutine -
Returns:
true if resultsets were returned, else false.
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String sql,
                       int autoGeneratedKeys)
                throws java.sql.SQLException
Specified by:
execute in interface java.sql.Statement
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String sql,
                       int[] columnIndexes)
                throws java.sql.SQLException
Specified by:
execute in interface java.sql.Statement
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String sql,
                       java.lang.String[] columnNames)
                throws java.sql.SQLException
Specified by:
execute in interface java.sql.Statement
Throws:
java.sql.SQLException

executeBatch

public int[] executeBatch()
                   throws java.sql.SQLException
Specified by:
executeBatch in interface java.sql.Statement
Throws:
java.sql.SQLException

executeQuery

public WCResultSet executeQuery(java.lang.String sql)
                         throws java.sql.SQLException
Specified by:
executeQuery in interface java.sql.Statement
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String sql)
                  throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.Statement
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String sql,
                         int autoGeneratedKeys)
                  throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.Statement
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String sql,
                         int[] columnIndexes)
                  throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.Statement
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String sql,
                         java.lang.String[] columnNames)
                  throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.Statement
Throws:
java.sql.SQLException

getConnection

public WCConnection getConnection()
                           throws java.sql.SQLException
Specified by:
getConnection in interface java.sql.Statement
Throws:
java.sql.SQLException

getFetchDirection

public int getFetchDirection()
                      throws java.sql.SQLException
Specified by:
getFetchDirection in interface java.sql.Statement
Throws:
java.sql.SQLException

getFetchSize

public int getFetchSize()
                 throws java.sql.SQLException
Specified by:
getFetchSize in interface java.sql.Statement
Throws:
java.sql.SQLException

getGeneratedKeys

public WCResultSet getGeneratedKeys()
                             throws java.sql.SQLException
Specified by:
getGeneratedKeys in interface java.sql.Statement
Throws:
java.sql.SQLException

getRowAffected

public int getRowAffected()
                   throws java.sql.SQLException
Throws:
java.sql.SQLException

getRowsAffected

public int[] getRowsAffected()
                      throws java.sql.SQLException
Throws:
java.sql.SQLException

getMaxFieldSize

public int getMaxFieldSize()
                    throws java.sql.SQLException
Specified by:
getMaxFieldSize in interface java.sql.Statement
Throws:
java.sql.SQLException

getMaxRows

public int getMaxRows()
               throws java.sql.SQLException
Specified by:
getMaxRows in interface java.sql.Statement
Throws:
java.sql.SQLException

getMoreResults

public boolean getMoreResults()
                       throws java.sql.SQLException
Specified by:
getMoreResults in interface java.sql.Statement
Throws:
java.sql.SQLException

getMoreResults

public boolean getMoreResults(int current)
                       throws java.sql.SQLException
Specified by:
getMoreResults in interface java.sql.Statement
Throws:
java.sql.SQLException

getQueryTimeout

public int getQueryTimeout()
                    throws java.sql.SQLException
Specified by:
getQueryTimeout in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSet

public WCResultSet getResultSet()
                         throws java.sql.SQLException
Specified by:
getResultSet in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSetConcurrency

public int getResultSetConcurrency()
                            throws java.sql.SQLException
Specified by:
getResultSetConcurrency in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSetHoldability

public int getResultSetHoldability()
                            throws java.sql.SQLException
Specified by:
getResultSetHoldability in interface java.sql.Statement
Throws:
java.sql.SQLException

getResultSetType

public int getResultSetType()
                     throws java.sql.SQLException
Specified by:
getResultSetType in interface java.sql.Statement
Throws:
java.sql.SQLException

getUpdateCount

public int getUpdateCount()
                   throws java.sql.SQLException
Specified by:
getUpdateCount in interface java.sql.Statement
Throws:
java.sql.SQLException

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException
Specified by:
getWarnings in interface java.sql.Statement
Throws:
java.sql.SQLException

isClosed

public boolean isClosed()
                 throws java.sql.SQLException
Specified by:
isClosed in interface java.sql.Statement
Throws:
java.sql.SQLException

isPoolable

public boolean isPoolable()
                   throws java.sql.SQLException
Specified by:
isPoolable in interface java.sql.Statement
Throws:
java.sql.SQLException

setCursorName

public void setCursorName(java.lang.String name)
                   throws java.sql.SQLException
Specified by:
setCursorName in interface java.sql.Statement
Throws:
java.sql.SQLException

setEscapeProcessing

public void setEscapeProcessing(boolean enable)
                         throws java.sql.SQLException
Specified by:
setEscapeProcessing in interface java.sql.Statement
Throws:
java.sql.SQLException

setFetchDirection

public void setFetchDirection(int direction)
                       throws java.sql.SQLException
Specified by:
setFetchDirection in interface java.sql.Statement
Throws:
java.sql.SQLException

setFetchSize

public void setFetchSize(int rows)
                  throws java.sql.SQLException
Specified by:
setFetchSize in interface java.sql.Statement
Throws:
java.sql.SQLException

setMaxFieldSize

public void setMaxFieldSize(int max)
                     throws java.sql.SQLException
Specified by:
setMaxFieldSize in interface java.sql.Statement
Throws:
java.sql.SQLException

setMaxRows

public void setMaxRows(int max)
                throws java.sql.SQLException
Specified by:
setMaxRows in interface java.sql.Statement
Throws:
java.sql.SQLException

setPoolable

public void setPoolable(boolean poolable)
                 throws java.sql.SQLException
Specified by:
setPoolable in interface java.sql.Statement
Throws:
java.sql.SQLException

setQueryTimeout

public void setQueryTimeout(int seconds)
                     throws java.sql.SQLException
Specified by:
setQueryTimeout in interface java.sql.Statement
Throws:
java.sql.SQLException

isWrapperFor

public boolean isWrapperFor(java.lang.Class<?> iface)
                     throws java.sql.SQLException
Specified by:
isWrapperFor in interface java.sql.Wrapper
Throws:
java.sql.SQLException

unwrap

public <T> T unwrap(java.lang.Class<T> iface)
         throws java.sql.SQLException
Specified by:
unwrap in interface java.sql.Wrapper
Throws:
java.sql.SQLException