CallableStatement.java
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:12k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. package postgresql.jdbc2;
  2. // IMPORTANT NOTE: This file implements the JDBC 2 version of the driver.
  3. // If you make any modifications to this file, you must make sure that the
  4. // changes are also made (if relevent) to the related JDBC 1 class in the
  5. // postgresql.jdbc1 package.
  6. import java.sql.*;
  7. import java.math.*;
  8. /**
  9.  * CallableStatement is used to execute SQL stored procedures.
  10.  *
  11.  * <p>JDBC provides a stored procedure SQL escape that allows stored
  12.  * procedures to be called in a standard way for all RDBMS's. This escape
  13.  * syntax has one form that includes a result parameter and one that does
  14.  * not. If used, the result parameter must be registered as an OUT
  15.  * parameter. The other parameters may be used for input, output or both.
  16.  * Parameters are refered to sequentially, by number. The first parameter
  17.  * is 1.
  18.  *
  19.  * {?= call <procedure-name>[<arg1>,<arg2>, ...]}                 
  20.  * {call <procedure-name>[<arg1>,<arg2>, ...]}       
  21.  *
  22.  *
  23.  * <p>IN parameter values are set using the set methods inherited from
  24.  * PreparedStatement. The type of all OUT parameters must be registered
  25.  * prior to executing the stored procedure; their values are retrieved
  26.  * after execution via the get methods provided here.
  27.  *
  28.  * <p>A Callable statement may return a ResultSet or multiple ResultSets.
  29.  * Multiple ResultSets are handled using operations inherited from
  30.  * Statement.
  31.  *
  32.  * <p>For maximum portability, a call's ResultSets and update counts should 
  33.  * be processed prior to getting the values of output parameters.        
  34.  *
  35.  * @see Connection#prepareCall
  36.  * @see ResultSet
  37.  */
  38. public class CallableStatement extends postgresql.jdbc2.PreparedStatement implements java.sql.CallableStatement
  39. {
  40.   /**
  41.    * @exception SQLException on failure
  42.    */
  43.   public CallableStatement(Connection c,String q) throws SQLException
  44.   {
  45.     super(c,q);
  46.   }
  47.   
  48.   /**
  49.    * Before executing a stored procedure call you must explicitly
  50.    * call registerOutParameter to register the java.sql.Type of each
  51.    * out parameter.
  52.    *
  53.    * <p>Note: When reading the value of an out parameter, you must use
  54.    * the getXXX method whose Java type XXX corresponds to the
  55.    * parameter's registered SQL type.
  56.    *
  57.    * @param parameterIndex the first parameter is 1, the second is 2,...
  58.    * @param sqlType SQL type code defined by java.sql.Types; for
  59.    * parameters of type Numeric or Decimal use the version of
  60.    * registerOutParameter that accepts a scale value
  61.    * @exception SQLException if a database-access error occurs.
  62.    */
  63.   public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException {
  64.   }
  65.   
  66.   /**
  67.    * You must also specify the scale for numeric/decimal types:
  68.    *
  69.    * <p>Note: When reading the value of an out parameter, you must use
  70.    * the getXXX method whose Java type XXX corresponds to the
  71.    * parameter's registered SQL type.
  72.    *
  73.    * @param parameterIndex the first parameter is 1, the second is 2,...
  74.    * @param sqlType use either java.sql.Type.NUMERIC or java.sql.Type.DECIMAL
  75.    * @param scale a value greater than or equal to zero representing the
  76.    * desired number of digits to the right of the decimal point
  77.    * @exception SQLException if a database-access error occurs.
  78.    */
  79.   public void registerOutParameter(int parameterIndex, int sqlType,
  80.    int scale) throws SQLException
  81.   {
  82.   }
  83.   
  84.   // Old api?
  85.   //public boolean isNull(int parameterIndex) throws SQLException {
  86.   //return true;
  87.   //}
  88.   
  89.   /**
  90.    * An OUT parameter may have the value of SQL NULL; wasNull
  91.    * reports whether the last value read has this special value.
  92.    *
  93.    * <p>Note: You must first call getXXX on a parameter to read its
  94.    * value and then call wasNull() to see if the value was SQL NULL.
  95.    * @return true if the last parameter read was SQL NULL
  96.    * @exception SQLException if a database-access error occurs.
  97.    */
  98.   public boolean wasNull() throws SQLException {
  99.     // check to see if the last access threw an exception
  100.     return false; // fake it for now
  101.   }
  102.   
  103.   // Old api?
  104.   //public String getChar(int parameterIndex) throws SQLException {
  105.   //return null;
  106.   //}
  107.   
  108.   /**
  109.    * Get the value of a CHAR, VARCHAR, or LONGVARCHAR parameter as a
  110.    * Java String.
  111.    *
  112.    * @param parameterIndex the first parameter is 1, the second is 2,...
  113.    * @return the parameter value; if the value is SQL NULL, the result is null
  114.    * @exception SQLException if a database-access error occurs.
  115.    */
  116.   public String getString(int parameterIndex) throws SQLException {
  117.     return null;
  118.   }
  119.   //public String getVarChar(int parameterIndex) throws SQLException {
  120.   //   return null;
  121.   //}
  122.   
  123.   //public String getLongVarChar(int parameterIndex) throws SQLException {
  124.   //return null;
  125.   //}
  126.   
  127.   /**
  128.    * Get the value of a BIT parameter as a Java boolean.
  129.    *
  130.    * @param parameterIndex the first parameter is 1, the second is 2,...
  131.    * @return the parameter value; if the value is SQL NULL, the result is false
  132.    * @exception SQLException if a database-access error occurs.
  133.    */
  134.   public boolean getBoolean(int parameterIndex) throws SQLException {
  135.     return false;
  136.   }
  137.   
  138.   /**
  139.    * Get the value of a TINYINT parameter as a Java byte.
  140.    *
  141.    * @param parameterIndex the first parameter is 1, the second is 2,...
  142.    * @return the parameter value; if the value is SQL NULL, the result is 0
  143.    * @exception SQLException if a database-access error occurs.
  144.    */
  145.   public byte getByte(int parameterIndex) throws SQLException {
  146.     return 0;
  147.   }
  148.   
  149.   /**
  150.    * Get the value of a SMALLINT parameter as a Java short.
  151.    *
  152.    * @param parameterIndex the first parameter is 1, the second is 2,...
  153.    * @return the parameter value; if the value is SQL NULL, the result is 0
  154.    * @exception SQLException if a database-access error occurs.
  155.    */
  156.   public short getShort(int parameterIndex) throws SQLException {
  157.     return 0;
  158.   }
  159.   
  160.   /**
  161.    * Get the value of an INTEGER parameter as a Java int.
  162.    *
  163.    * @param parameterIndex the first parameter is 1, the second is 2,...
  164.    * @return the parameter value; if the value is SQL NULL, the result is 0
  165.    * @exception SQLException if a database-access error occurs.
  166.    */
  167. public int getInt(int parameterIndex) throws SQLException {
  168.     return 0;
  169.   }
  170.   
  171.   /**
  172.    * Get the value of a BIGINT parameter as a Java long.
  173.    *
  174.    * @param parameterIndex the first parameter is 1, the second is 2,...
  175.    * @return the parameter value; if the value is SQL NULL, the result is 0
  176.    * @exception SQLException if a database-access error occurs.
  177.    */
  178.   public long getLong(int parameterIndex) throws SQLException {
  179.     return 0;
  180.   }
  181.   
  182.   /**
  183.    * Get the value of a FLOAT parameter as a Java float.
  184.    *
  185.    * @param parameterIndex the first parameter is 1, the second is 2,...
  186.    * @return the parameter value; if the value is SQL NULL, the result is 0
  187.    * @exception SQLException if a database-access error occurs.
  188.    */
  189.   public float getFloat(int parameterIndex) throws SQLException {
  190.     return (float) 0.0;
  191.   }
  192.   
  193.   /**
  194.    * Get the value of a DOUBLE parameter as a Java double.
  195.    *
  196.    * @param parameterIndex the first parameter is 1, the second is 2,...
  197.    * @return the parameter value; if the value is SQL NULL, the result is 0
  198.    * @exception SQLException if a database-access error occurs.
  199.    */
  200.   public double getDouble(int parameterIndex) throws SQLException {
  201.     return 0.0;
  202.   }
  203.   
  204.   /**
  205.    * Get the value of a NUMERIC parameter as a java.math.BigDecimal
  206.    * object.
  207.    *
  208.    * @param parameterIndex the first parameter is 1, the second is 2,...
  209.    * @param scale a value greater than or equal to zero representing the
  210.    * desired number of digits to the right of the decimal point
  211.    * @return the parameter value; if the value is SQL NULL, the result is null
  212.    * @exception SQLException if a database-access error occurs.
  213.    */
  214.   public BigDecimal getBigDecimal(int parameterIndex, int scale)
  215.        throws SQLException {
  216.  return null;
  217.   }
  218.   
  219.   /**
  220.    * Get the value of a SQL BINARY or VARBINARY parameter as a Java
  221.    * byte[]
  222.    *
  223.    * @param parameterIndex the first parameter is 1, the second is 2,...
  224.    * @return the parameter value; if the value is SQL NULL, the result is null
  225.    * @exception SQLException if a database-access error occurs.
  226.    */
  227.   public byte[] getBytes(int parameterIndex) throws SQLException {
  228.     return null;
  229.   }
  230.   
  231.   // New API (JPM) (getLongVarBinary)
  232.   //public byte[] getBinaryStream(int parameterIndex) throws SQLException {
  233.   //return null;
  234.   //}
  235.   
  236.   /**
  237.    * Get the value of a SQL DATE parameter as a java.sql.Date object
  238.    *
  239.    * @param parameterIndex the first parameter is 1, the second is 2,...
  240.    * @return the parameter value; if the value is SQL NULL, the result is null
  241.    * @exception SQLException if a database-access error occurs.
  242.    */
  243.   public java.sql.Date getDate(int parameterIndex) throws SQLException {
  244.     return null;
  245.   }
  246.   
  247.   /**
  248.    * Get the value of a SQL TIME parameter as a java.sql.Time object.
  249.    *
  250.    * @param parameterIndex the first parameter is 1, the second is 2,...
  251.    * @return the parameter value; if the value is SQL NULL, the result is null
  252.    * @exception SQLException if a database-access error occurs.
  253.    */
  254.   public java.sql.Time getTime(int parameterIndex) throws SQLException {
  255.     return null;
  256.   }
  257.   
  258.   /**
  259.    * Get the value of a SQL TIMESTAMP parameter as a java.sql.Timestamp object.
  260.    *
  261.    * @param parameterIndex the first parameter is 1, the second is 2,...
  262.    * @return the parameter value; if the value is SQL NULL, the result is null
  263.    * @exception SQLException if a database-access error occurs.
  264.    */
  265.   public java.sql.Timestamp getTimestamp(int parameterIndex)
  266.        throws SQLException {
  267.  return null;
  268.   }
  269.   
  270.   //----------------------------------------------------------------------
  271.   // Advanced features:
  272.   
  273.   // You can obtain a ParameterMetaData object to get information 
  274.   // about the parameters to this CallableStatement.
  275.   //public DatabaseMetaData getMetaData() {
  276.   //return null;
  277.   //}
  278.   
  279.   // getObject returns a Java object for the parameter.
  280.   // See the JDBC spec's "Dynamic Programming" chapter for details.
  281.   /**
  282.    * Get the value of a parameter as a Java object.
  283.    *
  284.    * <p>This method returns a Java object whose type coresponds to the
  285.    * SQL type that was registered for this parameter using
  286.    * registerOutParameter.
  287.    *
  288.    * <P>Note that this method may be used to read datatabase-specific,
  289.    * abstract data types. This is done by specifying a targetSqlType
  290.    * of java.sql.types.OTHER, which allows the driver to return a
  291.    * database-specific Java type.
  292.    *
  293.    * <p>See the JDBC spec's "Dynamic Programming" chapter for details.
  294.    *
  295.    * @param parameterIndex the first parameter is 1, the second is 2,...
  296.    * @return A java.lang.Object holding the OUT parameter value.
  297.    * @exception SQLException if a database-access error occurs.
  298.    */
  299.   public Object getObject(int parameterIndex)
  300.        throws SQLException {
  301.  return null;
  302.   }
  303.     
  304.     // ** JDBC 2 Extensions **
  305.     
  306.     public Array getArray(int i) throws SQLException
  307.     {
  308. throw postgresql.Driver.notImplemented();
  309.     }
  310.     
  311.     public java.math.BigDecimal getBigDecimal(int i) throws SQLException
  312.     {
  313. throw postgresql.Driver.notImplemented();
  314.     }
  315.     
  316.     public Blob getBlob(int i) throws SQLException
  317.     {
  318. throw postgresql.Driver.notImplemented();
  319.     }
  320.     
  321.     public Clob getClob(int i) throws SQLException
  322.     {
  323. throw postgresql.Driver.notImplemented();
  324.     }
  325.     
  326.     public Object getObject(int i,java.util.Map map) throws SQLException
  327.     {
  328. throw postgresql.Driver.notImplemented();
  329.     }
  330.     
  331.     public Ref getRef(int i) throws SQLException
  332.     {
  333. throw postgresql.Driver.notImplemented();
  334.     }
  335.     
  336.     public java.sql.Date getDate(int i,java.util.Calendar cal) throws SQLException
  337.     {
  338. throw postgresql.Driver.notImplemented();
  339.     }
  340.     
  341.     public Time getTime(int i,java.util.Calendar cal) throws SQLException
  342.     {
  343. throw postgresql.Driver.notImplemented();
  344.     }
  345.     
  346.     public Timestamp getTimestamp(int i,java.util.Calendar cal) throws SQLException
  347.     {
  348. throw postgresql.Driver.notImplemented();
  349.     }
  350.     
  351.     public void registerOutParameter(int parameterIndex, int sqlType,String typeName) throws SQLException
  352.     {
  353. throw postgresql.Driver.notImplemented();
  354.     }
  355.   
  356. }