public class Support
extends java.lang.Object
Implementation notes:
| Modifier and Type | Field and Description | 
|---|---|
| private static java.math.BigDecimal | BIG_DECIMAL_ONE | 
| private static java.math.BigDecimal | BIG_DECIMAL_ZERO | 
| private static java.sql.Date | DATE_ZERO | 
| private static java.lang.Double | DOUBLE_ONE | 
| private static java.lang.Double | DOUBLE_ZERO | 
| private static java.lang.Float | FLOAT_ONE | 
| private static java.lang.Float | FLOAT_ZERO | 
| private static char[] | hexHex constants to use in conversion routines. | 
| private static java.lang.Integer | INTEGER_ONE | 
| private static java.lang.Integer | INTEGER_ZERO | 
| private static java.lang.Long | LONG_ONE | 
| private static java.lang.Long | LONG_ZERO | 
| private static java.math.BigInteger | MAX_VALUE_28 | 
| private static java.math.BigInteger | MAX_VALUE_38 | 
| private static java.math.BigDecimal | MAX_VALUE_LONG_BD | 
| private static java.math.BigInteger | MAX_VALUE_LONG_BI | 
| private static java.math.BigDecimal | MIN_VALUE_LONG_BD | 
| private static java.math.BigInteger | MIN_VALUE_LONG_BI | 
| private static java.sql.Time | TIME_ZERO | 
| private static java.util.HashMap | typeMapConvert java clases to java.sql.Type constant. | 
| Modifier | Constructor and Description | 
|---|---|
| private  | Support() | 
| Modifier and Type | Method and Description | 
|---|---|
| (package private) static int | calculateNamedPipeBufferSize(int tdsVersion,
                            int packetSize)Calculate the buffer size to use when buffering the  InputStreamfor named pipes. | 
| (package private) static java.lang.Object | castNumeric(java.lang.Object orig,
           int sourceType,
           int targetType) | 
| (package private) static java.lang.Object | convert(java.lang.Object callerReference,
       java.lang.Object x,
       int jdbcType,
       java.lang.String charSet)Convert an existing data object to the specified JDBC type. | 
| static java.lang.Object | convertLOB(java.lang.Object value)Converts a LOB to the equivalent Java type, i.e. | 
| static int | convertLOBType(int type)Converts a LOB type constant to the equivalent Java type constant, i.e. | 
| (package private) static void | embedData(java.lang.StringBuilder buf,
         java.lang.Object value,
         boolean isUnicode,
         JtdsConnection connection)Embed the data object as a string literal in the buffer supplied. | 
| (package private) static byte[] | encodeString(java.lang.String cs,
            java.lang.String value)Encode a string into a byte array using the specified character set. | 
| (package private) static java.lang.String | getClassName(int jdbcType)Retrieve the fully qualified java class name for the
 supplied JDBC Types constant. | 
| private static JtdsConnection | getConnection(java.lang.Object callerReference)Returns the connection for a given  ResultSet,StatementorConnectionobject. | 
| (package private) static int | getJdbcType(java.lang.Class typeClass)Get the JDBC type constant which matches the supplied  Class. | 
| (package private) static int | getJdbcType(java.lang.Object value)Get the JDBC type constant which matches the supplied Object type. | 
| (package private) static java.lang.String | getJdbcTypeName(int jdbcType)Get a String describing the supplied JDBC type constant. | 
| (package private) static java.lang.String | getParameterDefinitions(ParamInfo[] parameters)Constructs a parameter definition string for use with
 sp_executesql, sp_prepare, sp_prepexec, sp_cursoropen,
 sp_cursorprepare and sp_cursorprepexec. | 
| (package private) static java.lang.String | getStatementKey(java.lang.String sql,
               ParamInfo[] params,
               int serverType,
               java.lang.String catalog,
               boolean autoCommit,
               boolean cursor)Generates a unique statement key for a given SQL statement. | 
| static boolean | isWindowsOS()Checks the  os.namesystem property to see if it starts
 with "windows". | 
| static java.lang.Throwable | linkException(java.lang.Exception exception,
             java.lang.Throwable cause)Link the original cause to an  Exception. | 
