home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / jdbc / odbc / JdbcOdbcResultSetMetaData.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  6.1 KB  |  344 lines

  1. package sun.jdbc.odbc;
  2.  
  3. import java.sql.ResultSetMetaData;
  4. import java.sql.SQLException;
  5.  
  6. public class JdbcOdbcResultSetMetaData extends JdbcOdbcObject implements ResultSetMetaData {
  7.    protected JdbcOdbc OdbcApi;
  8.    protected JdbcOdbcResultSetInterface resultSet;
  9.    protected int hStmt;
  10.  
  11.    public JdbcOdbcResultSetMetaData(JdbcOdbc var1, JdbcOdbcResultSetInterface var2) {
  12.       this.OdbcApi = var1;
  13.       this.resultSet = var2;
  14.       this.hStmt = var2.getHSTMT();
  15.    }
  16.  
  17.    public int getColumnCount() throws SQLException {
  18.       return this.resultSet.getColumnCount();
  19.    }
  20.  
  21.    public boolean isAutoIncrement(int var1) throws SQLException {
  22.       if (JdbcOdbcObject.isTracing()) {
  23.          JdbcOdbcObject.trace("*ResultSetMetaData.isAutoIncrement (" + var1 + ")");
  24.       }
  25.  
  26.       var1 = this.resultSet.mapColumn(var1);
  27.       boolean var2;
  28.       if (this.resultSet.getPseudoCol(var1) != null) {
  29.          var2 = false;
  30.       } else {
  31.          var2 = this.getColAttributeBoolean(var1, 11);
  32.       }
  33.  
  34.       return var2;
  35.    }
  36.  
  37.    public boolean isCaseSensitive(int var1) throws SQLException {
  38.       if (JdbcOdbcObject.isTracing()) {
  39.          JdbcOdbcObject.trace("*ResultSetMetaData.isCaseSensitive (" + var1 + ")");
  40.       }
  41.  
  42.       var1 = this.resultSet.mapColumn(var1);
  43.       boolean var2;
  44.       if (this.resultSet.getPseudoCol(var1) != null) {
  45.          var2 = false;
  46.       } else {
  47.          var2 = this.getColAttributeBoolean(var1, 12);
  48.       }
  49.  
  50.       return var2;
  51.    }
  52.  
  53.    public boolean isSearchable(int var1) throws SQLException {
  54.       if (JdbcOdbcObject.isTracing()) {
  55.          JdbcOdbcObject.trace("*ResultSetMetaData.isSearchable (" + var1 + ")");
  56.       }
  57.  
  58.       var1 = this.resultSet.mapColumn(var1);
  59.       boolean var2;
  60.       if (this.resultSet.getPseudoCol(var1) != null) {
  61.          var2 = false;
  62.       } else {
  63.          int var3 = this.getColAttribute(var1, 13);
  64.          var2 = var3 != 0;
  65.       }
  66.  
  67.       return var2;
  68.    }
  69.  
  70.    public boolean isCurrency(int var1) throws SQLException {
  71.       if (JdbcOdbcObject.isTracing()) {
  72.          JdbcOdbcObject.trace("*ResultSetMetaData.isCurrency (" + var1 + ")");
  73.       }
  74.  
  75.       var1 = this.resultSet.mapColumn(var1);
  76.       boolean var2;
  77.       if (this.resultSet.getPseudoCol(var1) != null) {
  78.          var2 = false;
  79.       } else {
  80.          var2 = this.getColAttributeBoolean(var1, 9);
  81.       }
  82.  
  83.       return var2;
  84.    }
  85.  
  86.    public int isNullable(int var1) throws SQLException {
  87.       if (JdbcOdbcObject.isTracing()) {
  88.          JdbcOdbcObject.trace("*ResultSetMetaData.isNullable (" + var1 + ")");
  89.       }
  90.  
  91.       var1 = this.resultSet.mapColumn(var1);
  92.       int var2;
  93.       if (this.resultSet.getPseudoCol(var1) != null) {
  94.          var2 = 0;
  95.       } else {
  96.          var2 = this.getColAttribute(var1, 7);
  97.       }
  98.  
  99.       return var2;
  100.    }
  101.  
  102.    public boolean isSigned(int var1) throws SQLException {
  103.       if (JdbcOdbcObject.isTracing()) {
  104.          JdbcOdbcObject.trace("*ResultSetMetaData.isSigned (" + var1 + ")");
  105.       }
  106.  
  107.       var1 = this.resultSet.mapColumn(var1);
  108.       boolean var2;
  109.       if (this.resultSet.getPseudoCol(var1) != null) {
  110.          var2 = false;
  111.       } else {
  112.          var2 = !this.getColAttributeBoolean(var1, 8);
  113.       }
  114.  
  115.       return var2;
  116.    }
  117.  
  118.    public int getColumnDisplaySize(int var1) throws SQLException {
  119.       if (JdbcOdbcObject.isTracing()) {
  120.          JdbcOdbcObject.trace("*ResultSetMetaData.getColumnDisplaySize (" + var1 + ")");
  121.       }
  122.  
  123.       var1 = this.resultSet.mapColumn(var1);
  124.       JdbcOdbcPseudoCol var2 = this.resultSet.getPseudoCol(var1);
  125.       int var3;
  126.       if (var2 != null) {
  127.          var3 = var2.getColumnDisplaySize();
  128.       } else {
  129.          var3 = this.getColAttribute(var1, 6);
  130.       }
  131.  
  132.       return var3;
  133.    }
  134.  
  135.    public String getColumnLabel(int var1) throws SQLException {
  136.       if (JdbcOdbcObject.isTracing()) {
  137.          JdbcOdbcObject.trace("*ResultSetMetaData.getColumnLabel (" + var1 + ")");
  138.       }
  139.  
  140.       var1 = this.resultSet.mapColumn(var1);
  141.       JdbcOdbcPseudoCol var2 = this.resultSet.getPseudoCol(var1);
  142.       String var3;
  143.       if (var2 != null) {
  144.          var3 = var2.getColumnLabel();
  145.       } else {
  146.          var3 = this.getColAttributeString(var1, 18);
  147.       }
  148.  
  149.       return var3;
  150.    }
  151.  
  152.    public String getColumnName(int var1) throws SQLException {
  153.       if (JdbcOdbcObject.isTracing()) {
  154.          JdbcOdbcObject.trace("*ResultSetMetaData.getColumnName (" + var1 + ")");
  155.       }
  156.  
  157.       var1 = this.resultSet.mapColumn(var1);
  158.       JdbcOdbcPseudoCol var2 = this.resultSet.getPseudoCol(var1);
  159.       String var3;
  160.       if (var2 != null) {
  161.          var3 = var2.getColumnLabel();
  162.       } else {
  163.          var3 = this.getColAttributeString(var1, 1);
  164.       }
  165.  
  166.       return var3;
  167.    }
  168.  
  169.    public String getSchemaName(int var1) throws SQLException {
  170.       if (JdbcOdbcObject.isTracing()) {
  171.          JdbcOdbcObject.trace("*ResultSetMetaData.getSchemaName (" + var1 + ")");
  172.       }
  173.  
  174.       var1 = this.resultSet.mapColumn(var1);
  175.       if (this.resultSet.getPseudoCol(var1) != null) {
  176.          var1 = 1;
  177.       }
  178.  
  179.       return this.getColAttributeString(var1, 16);
  180.    }
  181.  
  182.    public int getPrecision(int var1) throws SQLException {
  183.       if (JdbcOdbcObject.isTracing()) {
  184.          JdbcOdbcObject.trace("*ResultSetMetaData.getPrecision (" + var1 + ")");
  185.       }
  186.  
  187.       var1 = this.resultSet.mapColumn(var1);
  188.       JdbcOdbcPseudoCol var2 = this.resultSet.getPseudoCol(var1);
  189.       int var3;
  190.       if (var2 != null) {
  191.          var3 = var2.getColumnDisplaySize() - 1;
  192.       } else {
  193.          var3 = this.getColAttribute(var1, 4);
  194.       }
  195.  
  196.       return var3;
  197.    }
  198.  
  199.    public int getScale(int var1) throws SQLException {
  200.       if (JdbcOdbcObject.isTracing()) {
  201.          JdbcOdbcObject.trace("*ResultSetMetaData.getScale (" + var1 + ")");
  202.       }
  203.  
  204.       return this.resultSet.getScale(var1);
  205.    }
  206.  
  207.    public String getTableName(int var1) throws SQLException {
  208.       if (JdbcOdbcObject.isTracing()) {
  209.          JdbcOdbcObject.trace("*ResultSetMetaData.getTableName (" + var1 + ")");
  210.       }
  211.  
  212.       var1 = this.resultSet.mapColumn(var1);
  213.       if (this.resultSet.getPseudoCol(var1) != null) {
  214.          var1 = 1;
  215.       }
  216.  
  217.       return this.getColAttributeString(var1, 15);
  218.    }
  219.  
  220.    public String getCatalogName(int var1) throws SQLException {
  221.       if (JdbcOdbcObject.isTracing()) {
  222.          JdbcOdbcObject.trace("*ResultSetMetaData.getCatalogName (" + var1 + ")");
  223.       }
  224.  
  225.       var1 = this.resultSet.mapColumn(var1);
  226.       if (this.resultSet.getPseudoCol(var1) != null) {
  227.          var1 = 1;
  228.       }
  229.  
  230.       return this.getColAttributeString(var1, 17);
  231.    }
  232.  
  233.    public int getColumnType(int var1) throws SQLException {
  234.       if (JdbcOdbcObject.isTracing()) {
  235.          JdbcOdbcObject.trace("*ResultSetMetaData.getColumnType (" + var1 + ")");
  236.       }
  237.  
  238.       JdbcOdbcPseudoCol var2 = this.resultSet.getPseudoCol(var1);
  239.       int var3;
  240.       if (var2 != null) {
  241.          var3 = var2.getColumnType() - 1;
  242.       } else {
  243.          var3 = this.resultSet.getColumnType(var1);
  244.       }
  245.  
  246.       return var3;
  247.    }
  248.  
  249.    public String getColumnTypeName(int var1) throws SQLException {
  250.       if (JdbcOdbcObject.isTracing()) {
  251.          JdbcOdbcObject.trace("*ResultSetMetaData.getColumnTypeName (" + var1 + ")");
  252.       }
  253.  
  254.       var1 = this.resultSet.mapColumn(var1);
  255.       String var2;
  256.       if (this.resultSet.getPseudoCol(var1) != null) {
  257.          var2 = "";
  258.       } else {
  259.          var2 = this.getColAttributeString(var1, 14);
  260.       }
  261.  
  262.       return var2;
  263.    }
  264.  
  265.    public boolean isReadOnly(int var1) throws SQLException {
  266.       if (JdbcOdbcObject.isTracing()) {
  267.          JdbcOdbcObject.trace("*ResultSetMetaData.isReadOnly (" + var1 + ")");
  268.       }
  269.  
  270.       var1 = this.resultSet.mapColumn(var1);
  271.       boolean var2;
  272.       if (this.resultSet.getPseudoCol(var1) != null) {
  273.          var2 = true;
  274.       } else {
  275.          int var3 = this.getColAttribute(var1, 10);
  276.          var2 = var3 == 0;
  277.       }
  278.  
  279.       return var2;
  280.    }
  281.  
  282.    public boolean isWritable(int var1) throws SQLException {
  283.       if (JdbcOdbcObject.isTracing()) {
  284.          JdbcOdbcObject.trace("*ResultSetMetaData.isWritable (" + var1 + ")");
  285.       }
  286.  
  287.       var1 = this.resultSet.mapColumn(var1);
  288.       boolean var2;
  289.       if (this.resultSet.getPseudoCol(var1) != null) {
  290.          var2 = false;
  291.       } else {
  292.          int var3 = this.getColAttribute(var1, 10);
  293.          var2 = var3 == 2;
  294.       }
  295.  
  296.       return var2;
  297.    }
  298.  
  299.    public boolean isDefinitelyWritable(int var1) throws SQLException {
  300.       if (JdbcOdbcObject.isTracing()) {
  301.          JdbcOdbcObject.trace("*ResultSetMetaData.isDefinitelyWritable (" + var1 + ")");
  302.       }
  303.  
  304.       var1 = this.resultSet.mapColumn(var1);
  305.       boolean var2;
  306.       if (this.resultSet.getPseudoCol(var1) != null) {
  307.          var2 = false;
  308.       } else {
  309.          int var3 = this.getColAttribute(var1, 10);
  310.          var2 = var3 == 1;
  311.       }
  312.  
  313.       return var2;
  314.    }
  315.  
  316.    protected int getColAttribute(int var1, int var2) throws SQLException {
  317.       return this.resultSet.getColAttribute(var1, var2);
  318.    }
  319.  
  320.    protected boolean getColAttributeBoolean(int var1, int var2) throws SQLException {
  321.       int var3 = this.getColAttribute(var1, var2);
  322.       boolean var4 = false;
  323.       if (var3 == 1) {
  324.          var4 = true;
  325.       }
  326.  
  327.       return var4;
  328.    }
  329.  
  330.    protected String getColAttributeString(int var1, int var2) throws SQLException {
  331.       String var3 = "";
  332.       this.resultSet.clearWarnings();
  333.  
  334.       try {
  335.          var3 = this.OdbcApi.SQLColAttributesString(this.hStmt, var1, var2);
  336.       } catch (JdbcOdbcSQLWarning var5) {
  337.          var3 = (String)var5.value;
  338.          this.resultSet.setWarning(JdbcOdbc.convertWarning(var5));
  339.       }
  340.  
  341.       return var3.trim();
  342.    }
  343. }
  344.