Package org.frankframework.dbms
Class MsSqlServerDbmsSupport
java.lang.Object
org.frankframework.dbms.GenericDbmsSupport
org.frankframework.dbms.MsSqlServerDbmsSupport
- All Implemented Interfaces:
IDbmsSupport
- Author:
- Gerrit van Brakel
-
Field Summary
Fields inherited from class org.frankframework.dbms.GenericDbmsSupport
KEYWORD_SELECT, log, sqlTranslators
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetBooleanValue
(boolean value) getDateAndOffset
(String dateValue, int daysOffset) getDatetimeLiteral
(Date date) getDbms()
getSchema
(Connection conn) SQL String returning current date and time of dbms.getTimestampAsDate
(String columnName) boolean
hasIndexOnColumns
(Connection conn, String schemaOwner, String tableName, List<String> columns) boolean
boolean
isClobType
(ResultSetMetaData rsmeta, int colNum) boolean
isRowVersionTimestamp
(ResultSetMetaData resultSetMetaData, int columnNumber) boolean
isSequencePresent
(Connection conn, String schemaOwner, String tableName, String sequenceName) prepareQueryTextForNonLockingRead
(String selectQuery) Modify the provided selectQuery in such a way that the resulting query will not be blocked by locks, and will avoid placing locks itself as much as possible.prepareQueryTextForWorkQueuePeeking
(int batchSize, String selectQuery, int wait) prepareQueryTextForWorkQueueReading
(int batchSize, String selectQuery, int wait) provideTrailingFirstRowsHint
(int rowCount) Methods inherited from class org.frankframework.dbms.GenericDbmsSupport
applyBlobParameter, applyClobParameter, autoIncrementInsertValue, autoIncrementKeyMustBeInserted, autoIncrementUsesSequenceObject, convertQuery, createTranslator, doHasIndexOnColumns, doIsColumnPresent, doIsTablePresent, getBlobHandle, getBlobHandle, getBlobInputStream, getBlobInputStream, getBlobOutputStream, getBlobOutputStream, getBlobOutputStream, getClobHandle, getClobHandle, getClobReader, getClobReader, getClobWriter, getClobWriter, getDbmsName, getFormattedDate, getFromForTablelessSelect, getSqlTranslator, getTableColumns, getTableColumns, getTableColumns, getTextFieldType, hasIndexOnColumn, isBlobType, isColumnPresent, isColumnPresent, isConstraintViolation, isParameterTypeMatchRequired, isQueryConversionRequired, isTablePresent, isTablePresent, prepareQueryTextForWorkQueuePeeking, prepareQueryTextForWorkQueueReading, provideFirstRowsHintAfterFirstKeyword, provideIndexHintAfterFirstKeyword, splitQuery, updateBlob, updateBlob, updateClob, updateClob, warnConvertQuery
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.frankframework.dbms.IDbmsSupport
canFetchStatementParameterMetaData, getCursorSqlType, isStoredProcedureResultSetSupported
-
Constructor Details
-
MsSqlServerDbmsSupport
public MsSqlServerDbmsSupport()
-
-
Method Details
-
getDbms
- Specified by:
getDbms
in interfaceIDbmsSupport
- Overrides:
getDbms
in classGenericDbmsSupport
-
hasSkipLockedFunctionality
public boolean hasSkipLockedFunctionality()- Specified by:
hasSkipLockedFunctionality
in interfaceIDbmsSupport
- Overrides:
hasSkipLockedFunctionality
in classGenericDbmsSupport
-
getSysDate
Description copied from interface:IDbmsSupport
SQL String returning current date and time of dbms.- Specified by:
getSysDate
in interfaceIDbmsSupport
- Overrides:
getSysDate
in classGenericDbmsSupport
-
getDateAndOffset
- Specified by:
getDateAndOffset
in interfaceIDbmsSupport
- Overrides:
getDateAndOffset
in classGenericDbmsSupport
-
getAutoIncrementKeyFieldType
- Specified by:
getAutoIncrementKeyFieldType
in interfaceIDbmsSupport
- Overrides:
getAutoIncrementKeyFieldType
in classGenericDbmsSupport
-
getTimestampFieldType
- Specified by:
getTimestampFieldType
in interfaceIDbmsSupport
- Overrides:
getTimestampFieldType
in classGenericDbmsSupport
-
getDatetimeLiteral
- Specified by:
getDatetimeLiteral
in interfaceIDbmsSupport
- Overrides:
getDatetimeLiteral
in classGenericDbmsSupport
-
getTimestampAsDate
- Specified by:
getTimestampAsDate
in interfaceIDbmsSupport
- Overrides:
getTimestampAsDate
in classGenericDbmsSupport
-
getBlobFieldType
- Specified by:
getBlobFieldType
in interfaceIDbmsSupport
- Overrides:
getBlobFieldType
in classGenericDbmsSupport
-
isClobType
- Specified by:
isClobType
in interfaceIDbmsSupport
- Overrides:
isClobType
in classGenericDbmsSupport
- Throws:
SQLException
-
prepareQueryTextForWorkQueueReading
public String prepareQueryTextForWorkQueueReading(int batchSize, String selectQuery, int wait) throws DbmsException - Specified by:
prepareQueryTextForWorkQueueReading
in interfaceIDbmsSupport
- Overrides:
prepareQueryTextForWorkQueueReading
in classGenericDbmsSupport
- Throws:
DbmsException
-
prepareQueryTextForWorkQueuePeeking
public String prepareQueryTextForWorkQueuePeeking(int batchSize, String selectQuery, int wait) throws DbmsException - Specified by:
prepareQueryTextForWorkQueuePeeking
in interfaceIDbmsSupport
- Overrides:
prepareQueryTextForWorkQueuePeeking
in classGenericDbmsSupport
- Throws:
DbmsException
-
prepareQueryTextForNonLockingRead
Description copied from interface:IDbmsSupport
Modify the provided selectQuery in such a way that the resulting query will not be blocked by locks, and will avoid placing locks itself as much as possible. Preferably, the effective isolation level is READ_COMMITTED (committed rows of other transactions may be read), but if placing locks can be avoided by an isolation level similar to READ_UNCOMMITTED, that is allowed too. Should return the query unmodified if no special action is required. For an example, seeprepareQueryTextForNonLockingRead(String)
- Specified by:
prepareQueryTextForNonLockingRead
in interfaceIDbmsSupport
- Overrides:
prepareQueryTextForNonLockingRead
in classGenericDbmsSupport
- Throws:
DbmsException
-
provideTrailingFirstRowsHint
- Specified by:
provideTrailingFirstRowsHint
in interfaceIDbmsSupport
- Overrides:
provideTrailingFirstRowsHint
in classGenericDbmsSupport
-
getSchema
- Specified by:
getSchema
in interfaceIDbmsSupport
- Overrides:
getSchema
in classGenericDbmsSupport
- Throws:
DbmsException
-
getLength
- Specified by:
getLength
in interfaceIDbmsSupport
- Overrides:
getLength
in classGenericDbmsSupport
-
isSequencePresent
public boolean isSequencePresent(Connection conn, String schemaOwner, String tableName, String sequenceName) - Specified by:
isSequencePresent
in interfaceIDbmsSupport
- Overrides:
isSequencePresent
in classGenericDbmsSupport
-
hasIndexOnColumns
public boolean hasIndexOnColumns(Connection conn, String schemaOwner, String tableName, List<String> columns) - Specified by:
hasIndexOnColumns
in interfaceIDbmsSupport
- Overrides:
hasIndexOnColumns
in classGenericDbmsSupport
-
getBooleanValue
- Specified by:
getBooleanValue
in interfaceIDbmsSupport
- Overrides:
getBooleanValue
in classGenericDbmsSupport
-
isRowVersionTimestamp
public boolean isRowVersionTimestamp(ResultSetMetaData resultSetMetaData, int columnNumber) throws SQLException - Parameters:
resultSetMetaData
-columnNumber
-- Returns:
- whether the columnNumber metadata is defined as a RowVersion/Timestamp (MSSQL - specific, see
MsSqlServerDbmsSupport
). - Throws:
SQLException
-