| static java.sql.SQLException | linkException(java.sql.SQLException sqle,
             java.lang.Throwable cause)Link the original cause to an  SQLException. | 
| static java.sql.SQLWarning | linkException(java.sql.SQLWarning sqle,
             java.lang.Throwable cause)Link the original cause to an  SQLWarning. | 
| (package private) static java.math.BigDecimal | normalizeBigDecimal(java.math.BigDecimal value,
                   int maxPrecision)Normalize a BigDecimal value so that it fits within the
 available precision. | 
| (package private) static java.lang.String | substituteParameters(java.lang.String sql,
                    ParamInfo[] list,
                    JtdsConnection connection)Substitute actual data for the parameter markers to simulate
 parameter substitution in a PreparedStatement. | 
| (package private) static java.lang.String | substituteParamMarkers(java.lang.String sql,
                      ParamInfo[] list)Update the SQL string and replace the ? | 
| static long | timeFromZone(java.util.Date value,
            java.util.Calendar target)Convert a timestamp from a different Timezone. | 
| static long | timeToZone(java.util.Date value,
          java.util.Calendar target)Convert a timestamp to a different Timezone. | 
| static java.lang.String | toHex(byte[] bytes)Convert a byte[] object to a hex string. | 
private static final java.lang.Integer INTEGER_ZERO
private static final java.lang.Integer INTEGER_ONE
private static final java.lang.Long LONG_ZERO
private static final java.lang.Long LONG_ONE
private static final java.lang.Float FLOAT_ZERO
private static final java.lang.Float FLOAT_ONE
private static final java.lang.Double DOUBLE_ZERO
private static final java.lang.Double DOUBLE_ONE
private static final java.math.BigDecimal BIG_DECIMAL_ZERO
private static final java.math.BigDecimal BIG_DECIMAL_ONE
private static final java.sql.Date DATE_ZERO
private static final java.sql.Time TIME_ZERO
private static final java.math.BigInteger MIN_VALUE_LONG_BI
private static final java.math.BigInteger MAX_VALUE_LONG_BI
private static final java.math.BigDecimal MIN_VALUE_LONG_BD
private static final java.math.BigDecimal MAX_VALUE_LONG_BD
private static final java.math.BigInteger MAX_VALUE_28
private static final java.math.BigInteger MAX_VALUE_38
private static final java.util.HashMap typeMap
private static final char[] hex
public static java.lang.String toHex(byte[] bytes)
bytes - The byte array to convert.String.static java.math.BigDecimal normalizeBigDecimal(java.math.BigDecimal value,
                                       int maxPrecision)
                                         throws java.sql.SQLException
value - The decimal value to normalize.maxPrecision - The decimal precision supported by the server
        (assumed to be a value of either 28 or 38).BigDecimal.java.sql.SQLException - If the number is too big.static java.lang.Object castNumeric(java.lang.Object orig,
                           int sourceType,
                           int targetType)
static java.lang.Object convert(java.lang.Object callerReference,
                       java.lang.Object x,
                       int jdbcType,
                       java.lang.String charSet)
                         throws java.sql.SQLException
callerReference - an object reference to the caller of this method;
                        must be a Connection,
                        Statement or ResultSetx - the data object to convertjdbcType - the required type constant from
                        java.sql.Typesjava.sql.SQLException - if the conversion is not supported or failsstatic int getJdbcType(java.lang.Object value)
value - The object to analyse.int.static int getJdbcType(java.lang.Class typeClass)
Class.typeClass - the Class to analyseintstatic java.lang.String getJdbcTypeName(int jdbcType)
jdbcType - The constant to be decoded.String.static java.lang.String getClassName(int jdbcType)
jdbcType - The JDBC Types constant.String.static void embedData(java.lang.StringBuilder buf,
             java.lang.Object value,
             boolean isUnicode,
             JtdsConnection connection)
               throws java.sql.SQLException
buf - The buffer in which the data will be embedded.value - The data object.isUnicode - Set to true if Unicode strings should be used, else false.connection - The JtdsConnection object.java.sql.SQLExceptionstatic java.lang.String getStatementKey(java.lang.String sql,
                               ParamInfo[] params,
                               int serverType,
                               java.lang.String catalog,
                               boolean autoCommit,
                               boolean cursor)
