|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
org.eclipse.persistence.platform.database.DatabasePlatform
org.eclipse.persistence.platform.database.SQLServerPlatform
public class SQLServerPlatform
Purpose: Provides SQL Server specific behavior.
Responsibilities:
| Field Summary |
|---|
| Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform |
|---|
DEFAULT_VARCHAR_SIZE |
| Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
|---|
DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, Types_NCLOB |
| Constructor Summary | |
|---|---|
SQLServerPlatform()
|
|
| Method Summary | |
|---|---|
ValueReadQuery |
buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing. |
boolean |
dontBindUpdateAllQueryUsingTempTables()
INTERNAL: In SQLServer local temporary table created by one PreparedStatement can't be used in another PreparedStatement. |
Object |
executeStoredProcedure(org.eclipse.persistence.internal.databaseaccess.DatabaseCall dbCall,
PreparedStatement statement,
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
org.eclipse.persistence.internal.sessions.AbstractSession session)
because each platform has different requirements for accessing stored procedures and the way that we can combine resultsets and output params the stored procedure call is being executed on the platform. |
String |
getBatchDelimiterString()
Used for batch writing and sp defs. |
String |
getCreationInOutputProcedureToken()
This method is used to print the required output parameter token for the specific platform. |
String |
getCreationOutputProcedureToken()
This method is used to print the required output parameter token for the specific platform. |
String |
getInOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called |
int |
getMaxFieldNameSize()
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform. |
Vector |
getNativeTableInfo(String table,
String creator,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return the catalog information through using the native SQL catalog selects. |
String |
getOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called |
String |
getProcedureArgumentString()
Used for sp defs. |
String |
getProcedureCallHeader()
Used for sp calls. |
String |
getSelectForUpdateNoWaitString()
INTERNAL: This syntax does no wait on the lock. |
String |
getSelectForUpdateString()
INTERNAL: Lock. |
String |
getStoredProcedureParameterPrefix()
|
String |
getStoredProcedureTerminationToken()
INTERNAL: This method returns the delimiter between stored procedures in multiple stored procedure calls. |
org.eclipse.persistence.internal.helper.DatabaseTable |
getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL: |
ValueReadQuery |
getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for SQLServer. |
boolean |
isSQLServer()
|
static ExpressionOperator |
locate2Operator()
INTERNAL: create the Locate2 Operator for this platform |
Hashtable |
maximumNumericValues()
Builds a table of maximum numeric values keyed on java class. |
Hashtable |
minimumNumericValues()
Builds a table of minimum numeric values keyed on java class. |
ExpressionOperator |
modOperator()
Override the default MOD operator. |
void |
printFieldIdentityClause(Writer writer)
INTERNAL: Append the receiver's field 'identity' constraint clause to a writer. |
void |
printFieldNullClause(Writer writer)
INTERNAL: Append the receiver's field 'NULL' constraint clause to a writer. |
boolean |
requiresProcedureCallBrackets()
USed for sp calls. |
boolean |
requiresProcedureCallOuputToken()
Used for sp calls. |
boolean |
shouldPrintInOutputTokenBeforeType()
This is required in the construction of the stored procedures with output parameters |
boolean |
shouldPrintLockingClauseAfterWhereClause()
INTERNAL: Indicates whether locking clause should be printed after where clause by SQLSelectStatement. |
boolean |
shouldPrintOutputTokenBeforeType()
This is required in the construction of the stored procedures with output parameters |
boolean |
shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this. |
ExpressionOperator |
singleArgumentSubstringOperator()
Override the default SubstringSingleArg operator. |
boolean |
supportsIdentity()
INTERNAL: Indicates whether the platform supports identity. |
boolean |
supportsLocalTempTables()
INTERNAL: |
void |
writeUpdateOriginalFromTempTableSql(Writer writer,
org.eclipse.persistence.internal.helper.DatabaseTable table,
Collection pkFields,
Collection assignedFields)
INTERNAL: |
| Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
|---|
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildCallWithReturning, buildCreateIndex, buildDropIndex, buildProcedureCallString, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, executeBatch, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchEndString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getPingSQL, getProcedureArgumentSetter, getProcedureAsString, getProcedureBeginString, getProcedureCallTail, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStringBindingSize, getStructConverters, getTransactionIsolation, getTypeConverters, initialize, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isLockTimeoutException, isNullAllowedInSelectClause, isXDBDocument, prepareBatchStatement, printFieldNotNullClause, printFieldTypeSize, printFieldUnique, printSQLSelectStatement, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, rollbackTransaction, setCastSizeForVarcharParameter, setCursorCode, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPingSQL, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldNativeSequenceUseTransaction, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInputTokenAtStart, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIndividualTableLocking, supportsLockingQueriesWithMultipleTables, supportsNativeSequenceNumbers, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsSequenceObjects, supportsStoredFunctions, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker |
| Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform |
|---|
addSequence, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMySQL, isODBC, isOracle, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, toString, usesPlatformDefaultSequence |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SQLServerPlatform()
| Method Detail |
|---|
public ValueReadQuery buildSelectQueryForIdentity()
buildSelectQueryForIdentity in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean dontBindUpdateAllQueryUsingTempTables()
dontBindUpdateAllQueryUsingTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getBatchDelimiterString()
getBatchDelimiterString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getCreationInOutputProcedureToken()
getCreationInOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getCreationOutputProcedureToken()
getCreationOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getInOutputProcedureToken()
getInOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int getMaxFieldNameSize()
getMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public Vector getNativeTableInfo(String table,
String creator,
org.eclipse.persistence.internal.sessions.AbstractSession session)
public String getOutputProcedureToken()
getOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getProcedureArgumentString()
getProcedureArgumentString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getProcedureCallHeader()
getProcedureCallHeader in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getStoredProcedureParameterPrefix()
getStoredProcedureParameterPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getStoredProcedureTerminationToken()
getStoredProcedureTerminationToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic ValueReadQuery getTimestampQuery()
getTimestampQuery in interface org.eclipse.persistence.internal.databaseaccess.PlatformgetTimestampQuery in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic String getSelectForUpdateString()
getSelectForUpdateString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getSelectForUpdateNoWaitString()
getSelectForUpdateNoWaitString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public Object executeStoredProcedure(org.eclipse.persistence.internal.databaseaccess.DatabaseCall dbCall,
PreparedStatement statement,
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
org.eclipse.persistence.internal.sessions.AbstractSession session)
throws SQLException
executeStoredProcedure in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformSQLExceptionpublic boolean shouldPrintLockingClauseAfterWhereClause()
shouldPrintLockingClauseAfterWhereClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isSQLServer()
isSQLServer in interface org.eclipse.persistence.internal.databaseaccess.PlatformisSQLServer in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic Hashtable maximumNumericValues()
NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
maximumNumericValues in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic Hashtable minimumNumericValues()
NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
minimumNumericValues in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic ExpressionOperator modOperator()
public ExpressionOperator singleArgumentSubstringOperator()
public static ExpressionOperator locate2Operator()
public void printFieldIdentityClause(Writer writer)
throws ValidationException
printFieldIdentityClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformValidationException
public void printFieldNullClause(Writer writer)
throws ValidationException
printFieldNullClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformValidationExceptionpublic boolean requiresProcedureCallBrackets()
requiresProcedureCallBrackets in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean requiresProcedureCallOuputToken()
requiresProcedureCallOuputToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintInOutputTokenBeforeType()
shouldPrintInOutputTokenBeforeType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintOutputTokenBeforeType()
shouldPrintOutputTokenBeforeType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldUseJDBCOuterJoinSyntax()
shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsIdentity()
supportsIdentity in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsLocalTempTables()
supportsLocalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
getTempTableForTable in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public void writeUpdateOriginalFromTempTableSql(Writer writer,
org.eclipse.persistence.internal.helper.DatabaseTable table,
Collection pkFields,
Collection assignedFields)
throws IOException
writeUpdateOriginalFromTempTableSql in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformIOException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||