File : oci-thick-parameter_pkg.ads


with 
  OCI.Thick.Statement_pkg,
  OCI.Thick.Connection_Pkg;
package OCI.Thick.Parameter_pkg is
use Statement_pkg;

   type Typecode is (TYPE_UNDEFINED,
      TYPE_REF,
      TYPE_DATE,
      TYPE_SIGNED8,
      TYPE_SIGNED16,
      TYPE_SIGNED32,
      TYPE_REAL,
      TYPE_DOUBLE,
      TYPE_FLOAT,
      TYPE_NUMBER,
      TYPE_DECIMAL,
      TYPE_UNSIGNED8,
      TYPE_UNSIGNED16,
      TYPE_UNSIGNED32,
      TYPE_OCTET,
      TYPE_SMALLINT,
      TYPE_INTEGER,
      TYPE_RAW,
      TYPE_PTR,
      TYPE_VARCHAR2,
      TYPE_CHAR,
      TYPE_VARCHAR,
      TYPE_MLSLABEL,
      TYPE_VARRAY,
      TYPE_TABLE,
      TYPE_OBJECT,
      TYPE_OPAQUE,
      TYPE_NAMEDCOLLECTION,
      TYPE_BLOB,
      TYPE_BFILE,
      TYPE_CLOB,
      TYPE_CFILE);

-- Parameter

   type Parameter is new Handle_Reference with private;
   
   type Parameters is array(Positive range<>) of Parameter;

   function Column(Stmt : Statement; Position : Positive) return Parameter;
   function Get_Parameters(Stmt : Statement) return Parameters;

   function Name(Param : Parameter) return String;
   function Type_Code(Param : Parameter) return Typecode;
   function Type_Name(Param : Parameter) return String;
   function Data_Size(Param : Parameter) return Natural;
   function PRECISION(Param : Parameter) return Integer;
   function SCALE(Param : Parameter) return Integer;
   function IS_NULL(Param : Parameter) return Boolean;
   function SCHEMA_NAME(Param : Parameter) return String;

private
   use Connection_Pkg;
   
   type Parameter is new Handle_Reference with record
     Last_Stmt : Statement;
     Connect : Connection;
   end record;
   procedure Destroy(Object : in out Parameter);

end OCI.Thick.PArameter_pkg