Package org.apache.derby.client.am
Class Sqlca
- java.lang.Object
-
- org.apache.derby.client.am.Sqlca
-
- Direct Known Subclasses:
NetSqlca
public abstract class Sqlca extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private Agent
agent_
private java.lang.String[]
cachedMessages
Cached error messages (to prevent multiple invocations of the stored procedure to get the same message).private ClientConnection
connection_
private boolean
containsSqlcax_
private static java.lang.String
elevenBlanks
(package private) SqlException
exceptionThrownOnStoredProcInvocation_
private static int
HIGH_ORDER_ROW_COUNT
private static int
HIGH_ORDER_UPDATE_COUNT
private static int
LOW_ORDER_ROW_COUNT
private static int
LOW_ORDER_UPDATE_COUNT
(package private) boolean
messageTextRetrievedContainsTokensOnly_
private boolean
returnTokensOnlyInMessageText_
private long
rowsetRowCount_
static int
SQL_ERR_LENGTH
protected int
sqlCode_
protected int[]
sqlErrd_
private java.lang.String
sqlErrmc_
A string representation ofsqlErrmcBytes_
.protected byte[]
sqlErrmcBytes_
private java.lang.String[]
sqlErrmcMessages_
Array of errmc strings for each message in the chain.private java.lang.String
sqlErrp_
protected byte[]
sqlErrpBytes_
protected java.lang.String
sqlState_
private java.lang.String[]
sqlStates_
SQL states for all the messages in the exception chain.private java.lang.String
sqlWarn_
protected byte[]
sqlWarnBytes_
-
Constructor Summary
Constructors Modifier Constructor Description protected
Sqlca(ClientConnection connection)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
bytes2String(byte[] bytes, int offset, int length)
private void
chainDeferredExceptionsToAgentOrAsConnectionWarnings(SqlException e)
boolean
containsSqlcax()
(package private) java.lang.String
formatSqlErrd()
java.lang.Object[]
getArgs(int messageNumber)
(package private) java.sql.DataTruncation
getDataTruncation()
Get ajava.sql.DataTruncation
warning based on the information in this SQLCA.int
getErrorCode()
Get the error code based on the SQL code received from the server.(package private) java.lang.String
getJDBCMessage(int messageNumber)
private java.lang.String
getMessage(int messageNumber)
long
getRowCount()
long
getRowsetRowCount()
int
getSqlCode()
private int[]
getSqlErrd()
java.lang.String
getSqlErrmc()
java.lang.String
getSqlErrp()
java.lang.String
getSqlState()
(package private) java.lang.String
getSqlState(int messageNumber)
Get the SQL state for a given error.java.lang.String
getSqlWarn()
private java.lang.String
getUnformattedMessage(int messageNumber)
Get the unformatted message text (in case we cannot ask the server).long
getUpdateCount()
private void
initSqlErrmcMessages()
Initialize and build the arrayssqlErrmcMessages_
andsqlStates_
.(package private) int
numberOfMessages()
Returns the number of messages this SQLCA contains.private void
processSqlErrmcTokens(byte[] tokenBytes)
void
resetRowsetSqlca(ClientConnection connection, int sqlCode, java.lang.String sqlState)
(package private) void
returnTokensOnlyInMessageText(boolean returnTokensOnlyInMessageText)
void
setContainsSqlcax(boolean containsSqlcax)
void
setRowsetRowCount(long rowCount)
-
-
-
Field Detail
-
HIGH_ORDER_ROW_COUNT
private static final int HIGH_ORDER_ROW_COUNT
- See Also:
- Constant Field Values
-
LOW_ORDER_ROW_COUNT
private static final int LOW_ORDER_ROW_COUNT
- See Also:
- Constant Field Values
-
LOW_ORDER_UPDATE_COUNT
private static final int LOW_ORDER_UPDATE_COUNT
- See Also:
- Constant Field Values
-
HIGH_ORDER_UPDATE_COUNT
private static final int HIGH_ORDER_UPDATE_COUNT
- See Also:
- Constant Field Values
-
SQL_ERR_LENGTH
public static final int SQL_ERR_LENGTH
- See Also:
- Constant Field Values
-
connection_
private transient ClientConnection connection_
-
exceptionThrownOnStoredProcInvocation_
SqlException exceptionThrownOnStoredProcInvocation_
-
messageTextRetrievedContainsTokensOnly_
boolean messageTextRetrievedContainsTokensOnly_
-
sqlCode_
protected int sqlCode_
-
sqlErrmc_
private java.lang.String sqlErrmc_
A string representation ofsqlErrmcBytes_
.
-
sqlErrmcMessages_
private java.lang.String[] sqlErrmcMessages_
Array of errmc strings for each message in the chain.
-
sqlStates_
private java.lang.String[] sqlStates_
SQL states for all the messages in the exception chain.
-
sqlErrp_
private java.lang.String sqlErrp_
-
sqlErrd_
protected int[] sqlErrd_
-
sqlWarn_
private java.lang.String sqlWarn_
-
sqlState_
protected java.lang.String sqlState_
-
sqlErrmcBytes_
protected byte[] sqlErrmcBytes_
-
sqlErrpBytes_
protected byte[] sqlErrpBytes_
-
sqlWarnBytes_
protected byte[] sqlWarnBytes_
-
containsSqlcax_
private boolean containsSqlcax_
-
rowsetRowCount_
private long rowsetRowCount_
-
returnTokensOnlyInMessageText_
private boolean returnTokensOnlyInMessageText_
-
agent_
private final transient Agent agent_
-
cachedMessages
private java.lang.String[] cachedMessages
Cached error messages (to prevent multiple invocations of the stored procedure to get the same message).
-
elevenBlanks
private static final java.lang.String elevenBlanks
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Sqlca
protected Sqlca(ClientConnection connection)
-
-
Method Detail
-
returnTokensOnlyInMessageText
void returnTokensOnlyInMessageText(boolean returnTokensOnlyInMessageText)
-
numberOfMessages
int numberOfMessages()
Returns the number of messages this SQLCA contains.- Returns:
- number of messages
-
getSqlCode
public int getSqlCode()
-
getErrorCode
public int getErrorCode()
Get the error code based on the SQL code received from the server.
The conversion from SQL code to error code happens like this:
- If the SQL code is 0, there is no error code because the Sqlca doesn't represent an error. Return 0.
- If the SQL code is positive, the Sqlca represents a warning, and the SQL code represents the actual error code. Return the SQL code.
- If the SQL code is negative, the Sqlca represents an error, and
the error code is
-(sqlCode+1)
.
-
getSqlErrmc
public java.lang.String getSqlErrmc()
-
initSqlErrmcMessages
private void initSqlErrmcMessages()
Initialize and build the arrayssqlErrmcMessages_
andsqlStates_
.
-
getSqlErrp
public java.lang.String getSqlErrp()
-
getSqlErrd
private int[] getSqlErrd()
-
formatSqlErrd
java.lang.String formatSqlErrd()
-
getSqlWarn
public java.lang.String getSqlWarn()
-
getSqlState
public java.lang.String getSqlState()
-
getSqlState
java.lang.String getSqlState(int messageNumber)
Get the SQL state for a given error.- Parameters:
messageNumber
- the error to retrieve SQL state for- Returns:
- SQL state for the error
-
getArgs
public java.lang.Object[] getArgs(int messageNumber)
-
getMessage
private java.lang.String getMessage(int messageNumber) throws SqlException
- Throws:
SqlException
-
getJDBCMessage
java.lang.String getJDBCMessage(int messageNumber)
-
getUnformattedMessage
private java.lang.String getUnformattedMessage(int messageNumber)
Get the unformatted message text (in case we cannot ask the server).- Parameters:
messageNumber
- which message number to get the text for- Returns:
- string with details about the error
-
chainDeferredExceptionsToAgentOrAsConnectionWarnings
private void chainDeferredExceptionsToAgentOrAsConnectionWarnings(SqlException e)
-
getDataTruncation
java.sql.DataTruncation getDataTruncation()
Get ajava.sql.DataTruncation
warning based on the information in this SQLCA.- Returns:
- a
java.sql.DataTruncation
instance
-
processSqlErrmcTokens
private void processSqlErrmcTokens(byte[] tokenBytes)
-
bytes2String
protected java.lang.String bytes2String(byte[] bytes, int offset, int length)
-
getUpdateCount
public long getUpdateCount()
-
getRowCount
public long getRowCount() throws DisconnectException
- Throws:
DisconnectException
-
setContainsSqlcax
public void setContainsSqlcax(boolean containsSqlcax)
-
containsSqlcax
public boolean containsSqlcax()
-
resetRowsetSqlca
public void resetRowsetSqlca(ClientConnection connection, int sqlCode, java.lang.String sqlState)
-
setRowsetRowCount
public void setRowsetRowCount(long rowCount)
-
getRowsetRowCount
public long getRowsetRowCount()
-
-