SQLRCursor
Date: 2016-03-15

com.firstworks.sqlrelay

## Class SQLRCursor

- java.lang.Object
- - com.firstworks.sqlrelay.SQLRCursor

-     public class SQLRCursor
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `SQLRConnection` | `connection`
    `long` | `cursor` cursor and connection are used internally, they're just public to make the JNI wrapper work faster.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SQLRCursor(SQLRConnection con)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `affectedRows()` Returns the number of rows that were updated, inserted or deleted by the query.
    `void` | `cacheOff()` Sets query caching off.
    `void` | `cacheToFile(java.lang.String filename)` Sets query caching on.
    `void` | `clearBinds()` Clear all bind variables.
    `void` | `closeResultSet()` Closes the current result set, if one is open.
    `int` | `colCount()` Returns the number of columns in the current result set.
    `short` | `countBindVariables()` Parses the previously prepared query, counts the number of bind variables defined in it and returns that number.
    `void` | `defineOutputBindBlob(java.lang.String variable)` Define an output bind variable.
    `void` | `defineOutputBindClob(java.lang.String variable)` Define an output bind variable.
    `void` | `defineOutputBindCursor(java.lang.String variable)` Define an output bind variable.
    `void` | `defineOutputBindDouble(java.lang.String variable)` Define a double precision floating point output bind variable.
    `void` | `defineOutputBindInteger(java.lang.String variable)` Define an integer output bind variable.
    `void` | `defineOutputBindString(java.lang.String variable, int bufferlength)` Define a string output bind variable.
    `void` | `delete()`
    `void` | `dontGetColumnInfo()` Tells the server not to send any column info (names, types, sizes).
    `boolean` | `endOfResultSet()` Returns 0 if part of the result set is still pending on the server and 1 if not.
    `java.lang.String` | `errorMessage()` If a query failed and generated an error, the error message is available here.
    `long` | `errorNumber()` If a query failed and generated an error, the error number is available here.
    `boolean` | `executeQuery()` Execute the query that was previously prepared and bound.
    `boolean` | `fetchFromBindCursor()` Fetch from a cursor that was returned as an output bind variable.
    `long` | `firstRowIndex()` Returns the index of the first buffered row.
    `java.lang.String` | `getCacheFileName()` Returns the name of the file containing the cached result set.
    `void` | `getColumnInfo()` Tells the server to send column info.
    `boolean` | `getColumnIsAutoIncrement(int col)` Returns true if the specified column auto-increments and false otherwise.
    `boolean` | `getColumnIsAutoIncrement(java.lang.String col)` Returns true if the specified column auto-increments and false otherwise.
    `boolean` | `getColumnIsBinary(int col)` Returns true if the specified column contains binary data and false otherwise.
    `boolean` | `getColumnIsBinary(java.lang.String col)` Returns true if the specified column contains binary data and false otherwise.
    `boolean` | `getColumnIsNullable(int col)` Returns true if the specified column can contain nulls and false otherwise.
    `boolean` | `getColumnIsNullable(java.lang.String col)` Returns true if the specified column can contain nulls and false otherwise.
    `boolean` | `getColumnIsPartOfKey(int col)` Returns true if the specified column is part of a composite key and false otherwise.
    `boolean` | `getColumnIsPartOfKey(java.lang.String col)` Returns true if the specified column is part of a composite key and false otherwise.
    `boolean` | `getColumnIsPrimaryKey(int col)` Returns true if the specified column is a primary key and false otherwise.
    `boolean` | `getColumnIsPrimaryKey(java.lang.String col)` Returns true if the specified column is a primary key and false otherwise.
    `boolean` | `getColumnIsUnique(int col)` Returns true if the specified column is unique and false otherwise.
    `boolean` | `getColumnIsUnique(java.lang.String col)` Returns true if the specified column is unique and false otherwise.
    `boolean` | `getColumnIsUnsigned(int col)` Returns true if the specified column is an unsigned number and false otherwise.
    `boolean` | `getColumnIsUnsigned(java.lang.String col)` Returns true if the specified column is an unsigned number and false otherwise.
    `boolean` | `getColumnIsZeroFilled(int col)` Returns true if the specified column was created with the zero-fill flag and false otherwise.
    `boolean` | `getColumnIsZeroFilled(java.lang.String col)` Returns true if the specified column was created with the zero-fill flag and false otherwise.
    `int` | `getColumnLength(int col)` Returns the length of the specified column.
    `int` | `getColumnLength(java.lang.String col)` Returns the length of the specified column.
    `boolean` | `getColumnList(java.lang.String table, java.lang.String wild)` Sends a query that returns a list of columns in the table specified by the "table" parameter matching "wild".
    `java.lang.String` | `getColumnName(int col)` Returns the name of the specified column.
    `java.lang.String[]` | `getColumnNames()` Returns a null terminated array of the column names of the current result set.
    `long` | `getColumnPrecision(int col)` Returns the precision of the specified column.
    `long` | `getColumnPrecision(java.lang.String col)` Returns the precision of the specified column.
    `long` | `getColumnScale(int col)` Returns the scale of the specified column.
    `long` | `getColumnScale(java.lang.String col)` Returns the scale of the specified column.
    `java.lang.String` | `getColumnType(int col)` Returns the type of the specified column.
    `java.lang.String` | `getColumnType(java.lang.String col)` Returns the type of the specified column.
    `boolean` | `getDatabaseList(java.lang.String wild)` Sends a query that returns a list of databases/schemas matching "wild".
    `java.lang.String` | `getField(long row, int col)` Returns a pointer to the value of the specified row and column.
    `java.lang.String` | `getField(long row, java.lang.String col)` Returns a pointer to the value of the specified row and column.
    `byte[]` | `getFieldAsByteArray(long row, int col)` Returns a pointer to the value of the specified row and column.
    `byte[]` | `getFieldAsByteArray(long row, java.lang.String col)` Returns the length of the specified row and column.
    `double` | `getFieldAsDouble(long row, int col)` Returns the specified field as a double floating point number
    `double` | `getFieldAsDouble(long row, java.lang.String col)` Returns the specified field as a double floating point number
    `long` | `getFieldAsInteger(long row, int col)` Returns the specified field as a long integer
    `long` | `getFieldAsInteger(long row, java.lang.String col)` Returns the specified field as a long integer
    `long` | `getFieldLength(long row, int col)` Returns the length of the specified row and column.
    `long` | `getFieldLength(long row, java.lang.String col)` Returns the length of the specified row and column.
    `int` | `getLongest(int col)` Returns the length of the longest field in the specified column.
    `int` | `getLongest(java.lang.String col)` Returns the length of the longest field in the specified column.
    `void` | `getNullsAsEmptyStrings()` Tells the connection to return NULL fields and output bind variables as empty strings.
    `void` | `getNullsAsNulls()` Tells the connection to return NULL fields and output bind variables as NULL's rather than as empty strings.
    `byte[]` | `getOutputBindAsByteArray(java.lang.String variable)` Get the length of the value stored in a previously defined output bind variable.
    `byte[]` | `getOutputBindBlob(java.lang.String variable)` Get the value stored in a previously defined output bind variable.
    `java.lang.String` | `getOutputBindClob(java.lang.String variable)` Get the value stored in a previously defined output bind variable.
    `SQLRCursor` | `getOutputBindCursor(java.lang.String variable)` Get the cursor associated with a previously defined output bind variable.
    `double` | `getOutputBindDouble(java.lang.String variable)` Get the value stored in a previously defined output bind variable as a double precision floating point number.
    `long` | `getOutputBindInteger(java.lang.String variable)` Get the value stored in a previously defined output bind variable as a long integer.
    `long` | `getOutputBindLength(java.lang.String variable)` Get the length of the value stored in a previously defined output bind variable.
    `java.lang.String` | `getOutputBindString(java.lang.String variable)` Get the value stored in a previously defined output bind variable.
    `long` | `getResultSetBufferSize()` Returns the number of result set rows that will be buffered at a time or 0 for the entire result set.
    `short` | `getResultSetId()` Returns the internal ID of this result set.
    `java.lang.String[]` | `getRow(long row)` Returns a null terminated array of the values of the fields in the specified row.
    `long[]` | `getRowLengths(long row)` Returns a null terminated array of the lengths of the fields in the specified row.
    `boolean` | `getTableList(java.lang.String wild)` Sends a query that returns a list of tables matching "wild".
    `void` | `inputBind(java.lang.String variable, double value, int precision, int scale)` Define an input bind variable.
    `void` | `inputBind(java.lang.String variable, long value)` Define an input bind variable.
    `void` | `inputBind(java.lang.String variable, java.lang.String value)` Define an input bind variable.
    `void` | `inputBind(java.lang.String variable, java.lang.String value, int length)` Define an input bind variable.
    `void` | `inputBindBlob(java.lang.String variable, byte[] value, long size)` Define an input bind variable.
    `void` | `inputBindClob(java.lang.String variable, java.lang.String value, long size)` Define an input bind variable.
    `void` | `inputBinds(java.lang.String[] variables, double[] values, int[] precisions, int[] scales)` Define an array of input bind variables.
    `void` | `inputBinds(java.lang.String[] variables, long[] values)` Define an array of input bind variables.
    `void` | `inputBinds(java.lang.String[] variables, java.lang.String[] values)` Define an array of input bind variables.
    `void` | `lowerCaseColumnNames()` Columns names are converted to lower case.
    `void` | `mixedCaseColumnNames()` Columns names are returned in the same case as they are defined in the database.
    `boolean` | `openCachedResultSet(java.lang.String filename)` Opens a cached result set.
    `boolean` | `prepareFileQuery(java.lang.String path, java.lang.String filename)` Prepare to execute "query" with length "length".
    `void` | `prepareQuery(java.lang.String query)` Prepare to execute "query".
    `void` | `prepareQuery(java.lang.String query, int length)` Prepare to execute the contents of "path"/"filename".
    `boolean` | `resumeCachedResultSet(short id, java.lang.String filename)` Resumes a result set previously left open using suspendSession() and continues caching the result set to "filename".
    `boolean` | `resumeResultSet(short id)` Resumes a result set previously left open using suspendSession().
    `long` | `rowCount()` Returns the number of rows in the current result set (if the result set is being stepped through, this returns the number of rows processed so far).
    `boolean` | `sendFileQuery(java.lang.String path, java.lang.String filename)` Sends "query" with length "length" and gets a result set.
    `boolean` | `sendQuery(java.lang.String query)` Sends "query" and gets a result set.
    `boolean` | `sendQuery(java.lang.String query, int length)` Sends the query in file "path"/"filename" and gets a result set.
    `void` | `setCacheTtl(int ttl)` Sets the time-to-live for cached result sets.
    `void` | `setResultSetBufferSize(long rows)` Sets the number of rows of the result set to buffer at a time.
    `void` | `substitution(java.lang.String variable, double value, int precision, int scale)` Define a substitution variable.
    `void` | `substitution(java.lang.String variable, long value)` Define a substitution variable.
    `void` | `substitution(java.lang.String variable, java.lang.String value)` Define a substitution variable.
    `void` | `substitutions(java.lang.String[] variables, double[] values, int[] precisions, int[] scales)` Define an array of substitution variables.
    `void` | `substitutions(java.lang.String[] variables, long[] values)` Define an array of substitution variables.
    `void` | `substitutions(java.lang.String[] variables, java.lang.String[] values)` Define an array of substitution variables.
    `void` | `suspendResultSet()` Tells the server to leave this result set open when the connection calls suspendSession() so that another connection can connect to it using resumeResultSet() after it calls resumeSession().
    `long` | `totalRows()` Returns the total number of rows that will be returned in the result set.
    `void` | `upperCaseColumnNames()` Columns names are converted to upper case.
    `void` | `validateBinds()` If you are binding to any variables that might not actually be in your query, call this to ensure that the database won't try to bind them unless they really are in the query.
    `boolean` | `validBind(java.lang.String variable)` Returns true if "variable" was a valid bind variable of the query

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cursor

          public long cursor

      cursor and connection are used internally, they're just public to make the JNI wrapper work faster.

    - #### connection

          public SQLRConnection connection

  - ### Constructor Detail

    - #### SQLRCursor

          public SQLRCursor(SQLRConnection con)

  - ### Method Detail

    - #### delete

          public void delete()

    - #### setResultSetBufferSize

          public void setResultSetBufferSize(long rows)

      Sets the number of rows of the result set to buffer at a time. 0 (the default) means buffer the entire result set.

    - #### getResultSetBufferSize

          public long getResultSetBufferSize()

      Returns the number of result set rows that will be buffered at a time or 0 for the entire result set.

    - #### dontGetColumnInfo

          public void dontGetColumnInfo()

      Tells the server not to send any column info (names, types, sizes). If you don't need that info, you should call this method to improve performance.

    - #### getColumnInfo

          public void getColumnInfo()

      Tells the server to send column info.

    - #### mixedCaseColumnNames

          public void mixedCaseColumnNames()

      Columns names are returned in the same case as they are defined in the database. This is the default.

    - #### upperCaseColumnNames

          public void upperCaseColumnNames()

      Columns names are converted to upper case.

    - #### lowerCaseColumnNames

          public void lowerCaseColumnNames()

      Columns names are converted to lower case.

    - #### cacheToFile

          public void cacheToFile(java.lang.String filename)

      Sets query caching on. Future queries will be cached to the file "filename". A default time-to-live of 10 minutes is also set. Note that once cacheToFile() is called, the result sets of all future queries will be cached to that file until another call to cacheToFile() changes which file to cache to or a call to cacheOff() turns off caching.

    - #### setCacheTtl

          public void setCacheTtl(int ttl)

      Sets the time-to-live for cached result sets. The sqlr-cachemanger will remove each cached result set "ttl" seconds after it's created, provided it's scanning the directory containing the cache files.

    - #### getCacheFileName

          public java.lang.String getCacheFileName()

      Returns the name of the file containing the cached result set.

    - #### cacheOff

          public void cacheOff()

      Sets query caching off.

    - #### getDatabaseList

          public boolean getDatabaseList(java.lang.String wild)

      Sends a query that returns a list of databases/schemas matching "wild". If wild is empty or NULL then a list of all databases/schemas will be returned.

    - #### getTableList

          public boolean getTableList(java.lang.String wild)

      Sends a query that returns a list of tables matching "wild". If wild is empty or NULL then a list of all tables will be returned.

    - #### getColumnList

          public boolean getColumnList(java.lang.String table,
                                       java.lang.String wild)

      Sends a query that returns a list of columns in the table specified by the "table" parameter matching "wild". If wild is empty or NULL then a list of all columns will be returned.

    - #### sendQuery

          public boolean sendQuery(java.lang.String query)

      Sends "query" and gets a result set.

    - #### sendQuery

          public boolean sendQuery(java.lang.String query,
                                   int length)

      Sends the query in file "path"/"filename" and gets a result set.

    - #### sendFileQuery

          public boolean sendFileQuery(java.lang.String path,
                                       java.lang.String filename)

      Sends "query" with length "length" and gets a result set. This method must be used if the query contains binary data.

    - #### prepareQuery

          public void prepareQuery(java.lang.String query)

      Prepare to execute "query".

    - #### prepareQuery

          public void prepareQuery(java.lang.String query,
                                   int length)

      Prepare to execute the contents of "path"/"filename". Returns 0 if the file couldn't be opened.

    - #### prepareFileQuery

          public boolean prepareFileQuery(java.lang.String path,
                                          java.lang.String filename)

      Prepare to execute "query" with length "length". This method must be used if the query contains binary data.

    - #### clearBinds

          public void clearBinds()

      Clear all bind variables.

    - #### substitution

          public void substitution(java.lang.String variable,
                                   java.lang.String value)

      Define a substitution variable.

    - #### substitution

          public void substitution(java.lang.String variable,
                                   long value)

      Define a substitution variable.

    - #### substitution

          public void substitution(java.lang.String variable,
                                   double value,
                                   int precision,
                                   int scale)

      Define a substitution variable.

    - #### countBindVariables

          public short countBindVariables()

      Parses the previously prepared query, counts the number of bind variables defined in it and returns that number.

    - #### inputBind

          public void inputBind(java.lang.String variable,
                                java.lang.String value)

      Define an input bind variable.

    - #### inputBind

          public void inputBind(java.lang.String variable,
                                java.lang.String value,
                                int length)

      Define an input bind variable.

    - #### inputBind

          public void inputBind(java.lang.String variable,
                                long value)

      Define an input bind variable.

    - #### inputBind

          public void inputBind(java.lang.String variable,
                                double value,
                                int precision,
                                int scale)

      Define an input bind variable. (If you don't have the precision and scale then they may both be set to 0. However in that case you may get unexpected rounding behavior if the server is faking binds.)

    - #### inputBindBlob

          public void inputBindBlob(java.lang.String variable,
                                    byte[] value,
                                    long size)

      Define an input bind variable.

    - #### inputBindClob

          public void inputBindClob(java.lang.String variable,
                                    java.lang.String value,
                                    long size)

      Define an input bind variable.

    - #### defineOutputBindString

          public void defineOutputBindString(java.lang.String variable,
                                             int bufferlength)

      Define a string output bind variable.

    - #### defineOutputBindInteger

          public void defineOutputBindInteger(java.lang.String variable)

      Define an integer output bind variable.

    - #### defineOutputBindDouble

          public void defineOutputBindDouble(java.lang.String variable)

      Define a double precision floating point output bind variable.

    - #### defineOutputBindBlob

          public void defineOutputBindBlob(java.lang.String variable)

      Define an output bind variable.

    - #### defineOutputBindClob

          public void defineOutputBindClob(java.lang.String variable)

      Define an output bind variable.

    - #### defineOutputBindCursor

          public void defineOutputBindCursor(java.lang.String variable)

      Define an output bind variable.

    - #### substitutions

          public void substitutions(java.lang.String[] variables,
                                    java.lang.String[] values)

      Define an array of substitution variables.

    - #### substitutions

          public void substitutions(java.lang.String[] variables,
                                    long[] values)

      Define an array of substitution variables.

    - #### substitutions

          public void substitutions(java.lang.String[] variables,
                                    double[] values,
                                    int[] precisions,
                                    int[] scales)

      Define an array of substitution variables.

    - #### inputBinds

          public void inputBinds(java.lang.String[] variables,
                                 java.lang.String[] values)

      Define an array of input bind variables.

    - #### inputBinds

          public void inputBinds(java.lang.String[] variables,
                                 long[] values)

      Define an array of input bind variables.

    - #### inputBinds

          public void inputBinds(java.lang.String[] variables,
                                 double[] values,
                                 int[] precisions,
                                 int[] scales)

      Define an array of input bind variables.

    - #### validateBinds

          public void validateBinds()

      If you are binding to any variables that might not actually be in your query, call this to ensure that the database won't try to bind them unless they really are in the query. There is a performance penalty for calling this method.

    - #### validBind

          public boolean validBind(java.lang.String variable)

      Returns true if "variable" was a valid bind variable of the query

    - #### executeQuery

          public boolean executeQuery()

      Execute the query that was previously prepared and bound.

    - #### fetchFromBindCursor

          public boolean fetchFromBindCursor()

      Fetch from a cursor that was returned as an output bind variable.

    - #### getOutputBindString

          public java.lang.String getOutputBindString(java.lang.String variable)

      Get the value stored in a previously defined output bind variable.

    - #### getOutputBindBlob

          public byte[] getOutputBindBlob(java.lang.String variable)

      Get the value stored in a previously defined output bind variable.

    - #### getOutputBindClob

          public java.lang.String getOutputBindClob(java.lang.String variable)

      Get the value stored in a previously defined output bind variable.

    - #### getOutputBindAsByteArray

          public byte[] getOutputBindAsByteArray(java.lang.String variable)

      Get the length of the value stored in a previously defined output bind variable.

    - #### getOutputBindInteger

          public long getOutputBindInteger(java.lang.String variable)

      Get the value stored in a previously defined output bind variable as a long integer.

    - #### getOutputBindDouble

          public double getOutputBindDouble(java.lang.String variable)

      Get the value stored in a previously defined output bind variable as a double precision floating point number.

    - #### getOutputBindLength

          public long getOutputBindLength(java.lang.String variable)

      Get the length of the value stored in a previously defined output bind variable.

    - #### getOutputBindCursor

          public SQLRCursor getOutputBindCursor(java.lang.String variable)

      Get the cursor associated with a previously defined output bind variable.

    - #### openCachedResultSet

          public boolean openCachedResultSet(java.lang.String filename)

      Opens a cached result set. Returns 1 on success and 0 on failure.

    - #### colCount

          public int colCount()

      Returns the number of columns in the current result set.

    - #### rowCount

          public long rowCount()

      Returns the number of rows in the current result set (if the result set is being stepped through, this returns the number of rows processed so far).

    - #### totalRows

          public long totalRows()

      Returns the total number of rows that will be returned in the result set. Not all databases support this call. Don't use it for applications which are designed to be portable across databases. -1 is returned by databases which don't support this option.

    - #### affectedRows

          public long affectedRows()

      Returns the number of rows that were updated, inserted or deleted by the query. Not all databases support this call. Don't use it for applications which are designed to be portable across databases. -1 is returned by databases which don't support this option.

    - #### firstRowIndex

          public long firstRowIndex()

      Returns the index of the first buffered row. This is useful when buffering only part of the result set at a time.

    - #### endOfResultSet

          public boolean endOfResultSet()

      Returns 0 if part of the result set is still pending on the server and 1 if not. This method can only return 0 if setResultSetBufferSize() has been called with a parameter other than 0.

    - #### errorMessage

          public java.lang.String errorMessage()

      If a query failed and generated an error, the error message is available here. If the query succeeded then this method returns NULL.

    - #### errorNumber

          public long errorNumber()

      If a query failed and generated an error, the error number is available here. If there is no error then this method returns 0.

    - #### getNullsAsEmptyStrings

          public void getNullsAsEmptyStrings()

      Tells the connection to return NULL fields and output bind variables as empty strings. This is the default.

    - #### getNullsAsNulls

          public void getNullsAsNulls()

      Tells the connection to return NULL fields and output bind variables as NULL's rather than as empty strings.

    - #### getField

          public java.lang.String getField(long row,
                                           int col)

      Returns a pointer to the value of the specified row and column.

    - #### getField

          public java.lang.String getField(long row,
                                           java.lang.String col)

      Returns a pointer to the value of the specified row and column.

    - #### getFieldAsInteger

          public long getFieldAsInteger(long row,
                                        int col)

      Returns the specified field as a long integer

    - #### getFieldAsInteger

          public long getFieldAsInteger(long row,
                                        java.lang.String col)

      Returns the specified field as a long integer

    - #### getFieldAsDouble

          public double getFieldAsDouble(long row,
                                         int col)

      Returns the specified field as a double floating point number

    - #### getFieldAsDouble

          public double getFieldAsDouble(long row,
                                         java.lang.String col)

      Returns the specified field as a double floating point number

    - #### getFieldAsByteArray

          public byte[] getFieldAsByteArray(long row,
                                            int col)

      Returns a pointer to the value of the specified row and column.

    - #### getFieldAsByteArray

          public byte[] getFieldAsByteArray(long row,
                                            java.lang.String col)

      Returns the length of the specified row and column.

    - #### getFieldLength

          public long getFieldLength(long row,
                                     int col)

      Returns the length of the specified row and column.

    - #### getFieldLength

          public long getFieldLength(long row,
                                     java.lang.String col)

      Returns the length of the specified row and column.

    - #### getRow

          public java.lang.String[] getRow(long row)

      Returns a null terminated array of the values of the fields in the specified row.

    - #### getRowLengths

          public long[] getRowLengths(long row)

      Returns a null terminated array of the lengths of the fields in the specified row.

    - #### getColumnNames

          public java.lang.String[] getColumnNames()

      Returns a null terminated array of the column names of the current result set.

    - #### getColumnName

          public java.lang.String getColumnName(int col)

      Returns the name of the specified column.

    - #### getColumnType

          public java.lang.String getColumnType(int col)

      Returns the type of the specified column.

    - #### getColumnType

          public java.lang.String getColumnType(java.lang.String col)

      Returns the type of the specified column.

    - #### getColumnPrecision

          public long getColumnPrecision(int col)

      Returns the precision of the specified column. Precision is the total number of digits in a number. eg: 123.45 has a precision of 5. For non-numeric types, it's the number of characters in the string.

    - #### getColumnPrecision

          public long getColumnPrecision(java.lang.String col)

      Returns the precision of the specified column. Precision is the total number of digits in a number. eg: 123.45 has a precision of 5. For non-numeric types, it's the number of characters in the string.

    - #### getColumnScale

          public long getColumnScale(int col)

      Returns the scale of the specified column. Scale is the total number of digits to the right of the decimal point in a number. eg: 123.45 has a scale of 2.

    - #### getColumnScale

          public long getColumnScale(java.lang.String col)

      Returns the scale of the specified column. Scale is the total number of digits to the right of the decimal point in a number. eg: 123.45 has a scale of 2.

    - #### getColumnIsNullable

          public boolean getColumnIsNullable(int col)

      Returns true if the specified column can contain nulls and false otherwise.

    - #### getColumnIsNullable

          public boolean getColumnIsNullable(java.lang.String col)

      Returns true if the specified column can contain nulls and false otherwise.

    - #### getColumnIsPrimaryKey

          public boolean getColumnIsPrimaryKey(int col)

      Returns true if the specified column is a primary key and false otherwise.

    - #### getColumnIsPrimaryKey

          public boolean getColumnIsPrimaryKey(java.lang.String col)

      Returns true if the specified column is a primary key and false otherwise.

    - #### getColumnIsUnique

          public boolean getColumnIsUnique(int col)

      Returns true if the specified column is unique and false otherwise.

    - #### getColumnIsUnique

          public boolean getColumnIsUnique(java.lang.String col)

      Returns true if the specified column is unique and false otherwise.

    - #### getColumnIsPartOfKey

          public boolean getColumnIsPartOfKey(int col)

      Returns true if the specified column is part of a composite key and false otherwise.

    - #### getColumnIsPartOfKey

          public boolean getColumnIsPartOfKey(java.lang.String col)

      Returns true if the specified column is part of a composite key and false otherwise.

    - #### getColumnIsUnsigned

          public boolean getColumnIsUnsigned(int col)

      Returns true if the specified column is an unsigned number and false otherwise.

    - #### getColumnIsUnsigned

          public boolean getColumnIsUnsigned(java.lang.String col)

      Returns true if the specified column is an unsigned number and false otherwise.

    - #### getColumnIsZeroFilled

          public boolean getColumnIsZeroFilled(int col)

      Returns true if the specified column was created with the zero-fill flag and false otherwise.

    - #### getColumnIsZeroFilled

          public boolean getColumnIsZeroFilled(java.lang.String col)

      Returns true if the specified column was created with the zero-fill flag and false otherwise.

    - #### getColumnIsBinary

          public boolean getColumnIsBinary(int col)

      Returns true if the specified column contains binary data and false otherwise.

    - #### getColumnIsBinary

          public boolean getColumnIsBinary(java.lang.String col)

      Returns true if the specified column contains binary data and false otherwise.

    - #### getColumnIsAutoIncrement

          public boolean getColumnIsAutoIncrement(int col)

      Returns true if the specified column auto-increments and false otherwise.

    - #### getColumnIsAutoIncrement

          public boolean getColumnIsAutoIncrement(java.lang.String col)

      Returns true if the specified column auto-increments and false otherwise.

    - #### getColumnLength

          public int getColumnLength(int col)

      Returns the length of the specified column.

    - #### getColumnLength

          public int getColumnLength(java.lang.String col)

      Returns the length of the specified column.

    - #### getLongest

          public int getLongest(int col)

      Returns the length of the longest field in the specified column.

    - #### getLongest

          public int getLongest(java.lang.String col)

      Returns the length of the longest field in the specified column.

    - #### suspendResultSet

          public void suspendResultSet()

      Tells the server to leave this result set open when the connection calls suspendSession() so that another connection can connect to it using resumeResultSet() after it calls resumeSession().

    - #### getResultSetId

          public short getResultSetId()

      Returns the internal ID of this result set. This parameter may be passed to another cursor for use in the resumeResultSet() method. Note: the value returned by this method is only valid after a call to suspendResultSet().

    - #### resumeResultSet

          public boolean resumeResultSet(short id)

      Resumes a result set previously left open using suspendSession(). Returns 1 on success and 0 on failure.

    - #### resumeCachedResultSet

          public boolean resumeCachedResultSet(short id,
                                               java.lang.String filename)

      Resumes a result set previously left open using suspendSession() and continues caching the result set to "filename". Returns 1 on success and 0 on failure.

    - #### closeResultSet

          public void closeResultSet()

      Closes the current result set, if one is open. Data that has been fetched already is still available but no more data may be fetched. Server side resources for the result set are freed as well.