home *** CD-ROM | disk | FTP | other *** search
- package sun.jdbc.odbc;
-
- import java.io.InputStream;
- import java.math.BigDecimal;
- import java.sql.Date;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.SQLWarning;
- import java.sql.Statement;
- import java.sql.Time;
- import java.sql.Timestamp;
- import java.util.Hashtable;
-
- public class JdbcOdbcResultSet extends JdbcOdbcObject implements JdbcOdbcResultSetInterface {
- protected JdbcOdbc OdbcApi = null;
- protected int hDbc = 0;
- protected int hStmt = 0;
- protected SQLWarning lastWarning = null;
- protected boolean keepHSTMT = false;
- protected JdbcOdbcBoundCol[] boundCols;
- protected int numberOfCols;
- protected int numResultCols = -1;
- protected int firstPseudoCol;
- protected int lastPseudoCol;
- protected JdbcOdbcPseudoCol[] pseudoCols;
- protected int[] colMappings;
- protected ResultSetMetaData rsmd;
- private Hashtable colNameToNum;
- private Hashtable colNumToName;
- private boolean lastColumnNull = false;
- private boolean closed;
- private int sqlTypeColumn;
- private boolean freed;
- protected Statement ownerStatement;
-
- protected void finalize() {
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace("ResultSet.finalize " + this);
- }
-
- try {
- this.close();
- } catch (SQLException var1) {
- }
- }
-
- public void initialize(JdbcOdbc var1, int var2, int var3, boolean var4, Statement var5) throws SQLException {
- this.OdbcApi = var1;
- this.hDbc = var2;
- this.hStmt = var3;
- this.keepHSTMT = var4;
- this.numberOfCols = this.getColumnCount();
- this.boundCols = new JdbcOdbcBoundCol[this.numberOfCols];
-
- for(int var6 = 0; var6 < this.numberOfCols; ++var6) {
- this.boundCols[var6] = new JdbcOdbcBoundCol();
- }
-
- this.ownerStatement = var5;
- }
-
- public boolean wasNull() throws SQLException {
- return this.lastColumnNull;
- }
-
- public String getString(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- int var2 = this.getMaxCharLen(var1);
- if (var2 == -1) {
- return null;
- } else {
- boolean var3 = true;
- int var4 = this.getColumnType(var1);
- switch (var4) {
- case -1:
- case 1:
- var3 = false;
- case 0:
- }
-
- ++var2;
- String var5 = this.getDataString(var1, var2, var3);
- if (var5 == null) {
- return var5;
- } else {
- int var6 = var5.length();
- if (var6 == var2 && !var3) {
- var5 = var5.substring(0, var2 - 1);
- }
-
- if ((var4 == -1 || var4 == -4) && var6 == var2) {
- String var7 = var5;
-
- while(var7.length() == JdbcOdbcLimits.MAX_GET_DATA_LENGTH) {
- var7 = this.getDataString(var1, var2, var3);
- if (var7 == null) {
- break;
- }
-
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace(var7.length() + " byte(s) read");
- }
-
- if (var7.length() == var2) {
- var7 = var7.substring(0, var2 - 1);
- }
-
- var5 = var5 + var7;
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace(var5.length() + " bytes total");
- }
- }
- }
-
- return var5;
- }
- }
- }
- }
-
- public String getString(String var1) throws SQLException {
- return this.getString(this.findColumn(var1));
- }
-
- public boolean getBoolean(int var1) throws SQLException {
- boolean var2 = false;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- var2 = this.getInt(var1) != 0;
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public boolean getBoolean(String var1) throws SQLException {
- return this.getBoolean(this.findColumn(var1));
- }
-
- public byte getByte(int var1) throws SQLException {
- byte var2 = 0;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- var2 = (byte)this.getInt(var1);
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public byte getByte(String var1) throws SQLException {
- return this.getByte(this.findColumn(var1));
- }
-
- public short getShort(int var1) throws SQLException {
- short var2 = 0;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- var2 = (short)this.getInt(var1);
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public short getShort(String var1) throws SQLException {
- return this.getShort(this.findColumn(var1));
- }
-
- public int getInt(int var1) throws SQLException {
- int var2 = 0;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- Integer var3 = this.getDataInteger(var1);
- if (var3 != null) {
- var2 = var3;
- }
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public int getInt(String var1) throws SQLException {
- return this.getInt(this.findColumn(var1));
- }
-
- public long getLong(int var1) throws SQLException {
- long var2 = 0L;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- Double var4 = this.getDataDouble(var1);
- if (var4 != null) {
- var2 = var4.longValue();
- }
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public long getLong(String var1) throws SQLException {
- return this.getLong(this.findColumn(var1));
- }
-
- public float getFloat(int var1) throws SQLException {
- float var2 = 0.0F;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- Float var3 = this.getDataFloat(var1);
- if (var3 != null) {
- var2 = var3;
- }
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public float getFloat(String var1) throws SQLException {
- return this.getFloat(this.findColumn(var1));
- }
-
- public double getDouble(int var1) throws SQLException {
- double var2 = (double)0.0F;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- Double var4 = this.getDataDouble(var1);
- if (var4 != null) {
- var2 = var4;
- }
- } else {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public double getDouble(String var1) throws SQLException {
- return this.getDouble(this.findColumn(var1));
- }
-
- public BigDecimal getBigDecimal(int var1, int var2) throws SQLException {
- BigDecimal var3 = null;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) == null) {
- String var4 = this.getDataString(var1, 300, true);
- if (var4 != null) {
- var3 = new BigDecimal(var4);
- var3 = var3.setScale(var2, 6);
- }
- } else {
- this.lastColumnNull = true;
- }
-
- return var3;
- }
-
- public BigDecimal getBigDecimal(String var1, int var2) throws SQLException {
- return this.getBigDecimal(this.findColumn(var1), var2);
- }
-
- public synchronized byte[] getBytes(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- int var2 = this.getMaxBinaryLen(var1);
- if (var2 == -1) {
- return null;
- } else {
- int var3 = this.getColumnType(var1);
- byte[] var4 = new byte[var2];
-
- int var5;
- try {
- var5 = this.OdbcApi.SQLGetDataBinary(this.hStmt, var1, var4);
- } catch (JdbcOdbcSQLWarning var13) {
- Integer var7 = (Integer)var13.value;
- var5 = var7;
- }
-
- if (var5 == -1) {
- this.lastColumnNull = true;
- var4 = null;
- }
-
- if (var3 != -2 && var5 != var2) {
- byte[] var17 = new byte[var5];
- System.arraycopy(var4, 0, var17, 0, var5);
- return var17;
- } else if (var5 < JdbcOdbcLimits.MAX_GET_DATA_LENGTH) {
- return var4;
- } else {
- Hashtable var6 = new Hashtable();
- int var18 = 0;
- int var8 = 0;
-
- while(var5 != -1) {
- var8 += var5;
- var6.put(new Integer(var18++), var4);
-
- try {
- var5 = this.OdbcApi.SQLGetDataBinary(this.hStmt, var1, var4);
- } catch (JdbcOdbcSQLWarning var12) {
- Integer var10 = (Integer)var12.value;
- var5 = var10;
- }
- }
-
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace("Total bytes read: " + var8 + ". Creating buffer");
- }
-
- byte[] var9 = new byte[var8];
- int var19 = 0;
-
- for(int var11 = 0; var11 < var18; ++var11) {
- var4 = (byte[])var6.get(new Integer(var11));
- var5 = var8;
- if (var8 > JdbcOdbcLimits.MAX_GET_DATA_LENGTH) {
- var5 = JdbcOdbcLimits.MAX_GET_DATA_LENGTH;
- }
-
- var8 -= var5;
- System.arraycopy(var4, 0, var9, var19, var5);
- var19 += var5;
- }
-
- return var9;
- }
- }
- }
- }
-
- public byte[] getBytes(String var1) throws SQLException {
- return this.getBytes(this.findColumn(var1));
- }
-
- public Date getDate(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- String var2 = this.getDataStringDate(var1);
- return var2 == null ? null : Date.valueOf(var2);
- }
- }
-
- public Date getDate(String var1) throws SQLException {
- return this.getDate(this.findColumn(var1));
- }
-
- public Time getTime(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- String var2 = this.getDataStringTime(var1);
- return var2 == null ? null : Time.valueOf(var2);
- }
- }
-
- public Time getTime(String var1) throws SQLException {
- return this.getTime(this.findColumn(var1));
- }
-
- public Timestamp getTimestamp(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- String var2 = this.getDataStringTimestamp(var1);
- if (var2 == null) {
- return null;
- } else {
- if (var2.length() == 10) {
- var2 = var2 + " 00:00:00";
- }
-
- return Timestamp.valueOf(var2);
- }
- }
- }
-
- public Timestamp getTimestamp(String var1) throws SQLException {
- return this.getTimestamp(this.findColumn(var1));
- }
-
- public InputStream getAsciiStream(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- int var2 = this.getColumnType(var1);
- byte var3 = -2;
- switch (var2) {
- case -1:
- case 1:
- case 12:
- var3 = 1;
- default:
- JdbcOdbcInputStream var4 = new JdbcOdbcInputStream(this.OdbcApi, this.hStmt, var1, (short)1, var3, this.ownerStatement);
- this.setInputStream(var1, var4);
- return var4;
- }
- }
-
- public InputStream getAsciiStream(String var1) throws SQLException {
- return this.getAsciiStream(this.findColumn(var1));
- }
-
- public InputStream getUnicodeStream(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- int var2 = this.getColumnType(var1);
- byte var3 = -2;
- switch (var2) {
- case -1:
- case 1:
- case 12:
- var3 = 1;
- default:
- JdbcOdbcInputStream var4 = new JdbcOdbcInputStream(this.OdbcApi, this.hStmt, var1, (short)2, var3, this.ownerStatement);
- this.setInputStream(var1, var4);
- return var4;
- }
- }
-
- public InputStream getUnicodeStream(String var1) throws SQLException {
- return this.getUnicodeStream(this.findColumn(var1));
- }
-
- public InputStream getBinaryStream(int var1) throws SQLException {
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- int var2 = this.getColumnType(var1);
- byte var3 = -2;
- switch (var2) {
- case -1:
- case 1:
- case 12:
- var3 = 1;
- default:
- JdbcOdbcInputStream var4 = new JdbcOdbcInputStream(this.OdbcApi, this.hStmt, var1, (short)3, var3, this.ownerStatement);
- this.setInputStream(var1, var4);
- return var4;
- }
- }
-
- public InputStream getBinaryStream(String var1) throws SQLException {
- return this.getBinaryStream(this.findColumn(var1));
- }
-
- public boolean next() throws SQLException {
- boolean var1 = true;
- this.lastColumnNull = false;
- this.closeInputStreams();
- this.clearWarnings();
-
- try {
- var1 = this.OdbcApi.SQLFetch(this.hStmt);
- } catch (SQLWarning var3) {
- this.setWarning(var3);
- }
-
- return var1;
- }
-
- public int getRowNumber() throws SQLException {
- int var1 = 0;
- this.clearWarnings();
-
- try {
- var1 = this.OdbcApi.SQLGetStmtOption(this.hStmt, (short)14);
- } catch (JdbcOdbcSQLWarning var4) {
- BigDecimal var3 = (BigDecimal)var4.value;
- var1 = var3.intValue();
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- return var1;
- }
-
- public int getColumnCount() throws SQLException {
- int var1 = 0;
- this.clearWarnings();
- if (this.lastPseudoCol > 0) {
- return this.lastPseudoCol;
- } else if (this.colMappings != null) {
- return this.colMappings.length;
- } else {
- try {
- if (this.numResultCols == -1) {
- this.numResultCols = this.OdbcApi.SQLNumResultCols(this.hStmt);
- }
-
- var1 = this.numResultCols;
- } catch (JdbcOdbcSQLWarning var4) {
- BigDecimal var3 = (BigDecimal)var4.value;
- var1 = var3.intValue();
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- return var1;
- }
- }
-
- public int getRowCount() throws SQLException {
- int var1 = 0;
- this.clearWarnings();
-
- try {
- var1 = this.OdbcApi.SQLRowCount(this.hStmt);
- } catch (JdbcOdbcSQLWarning var4) {
- BigDecimal var3 = (BigDecimal)var4.value;
- var1 = var3.intValue();
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- return var1;
- }
-
- public synchronized void close() throws SQLException {
- this.closeInputStreams();
- this.clearWarnings();
- this.lastColumnNull = false;
- if (this.OdbcApi != null && this.hStmt != 0) {
- if (this.keepHSTMT) {
- if (!this.freed) {
- this.OdbcApi.SQLFreeStmt(this.hStmt, 0);
- this.freed = true;
- }
- } else {
- this.OdbcApi.SQLFreeStmt(this.hStmt, 1);
- this.hStmt = 0;
- }
-
- this.closed = true;
- }
-
- }
-
- public String getCursorName() throws SQLException {
- String var1 = "";
- this.clearWarnings();
-
- try {
- var1 = this.OdbcApi.SQLGetCursorName(this.hStmt);
- } catch (JdbcOdbcSQLWarning var3) {
- var1 = (String)var3.value;
- this.setWarning(JdbcOdbc.convertWarning(var3));
- }
-
- return var1.trim();
- }
-
- public ResultSetMetaData getMetaData() throws SQLException {
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace("*ResultSet.getMetaData");
- }
-
- if (this.closed) {
- throw new SQLException("ResultSet is closed");
- } else {
- return new JdbcOdbcResultSetMetaData(this.OdbcApi, this);
- }
- }
-
- public Object getObject(int var1) throws SQLException {
- Object var2 = null;
- int var3 = this.getColumnType(var1);
- int var4 = var1;
- this.clearWarnings();
- this.lastColumnNull = false;
- var1 = this.mapColumn(var1);
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- return null;
- } else {
- switch (var3) {
- case -7:
- var2 = new Boolean(this.getBoolean(var1));
- break;
- case -6:
- case 4:
- case 5:
- var2 = new Integer(this.getInt(var1));
- break;
- case -5:
- var2 = new Long(this.getLong(var1));
- break;
- case -4:
- case -3:
- case -2:
- var2 = this.getBytes(var1);
- break;
- case -1:
- case 1:
- case 12:
- var2 = this.getString(var1);
- break;
- case 2:
- case 3:
- var2 = this.getBigDecimal(var1, this.getScale(var4));
- break;
- case 6:
- case 8:
- var2 = new Double(this.getDouble(var1));
- break;
- case 7:
- var2 = new Float(this.getFloat(var1));
- break;
- case 91:
- var2 = this.getDate(var1);
- break;
- case 92:
- var2 = this.getTime(var1);
- break;
- case 93:
- var2 = this.getTimestamp(var1);
- }
-
- if (this.wasNull()) {
- var2 = null;
- }
-
- return var2;
- }
- }
-
- public Object getObject(String var1) throws SQLException {
- return this.getObject(this.findColumn(var1));
- }
-
- public SQLWarning getWarnings() throws SQLException {
- return this.lastWarning;
- }
-
- public void clearWarnings() throws SQLException {
- this.lastWarning = null;
- }
-
- public void setWarning(SQLWarning var1) throws SQLException {
- this.lastWarning = var1;
- }
-
- public int getHSTMT() {
- return this.hStmt;
- }
-
- public synchronized int findColumn(String var1) throws SQLException {
- if (this.rsmd == null) {
- this.rsmd = this.getMetaData();
- this.colNameToNum = new Hashtable();
- this.colNumToName = new Hashtable();
- }
-
- Integer var2 = (Integer)this.colNameToNum.get(var1);
- if (var2 == null) {
- for(int var4 = 1; var4 <= this.rsmd.getColumnCount(); ++var4) {
- String var3 = (String)this.colNumToName.get(new Integer(var4));
- if (var3 == null) {
- var3 = this.rsmd.getColumnName(var4);
- this.colNameToNum.put(var3, new Integer(var4));
- this.colNumToName.put(new Integer(var4), var3);
- }
-
- if (var3.equalsIgnoreCase(var1)) {
- return var4;
- }
- }
-
- throw new SQLException("Column not found", "S0022");
- } else {
- return var2;
- }
- }
-
- public int getColAttribute(int var1, int var2) throws SQLException {
- int var3 = 0;
- this.clearWarnings();
-
- try {
- var3 = this.OdbcApi.SQLColAttributes(this.hStmt, var1, var2);
- } catch (JdbcOdbcSQLWarning var6) {
- BigDecimal var5 = (BigDecimal)var6.value;
- var3 = var5.intValue();
- this.setWarning(JdbcOdbc.convertWarning(var6));
- }
-
- return var3;
- }
-
- protected int getMaxCharLen(int var1) throws SQLException {
- int var2 = this.getColumnType(var1);
- int var3 = this.getColumnLength(var1);
- if (var3 != -1) {
- switch (var2) {
- case -7:
- var3 = 1;
- break;
- case -6:
- var3 = 4;
- break;
- case -5:
- var3 = 20;
- break;
- case -4:
- case -3:
- case -2:
- var3 *= 2;
- break;
- case 2:
- case 3:
- var3 += 2;
- break;
- case 4:
- var3 = 11;
- break;
- case 5:
- var3 = 6;
- break;
- case 6:
- case 8:
- var3 = 22;
- break;
- case 7:
- var3 = 13;
- break;
- case 91:
- var3 = 10;
- break;
- case 92:
- var3 = 8;
- break;
- case 93:
- var3 = 29;
- }
-
- if (var3 <= 0 || var3 > JdbcOdbcLimits.MAX_GET_DATA_LENGTH) {
- var3 = JdbcOdbcLimits.MAX_GET_DATA_LENGTH;
- }
- }
-
- return var3;
- }
-
- protected int getMaxBinaryLen(int var1) throws SQLException {
- int var2 = this.getColumnLength(var1);
- if (var2 != -1 && (var2 <= 0 || var2 > JdbcOdbcLimits.MAX_GET_DATA_LENGTH)) {
- var2 = JdbcOdbcLimits.MAX_GET_DATA_LENGTH;
- }
-
- return var2;
- }
-
- public Double getDataDouble(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- Double var2;
- try {
- var2 = this.OdbcApi.SQLGetDataDouble(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (Double)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public Float getDataFloat(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- Float var2;
- try {
- var2 = this.OdbcApi.SQLGetDataFloat(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (Float)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public Integer getDataInteger(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- Integer var2;
- try {
- var2 = this.OdbcApi.SQLGetDataInteger(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (Integer)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- } else if (var1 == this.sqlTypeColumn) {
- var2 = new Integer(OdbcDef.odbcTypeToJdbc(var2));
- }
-
- return var2;
- }
-
- public Long getDataLong(int var1) throws SQLException {
- Long var2 = null;
- Double var3 = this.getDataDouble(var1);
- if (var3 != null) {
- var2 = new Long(var3.longValue());
- }
-
- return var2;
- }
-
- public String getDataString(int var1, int var2, boolean var3) throws SQLException {
- this.lastColumnNull = false;
-
- String var4;
- try {
- var4 = this.OdbcApi.SQLGetDataString(this.hStmt, var1, var2, var3);
- } catch (JdbcOdbcSQLWarning var7) {
- var4 = (String)var7.value;
- this.setWarning(JdbcOdbc.convertWarning(var7));
- }
-
- if (var4 == null) {
- this.lastColumnNull = true;
- } else if (var1 == this.sqlTypeColumn) {
- try {
- int var5 = OdbcDef.odbcTypeToJdbc(Integer.valueOf(var4));
- var4 = String.valueOf(var5);
- } catch (Exception var6) {
- }
- }
-
- return var4;
- }
-
- public String getDataStringDate(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- String var2;
- try {
- var2 = this.OdbcApi.SQLGetDataStringDate(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (String)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public String getDataStringTime(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- String var2;
- try {
- var2 = this.OdbcApi.SQLGetDataStringTime(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (String)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public String getDataStringTimestamp(int var1) throws SQLException {
- this.lastColumnNull = false;
-
- String var2;
- try {
- var2 = this.OdbcApi.SQLGetDataStringTimestamp(this.hStmt, var1);
- } catch (JdbcOdbcSQLWarning var4) {
- var2 = (String)var4.value;
- this.setWarning(JdbcOdbc.convertWarning(var4));
- }
-
- if (var2 == null) {
- this.lastColumnNull = true;
- }
-
- return var2;
- }
-
- public int getColumnLength(int var1) throws SQLException {
- int var2 = -1;
- if (var1 > 0 && var1 <= this.numberOfCols) {
- var2 = this.boundCols[var1 - 1].getLength();
- }
-
- if (var2 == -1) {
- var2 = this.getColAttribute(var1, 3);
- if (var1 > 0 && var1 <= this.numberOfCols) {
- this.boundCols[var1 - 1].setLength(var2);
- }
- }
-
- return var2;
- }
-
- public int getScale(int var1) throws SQLException {
- int var2;
- if (this.getPseudoCol(var1) != null) {
- this.lastColumnNull = true;
- var2 = 0;
- } else {
- var2 = this.getColAttribute(var1, 5);
- }
-
- return var2;
- }
-
- public int getColumnType(int var1) throws SQLException {
- int var2 = 9999;
- if (var1 > 0 && var1 <= this.numberOfCols) {
- var2 = this.boundCols[var1 - 1].getType();
- }
-
- if (var2 == 9999) {
- var2 = this.getColAttribute(var1, 2);
- var2 = OdbcDef.odbcTypeToJdbc(var2);
- if (var1 > 0 && var1 <= this.numberOfCols) {
- this.boundCols[var1 - 1].setType(var2);
- }
- }
-
- return var2;
- }
-
- public void setPseudoCols(int var1, int var2, JdbcOdbcPseudoCol[] var3) {
- if (JdbcOdbcObject.isTracing()) {
- JdbcOdbcObject.trace("Setting pseudo columns, first=" + var1 + ", last=" + var2);
- }
-
- this.firstPseudoCol = var1;
- this.lastPseudoCol = var2;
- this.pseudoCols = var3;
- }
-
- public JdbcOdbcPseudoCol getPseudoCol(int var1) {
- JdbcOdbcPseudoCol var2 = null;
- if (var1 > 0 && var1 >= this.firstPseudoCol && var1 <= this.lastPseudoCol) {
- var2 = this.pseudoCols[var1 - this.firstPseudoCol];
- }
-
- return var2;
- }
-
- public void setSQLTypeColumn(int var1) {
- this.sqlTypeColumn = var1;
- }
-
- protected void setInputStream(int var1, JdbcOdbcInputStream var2) {
- if (var1 > 0 && var1 <= this.numberOfCols) {
- this.boundCols[var1 - 1].setInputStream(var2);
- }
-
- }
-
- protected void closeInputStreams() {
- for(int var1 = 0; var1 < this.numberOfCols; ++var1) {
- this.boundCols[var1].closeInputStream();
- }
-
- }
-
- public void setColumnMappings(int[] var1) {
- this.colMappings = var1;
- }
-
- public int mapColumn(int var1) {
- int var2 = var1;
- if (this.colMappings != null) {
- if (var1 > 0 && var1 <= this.colMappings.length) {
- var2 = this.colMappings[var1 - 1];
- } else {
- var2 = -1;
- }
- }
-
- return var2;
- }
- }
-