sql - the sql statement to generate the key forparams - the statement parametersserverType - the type of server to generate the key forcatalog - the catalog is required for uniqueness on Microsoft
                   SQL ServerautoCommit - true if in auto commit modecursor - true if this is a prepared cursorstatic java.lang.String getParameterDefinitions(ParamInfo[] parameters)
parameters - Parameters to construct the definition forstatic java.lang.String substituteParamMarkers(java.lang.String sql,
                                      ParamInfo[] list)
sql - the SQL containing markers to substitutelist - the parameter listStringstatic java.lang.String substituteParameters(java.lang.String sql,
                                    ParamInfo[] list,
                                    JtdsConnection connection)
                                      throws java.sql.SQLException
sql - The SQL containing parameter markers to substitute.list - The parameter descriptors.connection - The current connection.java.sql.SQLExceptionstatic byte[] encodeString(java.lang.String cs,
                  java.lang.String value)
cs - The Charset name.value - The value to encode.byte[].public static java.sql.SQLWarning linkException(java.sql.SQLWarning sqle,
                                java.lang.Throwable cause)
SQLWarning.
 
 This convenience method calls linkException(Exception, Throwable)
 and casts the result for cleaner code elsewhere.
sqle - The SQLWarning to enhance.cause - The Throwable to link.SQLWarning object.public static java.sql.SQLException linkException(java.sql.SQLException sqle,
                                  java.lang.Throwable cause)
SQLException.
 
 This convenience method calls linkException(Exception, Throwable)
 and casts the result for cleaner code elsewhere.
sqle - The SQLException to enhance.cause - The Throwable to link.SQLException object.public static java.lang.Throwable linkException(java.lang.Exception exception,
                                java.lang.Throwable cause)
Exception.
 
 If running under JVM 1.4+ the Throwable.initCause(Throwable)
 method will be invoked to chain the exception, else the exception is
 logged via the Logger class.
 Modeled after the code written by Brian Heineman.
exception - The Exception to enhance.cause - The Throwable to link.Exception object.public static long timeToZone(java.util.Date value,
              java.util.Calendar target)
value - the timestamp valuetarget - the Calendar containing the TimeZonelongpublic static long timeFromZone(java.util.Date value,
                java.util.Calendar target)
value - the timestamp value.target - the Calendar containing the TimeZone.long.public static java.lang.Object convertLOB(java.lang.Object value)
                                   throws java.sql.SQLException
Clob to
 String and Blob to byte[]. If the
 value passed is not a LOB object, it is left unchanged and no exception
 is thrown; the idea is to transparently convert only LOBs.value - an object that may be a LOBjava.sql.SQLException - if an error occurs while reading the LOB contentspublic static int convertLOBType(int type)
Types.CLOB to Types.LONGVARCHAR and
 Types.BLOB to Types.LONGVARBINARY. If the
 type passed is not that of a LOB, it is left unchanged and no exception
 is thrown; the idea is to transparently convert only LOB types.type - a Types constant defining a JDBC type, possibly a
             LOBpublic static boolean isWindowsOS()
os.name system property to see if it starts
 with "windows".true if os.name starts with "windows",
 else false.private static JtdsConnection getConnection(java.lang.Object callerReference)
ResultSet,
 Statement or Connection object.callerReference - an object reference to the caller of this method;
        must be a Connection, Statement or
        ResultSetstatic int calculateNamedPipeBufferSize(int tdsVersion,
                               int packetSize)
InputStream
 for named pipes.
 
 The buffer size is tied directly to the packet size because each request
 to the SmbNamedPipe will send a request for a particular
 size of packet.  In other words, if you only request 1 byte, the
 SmbNamedPipe will send a request out and only ask for 1 byte
 back.  Buffering the expected packet size ensures that all of the data
 will be returned in the buffer without wasting any space.tdsVersion - the TDS version for the connectionpacketSize - requested packet size for the connectionpacketSize == 0,
         else packetSizeGenerated on June 8 2013