Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.torque.adapter
Class MssqlAdapter

    java.lang.Object
      org.apache.torque.adapter.AbstractAdapter
          org.apache.torque.adapter.MssqlAdapter

All Implemented Interfaces:
  Serializable, Adapter

    public class MssqlAdapter

extends AbstractAdapter

This is used to connect to a MSSQL database. This is tested with the jtds driver from sourceforge.

Version:
  $Id: MssqlAdapter.java 1450486 2013-02-26 22:18:00Z tfischer $
Author:
  Gonzalo Diethelm
See Also:
  Serialized Form

Field Summary

Fields inherited from interface org.apache.torque.adapter.Adapter
`ADAPTER_KEY, AUTODETECT_ADAPTER, DRIVER_KEY`

Constructor Summary
`protected` | `MssqlAdapter()` Empty constructor.

Method Summary
`boolean` | `escapeText()` Determines whether backslashes (\) should be escaped in explicit SQL strings.
`void` | `generateLimits(Query query, long offset, int limit)` Modify a query to add limit and offset values for Sybase.
`String` | `getIDMethodSQL(Object unused)` Returns the last value from an identity column (available on a per-session basis from the global variable `@@identity`).
`IDMethod` | `getIDMethodType()` Returns the constant from the `IDMethod` interface denoting which type of primary key generation method this type of RDBMS uses.
`String` | `getUpdateLockClause()` Returns the clause which acquires a write lock on a row when doing a select.
`String` | `ignoreCase(String in)` This method is used to ignore case.
`void` | `lockTable(Connection con, String table)` Locks the specified table.
`boolean` | `supportsNativeLimit()` Return true for Sybase
`String` | `toUpperCase(String in)` This method is used to ignore case.
`void` | `unlockTable(Connection con, String table)` Tries to unlock the specified table.
`boolean` | `useEscapeClauseForLike()` Whether an escape clause in like should be used.

Methods inherited from class org.apache.torque.adapter.AbstractAdapter
`getStringDelimiter, ignoreCaseInOrderBy, supportsNativeOffset, useIlike`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MssqlAdapter

    protected MssqlAdapter()

  Empty constructor.

Method Detail

### toUpperCase

    public String toUpperCase(String in)

  This method is used to ignore case.

  Specified by:
    `toUpperCase` in interface `Adapter`
  Specified by:
    `toUpperCase` in class `AbstractAdapter`
  Parameters:
    `in` - The string to transform to upper case.
  Returns:
    The upper case string.

### ignoreCase

    public String ignoreCase(String in)

  This method is used to ignore case.

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

### getIDMethodType

    public IDMethod getIDMethodType()

  Description copied from class: `AbstractAdapter`
  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 `Adapter`
  Specified by:
    `getIDMethodType` in class `AbstractAdapter`
  Returns:
    IDMethod constant
  See Also:
    `Adapter.getIDMethodType()`

### getIDMethodSQL

    public String getIDMethodSQL(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 `Adapter`
  Specified by:
    `getIDMethodSQL` in class `AbstractAdapter`
  Parameters:
    `unused` - Information used for key generation.
  Returns:
    The most recently inserted database key.
  See Also:
    `Adapter.getIDMethodSQL(Object obj)`

### getUpdateLockClause

    public String getUpdateLockClause()

  Returns the clause which acquires a write lock on a row when doing a select.

  Specified by:
    `getUpdateLockClause` in interface `Adapter`
  Overrides:
    `getUpdateLockClause` in class `AbstractAdapter`
  Returns:
    the SQL clause to acquire a write lock. This implementation returns "WITH (UPDLOCK)";

### lockTable

    public void lockTable(Connection con,
                          String table)
                   throws SQLException

  Locks the specified table.

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

### unlockTable

    public void unlockTable(Connection con,
                            String table)
                     throws SQLException

  Tries to unlock the specified table. This implementation does nothing as tables in MSSQL are unlocked when a commit or rollback is issued. This has unintended side effects, as well as we do not know whether to use commit or rollback. The lock will go away automatically when the transaction is ended.

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

### supportsNativeLimit

    public boolean supportsNativeLimit()

  Return true for Sybase

  Specified by:
    `supportsNativeLimit` in interface `Adapter`
  Overrides:
    `supportsNativeLimit` in class `AbstractAdapter`
  Returns:
    true if the database natively supports limiting the size of the resultset.
  See Also:
    `AbstractAdapter.supportsNativeLimit()`

### generateLimits

    public void generateLimits(Query query,
                               long offset,
                               int limit)
                        throws TorqueException

  Modify a query to add limit and offset values for Sybase.

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

### 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 `Adapter`
  Overrides:
    `escapeText` in class `AbstractAdapter`
  Returns:
    false
  See Also:
    `Adapter.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 `Adapter`
  Overrides:
    `useEscapeClauseForLike` in class `AbstractAdapter`
  Returns:
    whether the escape clause should be appended or not.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2013 The Apache Software Foundation. All Rights Reserved.