org.apache.torque.adapter
Class DBSybase

java.lang.Object
  extended by org.apache.torque.adapter.AbstractDBAdapter
      extended by org.apache.torque.adapter.DBSybase
All Implemented Interfaces:
java.io.Serializable, DB, IDMethod
Direct Known Subclasses:
DBMSSQL

public class DBSybase
extends AbstractDBAdapter

This is used to connect to a Sybase database using Sybase's JConnect JDBC driver. NOTE:Currently JConnect does not implement the required methods for ResultSetMetaData, and therefore the village API's may not function. For connection pooling, everything works.

Version:
$Id: DBSybase.java 586553 2007-10-19 17:33:53Z gmonroe $
Author:
Jeff Brekke
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.apache.torque.adapter.DB
ADAPTER_KEY, DRIVER_KEY, LIMIT_STYLE_DB2, LIMIT_STYLE_MYSQL, LIMIT_STYLE_NONE, LIMIT_STYLE_ORACLE, LIMIT_STYLE_POSTGRES, LIMIT_STYLE_SYBASE
 
Fields inherited from interface org.apache.torque.adapter.IDMethod
AUTO_INCREMENT, ID_BROKER, NATIVE, NO_ID_METHOD, SEQUENCE
 
Constructor Summary
protected DBSybase()
          Empty constructor.
 
Method Summary
 boolean escapeText()
          Determines whether backslashes (\) should be escaped in explicit SQL strings.
 void generateLimits(Query query, int offset, int limit)
          Modify a query to add limit and offset values for Sybase.
 java.lang.String getDateString(java.util.Date date)
          This method overrides the JDBC escapes used to format dates using a DateFormat.
 java.lang.String getIDMethodSQL(java.lang.Object unused)
          Returns the last value from an identity column (available on a per-session basis from the global variable @@identity).
 java.lang.String getIDMethodType()
          Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.
 int getLimitStyle()
          Deprecated. This should not be exposed to the outside
 java.lang.String ignoreCase(java.lang.String in)
          This method is used to ignore case.
 void lockTable(java.sql.Connection con, java.lang.String table)
          Locks the specified table.
 boolean supportsNativeLimit()
          Return true for Sybase
 java.lang.String toUpperCase(java.lang.String in)
          This method is used to ignore case.
 void unlockTable(java.sql.Connection con, java.lang.String table)
          Unlocks the specified table.
 boolean useEscapeClauseForLike()
          Whether an escape clause in like should be used.
 
Methods inherited from class org.apache.torque.adapter.AbstractDBAdapter
getBooleanString, getFunctionClass, getStringDelimiter, ignoreCaseInOrderBy, supportsNativeOffset, useIlike
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBSybase

protected DBSybase()
Empty constructor.

Method Detail

toUpperCase

public java.lang.String toUpperCase(java.lang.String in)
This method is used to ignore case.

Specified by:
toUpperCase in interface DB
Specified by:
toUpperCase in class AbstractDBAdapter
Parameters:
in - The string to transform to upper case.
Returns:
The upper case string.

ignoreCase

public java.lang.String ignoreCase(java.lang.String in)
This method is used to ignore case.

Specified by:
ignoreCase in interface DB
Specified by:
ignoreCase in class AbstractDBAdapter
Parameters:
in - The string whose case to ignore.
Returns:
The string in a case that can be ignored.

getIDMethodType

public java.lang.String getIDMethodType()
Description copied from class: AbstractDBAdapter
Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.

Specified by:
getIDMethodType in interface DB
Specified by:
getIDMethodType in class AbstractDBAdapter
Returns:
IDMethod constant
See Also:
DB.getIDMethodType()

getIDMethodSQL

public java.lang.String getIDMethodSQL(java.lang.Object unused)
Returns the last value from an identity column (available on a per-session basis from the global variable @@identity).

Specified by:
getIDMethodSQL in interface DB
Specified by:
getIDMethodSQL in class AbstractDBAdapter
Parameters:
unused - Information used for key generation.
Returns:
The most recently inserted database key.
See Also:
DB.getIDMethodSQL(Object obj)

lockTable

public void lockTable(java.sql.Connection con,
                      java.lang.String table)
               throws java.sql.SQLException
Locks the specified table.

Specified by:
lockTable in interface DB
Specified by:
lockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to lock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

unlockTable

public void unlockTable(java.sql.Connection con,
                        java.lang.String table)
                 throws java.sql.SQLException
Unlocks the specified table.

Specified by:
unlockTable in interface DB
Specified by:
unlockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to unlock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

getLimitStyle

public int getLimitStyle()
Deprecated. This should not be exposed to the outside

This method is used to chek whether the database supports limiting the size of the resultset.

Specified by:
getLimitStyle in interface DB
Overrides:
getLimitStyle in class AbstractDBAdapter
Returns:
LIMIT_STYLE_SYBASE.

supportsNativeLimit

public boolean supportsNativeLimit()
Return true for Sybase

Specified by:
supportsNativeLimit in interface DB
Overrides:
supportsNativeLimit in class AbstractDBAdapter
Returns:
True if the database natively supports limiting the size of the resultset.
See Also:
AbstractDBAdapter.supportsNativeLimit()

generateLimits

public void generateLimits(Query query,
                           int offset,
                           int limit)
                    throws TorqueException
Modify a query to add limit and offset values for Sybase.

Specified by:
generateLimits in interface DB
Overrides:
generateLimits in class AbstractDBAdapter
Parameters:
query - The query to modify
offset - the offset Value
limit - the limit Value
Throws:
TorqueException - if any error occurs when building the query

getDateString

public java.lang.String getDateString(java.util.Date date)
This method overrides the JDBC escapes used to format dates using a DateFormat. As of version 11, the Sybase JDBC driver does not implement JDBC 3.0 escapes.

Specified by:
getDateString in interface DB
Overrides:
getDateString in class AbstractDBAdapter
Parameters:
date - the date to format
Returns:
The properly formatted date String.

escapeText

public boolean escapeText()
Determines whether backslashes (\) should be escaped in explicit SQL strings. If true is returned, a BACKSLASH will be changed to "\\". If false is returned, a BACKSLASH will be left as "\". Sybase (and MSSQL) doesn't define a default escape character, so false is returned.

Specified by:
escapeText in interface DB
Overrides:
escapeText in class AbstractDBAdapter
Returns:
false
See Also:
DB.escapeText()

useEscapeClauseForLike

public boolean useEscapeClauseForLike()
Whether an escape clause in like should be used. Example : select * from AUTHOR where AUTHOR.NAME like '\_%' ESCAPE '\'; Sybase needs this, so this implementation always returns true.

Specified by:
useEscapeClauseForLike in interface DB
Overrides:
useEscapeClauseForLike in class AbstractDBAdapter
Returns:
whether the escape clause should be appended or not.


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.