Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			2595 lines
		
	
	
		
			116 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			2595 lines
		
	
	
		
			116 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* @(#)ort.h    1.44 95/07/07 */
 | |
| 
 | |
| /* Copyright (c) 1994, 2005, Oracle. All rights reserved.  */
 | |
| 
 | |
| /* 
 | |
|   NAME
 | |
| 
 | |
|     ORT - ORacle's external open Type interface to the open type manager (OTM)
 | |
| 
 | |
|   DESCRIPTION
 | |
| 
 | |
|     The open type manager interface includes dynamic type operations to
 | |
|     create, delete, update, and access types.  See the "Functional
 | |
|     Specification for Oracle Object Call Interface (Objects Project),
 | |
|     Version 1.0" for a user level description of the OTM.  For a more
 | |
|     detailed description, see the "Component Document for the Open Type
 | |
|     Manager, Version 1.0".
 | |
| 
 | |
|     NOTE: MOST Of the functions in this header file are being desupported.
 | |
|           Please use the OCIDescribeAny interface as described in oci.h
 | |
|           instead.
 | |
|           The OCIType, OCITypeElem, OCITypeMethod abstract types continue
 | |
|           to be supported. The only two functions that remain to be documented
 | |
|           are OCITypeArrayByName and OCITypeArrayByRef.
 | |
|           All obsolete types/functions are marked accordingly below.
 | |
| 
 | |
|   RELATED DOCUMENTS
 | |
| 
 | |
|     For the functional specification for the OTM, see: 
 | |
|         [1] Kotsovolos, Susan, "Functional Specification for Oracle Object
 | |
|             Call Interface (Objects Project), Version 1.0", Oracle
 | |
|             Corporation, February 1995.
 | |
|     For the internal design of the OTM, see the following:
 | |
|         [2] Kotsovolos, Susan, "Component Document for the Open Type Manager",
 | |
|             Oracle Corporation, November 1994. 
 | |
|         [3] Kotsovolos, Susan, "Design for The Open Type Manager, Oracle 
 | |
|             Object Management Subsystem Version 1.0", Oracle Corporation, 
 | |
|             March 1994.
 | |
|         [4] Kotsovolos, Susan and Tin A. Nguyen, "The Open Type Manager",
 | |
|             Oracle Corporation, March 1994.
 | |
|         [5] Kotsovolos, Susan and Tin A. Nguyen, "Schema Evolution",
 | |
|             Oracle Corporation, March 1994.
 | |
|     For a description of the types the OTM must support, see:
 | |
|         [6] Nguyen, Tin A., "The Open Type System", Oracle Corporation, 
 | |
|             February 1994. 
 | |
| 
 | |
|   INSPECTION STATUS 
 | |
| 
 | |
|     Inspection date:    
 | |
|     Inspection status: 
 | |
|     Estimated increasing cost defects per page:
 | |
|     Rule sets:        
 | |
| 
 | |
|   ACCEPTANCE REVIEW STATUS 
 | |
| 
 | |
|     Review date:    
 | |
|     Review status:
 | |
|     Reviewers:  
 | |
| 
 | |
| 
 | |
|   **** ALL OBSOLETE FUNCTIONS/TYPES ARE MARKED ACCORDINGLY ***
 | |
| 
 | |
|   EXPORT FUNCTIONS
 | |
| 
 | |
|     None
 | |
| 
 | |
|   PUBLIC DATA STRUCTURES
 | |
| 
 | |
|       OCIType - type descriptor in the object cache
 | |
|       OCITypeElem - type element descriptor in the object cache
 | |
|             (used for attributes and paramters)
 | |
|       OCITypeCode  - Open Type System type code.
 | |
|       OCITypeMethod - method descriptor in the object cache
 | |
|       OCITypeParamMode - parameter modes (ie. IN, IN-OUT etc)
 | |
| 
 | |
|   PUBLIC FUNCTIONS
 | |
| 
 | |
|     ITERATOR (for OCITypeAttrNext and OCITypeMethodNext)
 | |
| 
 | |
|       OCITypeIterNew  - ** OBSOLETE ** Create new instance of an iteraton.
 | |
|       OCITypeIterSet  - ** OBSOLETE ** Initialize iterator.
 | |
|       OCITypeIterFree - ** OBSOLETE ** Free instance of iterator.
 | |
| 
 | |
|     TYPE GET
 | |
| 
 | |
|       OCITypeByName      - ** OBSOLETE ** Get a type by name.
 | |
|       OCITypeArrayByName - Get an array of types by their names.
 | |
|       OCITypeByRef       - ** OBSOLETE ** Get a type by its CREF.
 | |
|       OCITypeArrayByRef  - Get an array of types by their CREFs.
 | |
| 
 | |
|     TYPE ACCESSORS
 | |
| 
 | |
|       OCITypeName     - ** OBSOLETE ** OCI Get a type's name.
 | |
|       OCITypeSchema   - ** OBSOLETE ** OCI Get a type's schema name.
 | |
|       OCITypeTypeCode - ** OBSOLETE ** OCI Get a type's type code.
 | |
|       OCITypeVersion  - ** OBSOLETE ** OCI Get a Type's user-readable Version.
 | |
|       OCITypeAttrs    - ** OBSOLETE ** OCI Get a Type's Number of Attributes.
 | |
|       OCITypeMethods  - ** OBSOLETE ** OCI Get a Type's Number of Methods.
 | |
| 
 | |
|     TYPE ELEMENT ACCESSORS (they represent attributes/parameters/results)
 | |
| 
 | |
|       OCITypeElemName      - ** OBSOLETE ** Get a type element's (only for
 | |
|                                 attributes) name.
 | |
|       OCITypeElemType      - ** OBSOLETE ** Get a type element's type
 | |
|                                 descriptor.
 | |
|       OCITypeElemTypeCode  - ** OBSOLETE ** Get a type element's typecode.
 | |
|       OCITypeElemParameterizedType - ** OBSOLETE ** Get a type element's
 | |
|                                         parameterized type's type descriptor.
 | |
|       OCITypeElemNumPrec   - ** OBSOLETE ** Get a number's precision.
 | |
|       OCITypeElemNumScale  - ** OBSOLETE ** Get a decimal or oracle Number's
 | |
|                                             Scale
 | |
|       OCITypeElemCharSetID - ** OBSOLETE ** Get a fixed or variable length
 | |
|                                             string's character set ID.
 | |
|       OCITypeElemCharSetForm - ** OBSOLETE ** Get a fixed or variable length
 | |
|                                               string's character set form (how
 | |
|                                               character set information has
 | |
|                                               been specified).
 | |
|       OCITypeElemLength    - ** OBSOLETE ** Get a raw, fixed or variable
 | |
|                                             length string's length.
 | |
|       OCITypeElemParamMode - ** OBSOLETE ** Get element's parameter's mode
 | |
|                                             (only valid for parameter).
 | |
|       OCITypeElemDefaultValue - ** OBSOLETE ** Get element's Default Value.
 | |
| 
 | |
|     ATTRIBUTE ACCESSORS
 | |
| 
 | |
|       OCITypeAttrByName - ** OBSOLETE ** Get an Attribute by Name.
 | |
|       OCITypeAttrNext   - ** OBSOLETE ** Get an Attribute by Iteration.
 | |
| 
 | |
|     COLLECTION ACCESSORS
 | |
| 
 | |
|       OCITypeCollTypeCode - ** OBSOLETE ** Get a named collection's typecode.
 | |
|       OCITypeCollElem     - ** OBSOLETE ** Get a named collection's element's
 | |
|                                type element information.
 | |
|       OCITypeCollSize     - ** OBSOLETE ** Get a named collection's size in
 | |
|                                number of elements.
 | |
| 
 | |
|     METHOD ACCESSORS
 | |
| 
 | |
|       OCITypeMethodOverload - ** OBSOLETE ** Get number of overloaded methods
 | |
|                                              with the given method name.
 | |
|                                              (no direct equivalent for
 | |
|                                               OCIDescribe interface)
 | |
|       OCITypeMethodByName   - ** OBSOLETE ** Get one or more methods by name.
 | |
|       OCITypeMethodNext     - ** OBSOLETE ** Iterate to the next method to
 | |
|                                              retrieve.
 | |
|       OCITypeMethodName     - ** OBSOLETE ** Get method's name.
 | |
|       OCITypeMethodEncap    - ** OBSOLETE ** Get method's encapsulation level. 
 | |
|       OCITypeMethodFlags    - ** OBSOLETE ** et method's flags.
 | |
|       OCITypeMethodMap      - ** OBSOLETE ** Get type's map function.
 | |
|       OCITypeMethodOrder    - ** OBSOLETE ** Get type's order function.
 | |
|       OCITypeMethodParams   - ** OBSOLETE ** Get a method's number of
 | |
|                                              parameters.
 | |
| 
 | |
|     RESULT ACCESSORS
 | |
| 
 | |
|       OCITypeResult - ** OBSOLETE ** OCI Get a method's Result.
 | |
| 
 | |
|       See also ATTRIBUTE/PARAMETER/RESULT TYPE ACCESSORS.
 | |
| 
 | |
|     PARAMETER ACCESSORS
 | |
| 
 | |
|       OCITypeParamByPos  - ** OBSOLETE ** Get a Parameter in a method By
 | |
|                                           Position.
 | |
|       OCITypeParamByName - ** OBSOLETE ** Get a Parameter in a method By Name.
 | |
|       OCITypeParamPos    - ** OBSOLETE ** Get a Parameter's PoSition in a
 | |
|                                           method.
 | |
| 
 | |
|   CALL GRAPHS:
 | |
| 
 | |
|   Only type accessors are supported for 8.0.
 | |
|   ** OBSOLETE ** please use OCIDescribe interface
 | |
| 
 | |
|   TYPE ACCESSOR EXAMPLE
 | |
| 
 | |
|       CREATE TYPE CAR
 | |
|       (
 | |
|         name   vstring,
 | |
|         age    number,
 | |
|           number   car_age;                           /o Oracle number o/
 | |
|           weight   car_weight;                        /o abstract type o/
 | |
| 
 | |
|         PUBLIC: 
 | |
| 
 | |
|           /o methods o/
 | |
|           car(orlvs a_name, number an_age, WEIGHT a_weight);
 | |
|           ~car();
 | |
|           inline number get_age() const;
 | |
|           
 | |
|           /o relative ordering (map) functions o/
 | |
|           number car_map
 | |
|       );
 | |
| 
 | |
|       /o the following code accesses the type created above o/
 | |
| 
 | |
|       ub1      meth_flags;
 | |
|       ub4      i, j; 
 | |
|       ub4      text_len, position;
 | |
|       ub4      count;
 | |
|       ub4      length;
 | |
|       OCITypeCode    typecode;
 | |
|       OCIRef  *attr_ref;
 | |
|       OCIRef  *param_ref;
 | |
|       OCIType  *tdo, new_tdo, final_tdo;
 | |
|       OCITypeElem  *elem;
 | |
|       OCITypeIter  *iterator_ort;
 | |
|       oratext   (*names)[];
 | |
|       ub4      lengths[];
 | |
|       ub4     *positions;
 | |
|       oratext    *name;
 | |
|       oratext     name_buffer[M_IDEN];
 | |
| 
 | |
|       /o initialize the references o/
 | |
|       DISCARD orlrini(env, err, (dvoid *)&attr_ref);
 | |
|       DISCARD orlrini(env, err, (dvoid *)¶m_ref);
 | |
| 
 | |
|       /o ----------------- GET INFORMATION ABOUT A TYPE ----------------- o/
 | |
| 
 | |
|       /o start a transaction o/
 | |
|       
 | |
|       /o Pin the type until the end of the transaction.  Pinning the type is 
 | |
|        o required before using any type accessors. 
 | |
|        o/
 | |
|       if (OCITypeByName(env, err, svc, (oratext *)0, 0, "CAR", strlen("CAR"), 
 | |
|                   OCI_DURATION_TRANS, &car_ref, &car_tdo) != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o get the type's name o/
 | |
|       if (!memcmp(OCITypeName(env, err, car_tdo, &text_len), "person",
 | |
|                               text_len))
 | |
|         /o do something o/ ;
 | |
| 
 | |
|       /o get the type's schema name o/
 | |
|       if (!memcmp(OCITypeSchema(env, err, car_tdo, &text_len), "john",
 | |
|                   text_len))
 | |
|         /o do something o/ ;
 | |
| 
 | |
|       /o get the type code of the type o/
 | |
|       if (OCITypeTypeCode(env, err, car_tdo) == OCI_TYPECODE_ADT)
 | |
|         /o do something o/ ; 
 | |
| 
 | |
|       /o get the type version o/
 | |
|       if (!memcmp(OCITypeVersion(env, err, car_tdo, &text_len), "1", text_len))
 | |
|          /o do something o/  ;
 | |
| 
 | |
|       /o ------- GET FLATTENED POSITION OF AN ATTRIBUTES IN A TYPE ------- o/
 | |
| 
 | |
|       names = malloc(sizeof(oratext *) * 2);
 | |
|       names[0] = malloc(strlen("car_weight"));
 | |
|       names[1] = malloc(strlen("ounces"));
 | |
|       memcpy(names[0], "car_weight", strlen("car_weight"));
 | |
|       memcpy(names[1], "ounces", strlen("ounces"));
 | |
| 
 | |
|       lengths = malloc(sizeof(ub4) * 2);
 | |
|       lengths[0] = strlen("car_weight");
 | |
|       lengths[1] = strlen("ounces");
 | |
| 
 | |
|       /o ---------- GET IMMEDIATE ATTRIBUTES IN A TYPE ---------- o/
 | |
| 
 | |
|       /o loop through all attributes in the type with iterator o/
 | |
|       if (OCITypeIterNew(env, err, car_tdo, &iterator_ort) != OCI_SUCCESS)
 | |
|         /o do something o/
 | |
| 
 | |
|       while (OCITypeAttrNext(env, err, iterator_ort, &ado) != OCI_NO_DATA)
 | |
|       {
 | |
|         /o get the attribute's name o/
 | |
|         if (!memcmp(OCITypeElemName(env, err, ado, &text_len),
 | |
|                                     "tiger", text_len))
 | |
|           /o do something o/  ;
 | |
| 
 | |
|         /o get the attribute's type descriptor o/
 | |
|         if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
 | |
|           /o error o/ ;
 | |
| 
 | |
|         /o get the attribute's type code o/
 | |
|         typecode = OCITypeElemTypeCode(env, err, ado);
 | |
| 
 | |
|         switch (typecode)
 | |
|         {
 | |
|         /o scalar types o/
 | |
|         case OCI_TYPECODE_DATE:                                     /o date o/
 | |
|         case OCI_TYPECODE_SIGNED8:                                  /o byte o/
 | |
|         case OCI_TYPECODE_SIGNED16:                                /o short o/
 | |
|         case OCI_TYPECODE_UNSIGNED8:                       /o unsigned byte o/
 | |
|         case OCI_TYPECODE_UNSIGNED16:                     /o unsigned short o/
 | |
|         case OCI_TYPECODE_OCTET:                                   /o octet o/
 | |
|         case OCI_TYPECODE_TABLE:                            /o nested table o/
 | |
|         case OCI_TYPECODE_CLOB:                            /o character lob o/
 | |
|         case OCI_TYPECODE_BLOB:                               /o binary lob o/
 | |
|         case OCI_TYPECODE_CFILE:                   /o character file object o/
 | |
|         case OCI_TYPECODE_BFILE:                      /o binary file object o/
 | |
| 
 | |
|           /o do something o/
 | |
|           break;
 | |
| 
 | |
|         /o number types o/
 | |
|         case OCI_TYPECODE_NUMBER:                          /o oracle number o/
 | |
|         case OCI_TYPECODE_DECIMAL:                               /o decimal o/
 | |
|           {
 | |
|             /o get the scale of the number o/
 | |
|             if (OCITypeElemNumScale(env, err, ado) == 3)
 | |
|               /o do something o/ ;
 | |
|           }
 | |
|           /o fall through to get the precision o/
 | |
| 
 | |
|         case OCI_TYPECODE_FLOAT:                                   /o float o/
 | |
|         case OCI_TYPECODE_SIGNED32:                                 /o long o/
 | |
|         case OCI_TYPECODE_UNSIGNED32:                      /o unsigned long o/
 | |
|         case OCI_TYPECODE_REAL:                                     /o real o/
 | |
|         case OCI_TYPECODE_DOUBLE:                                 /o double o/
 | |
|           {
 | |
|             /o get the precision of the number o/
 | |
|             if (OCITypeElemNumPrec(env, err, ado) == 2)
 | |
|               /o do something o/ ;
 | |
|           }
 | |
|           break;
 | |
| 
 | |
|         /o string types o/
 | |
|         case OCI_TYPECODE_CHAR:                      /o fixed length string o/
 | |
|         case OCI_TYPECODE_VARCHAR2:               /o variable length string o/
 | |
|         case OCI_TYPECODE_RAW:                                       /o raw o/
 | |
|           {
 | |
|             /o get the length of the fixed or variable length string o/
 | |
|             if (OCITypeElemLength(env, err, ado) < 100)
 | |
|               /o do something o/
 | |
|           }
 | |
|           break;
 | |
| 
 | |
|         /o parameterized types o/
 | |
|         case OCI_TYPECODE_REF:                          /o reference o/
 | |
|         case OCI_TYPECODE_PTR:                            /o pointer o/
 | |
|           {
 | |
|             /o get the type stored in the parameterized type o/
 | |
|             if (OCITypeElemParameterizedType(env, err, ado, &tdo)
 | |
|                  != OCI_SUCCESS)
 | |
|               /o error o/ ;
 | |
| 
 | |
|             /o do something o/
 | |
|             if (OCI_TYPEELEM_IS_REF(OCITypeElemFlags(env, err, ado)))...
 | |
|           }
 | |
|           break;
 | |
| 
 | |
|         /o domain type o/
 | |
|         case OCI_TYPECODE_NAMEDCOLLECTION:
 | |
|           switch (OCITypeCollTypeCode(env, err, tdo))
 | |
|           {
 | |
|           case OCI_TYPECODE_VARRAY:                   /o variable array o/
 | |
|             ub4   num_elems;
 | |
|             OCIType *element_type;
 | |
| 
 | |
|             /o get the number of elements in the farray or the maximum number
 | |
|              o of elements in the varray.
 | |
|              o/
 | |
|             OCITypeCollSize(env, err, tdo, &num_elems);
 | |
| 
 | |
|             /o get the type of the array o/
 | |
|             OCITypeElemType(env, err, tdo, &element_type);
 | |
|           }
 | |
|           break;
 | |
| 
 | |
|           case OCI_TYPECODE_TABLE:                         /o multiset o/
 | |
|           {
 | |
|             OCIType *table_type;
 | |
| 
 | |
|             /o get the type of the multiset o/
 | |
|             OCITypeElemType(env, err, tdo, &table_type);
 | |
| 
 | |
|             /o do something o/
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         /o abstract type o/
 | |
|         case OCI_TYPECODE_ADT:                 /o abstract data type o/
 | |
|           {
 | |
|             /o get the adt information o/
 | |
|             if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
 | |
|               /o error o/ ;
 | |
| 
 | |
|             /o do something o/
 | |
|           }
 | |
|           break;
 | |
| 
 | |
|         default:
 | |
|           DISCARD printf("Error:  invalid type code\n");
 | |
| 
 | |
|         } /o end of typecode switch o/
 | |
| 
 | |
|       } /o end of loop through all attributes in a type o/
 | |
| 
 | |
| 
 | |
|       /o ------------ GET THE IMMEDIATE METHODS OF A TYPE ------------ o/
 | |
| 
 | |
|       /o loop through all methods in the type by reusing iterator o/
 | |
|       if (OCITypeIterSet(env, err, car_tdo, iterator_ort) != OCI_SUCCESS)
 | |
|         /o do something o/
 | |
| 
 | |
|       while (OCITypeMethodNext(env, err, iterator_ort) != OCI_NO_DATA)
 | |
|       {
 | |
|         /o get the method's name o/
 | |
|         if (!memcmp(OCITypeMethodName(env, err, mdo, &text_len), "car",
 | |
|                     text_len))
 | |
|           /o do something o/  ;
 | |
| 
 | |
|         /o get the method's encapsulation o/
 | |
|         if (OCITypeMethodEncap(env, err, mdo) == OCI_TYPEENCAP_PUBLIC)
 | |
|           /o do something o/  ;
 | |
| 
 | |
|         /o get the method's flags o/
 | |
|         meth_flags = OCITypeMethodFlags(env, err, mdo);
 | |
|         if (meth_flags & OCI_TYPEMETHOD_VIRTUAL)  
 | |
|           /o do something o/  ;
 | |
| 
 | |
| 
 | |
|         /o ------------ GET THE PARAMETERS IN A METHOD ------------ o/
 | |
| 
 | |
|         /o loop through all parameters in the method o/
 | |
|         count = OCITypeMethodParams(env, err, mdo);
 | |
|         for (j = 1; j <= count; j++)
 | |
|         {
 | |
|           /o get the parameter information by position o/
 | |
|           if (OCITypeParamByPos(env, err, mdo, i, &elem) != OCI_SUCCESS)
 | |
|             /o error o/ ;
 | |
| 
 | |
|           /o get the parameter's name o/
 | |
|           if (!memcmp(OCITypeElemName(env, err, elem, &text_len), "an_age",
 | |
|                       text_len))
 | |
|             /o do something o/ ;
 | |
| 
 | |
|           /o get the parameter's mode o/
 | |
|           if (OCITypeElemMode(env, err, elem) == OCI_PARAM_OUT)
 | |
|             /o do something o/ ;
 | |
|    
 | |
|           /o get the parameter's required flag o/
 | |
|           if (ortgprq(env, err, elem))
 | |
|             /o do something o/ ;
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       /o get a method by name o/
 | |
|       if (OCITypeMethodByName(env, err, car_tdo, "car_constructor", 
 | |
|                               strlen("car_constructor"), NULLP(OCIRef), &mdo) 
 | |
|                               != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o get a parameter in a method by name o/
 | |
|       if (OCITypeParamByName(env, err, mdo, "an_age", strlen("an_age"), &elem) 
 | |
|                   != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o get a parameter's typecode o/
 | |
|       typecode = OCITypeElemTypeCode(env, err, elem);
 | |
|    
 | |
|       /o get a parameter's type object o/
 | |
|       if (OCITypeElemType(env, err, elem, &tdo)) != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o get a parameter's position in a method o/
 | |
|       if (ortgpps(env, err, mdo, "an_age", strlen("an_age"), 
 | |
|                   &position, NULLP(OCIRef), NULLP(OCITypeElem)) != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o ------------ GET THE METHOD's RESULT ------------ o/
 | |
|      
 | |
|       /o get a method by name o/
 | |
|       if (OCITypeMethodByName(env, err, car_tdo, "get_age", strlen("get_age"),
 | |
|                   &mdo) != OCI_SUCCESS)
 | |
|         /o error o/ ;
 | |
| 
 | |
|       /o get the typecode of the method's result o/
 | |
|       typecode = OCITypeElemTypeCode(env, err, mdo);
 | |
| 
 | |
| 
 | |
|       /o ----------------- END ---------------- o/
 | |
| 
 | |
|       /o free the references implicitly allocated o/
 | |
|       DISCARD orlrfre(env, err, (dvoid *)&attr_ref);
 | |
|       DISCARD orlrfre(env, err, (dvoid *)¶m_ref);
 | |
| 
 | |
|   NOTES
 | |
| 
 | |
|   MODIFIED
 | |
|     dmukhin    06/29/05  - ANSI prototypes; miscellaneous cleanup 
 | |
|     srseshad   03/12/03  - convert oci public api to ansi
 | |
|     aahluwal   06/03/02  - bug 2360115
 | |
|     skabraha   04/16/02  - fix compiler warnings
 | |
|     rkasamse   03/02/01  - do not use iterator : keyword in MSVB
 | |
|     bpalaval   02/09/01  - Change text to oratext.
 | |
|     rxgovind   01/31/00  - add OCIType interfaces for transient types
 | |
|     whe        09/01/99 -  976457:check __cplusplus for C++ code
 | |
|     cxcheng    05/06/97 -  make OCI_TYPE?? test macros return either 1 or 0
 | |
|     cxcheng    04/22/97 -  add comment on desupporting OCIType functions
 | |
|     skrishna   03/18/97 -  fix ifdef for supporting ansi and k&r proto-types
 | |
|     cxcheng    02/26/97 -  fix lint problem with oro names
 | |
|     cxcheng    02/06/97 -  take out short name support except with SLSHORTNAME
 | |
|     cxcheng    01/15/97 -  change prototype of OCITypeElemParameterizedType()
 | |
|     cxcheng    01/03/97 -  replace bit in OCI_TYPEPARAM_IS_REQUIRED with bitwis
 | |
|     cxcheng    12/31/96 -  replace OCI_PARAM_IS_REQUIRED with OCI_TYPEPARAM_IS_
 | |
|     cxcheng    12/09/96 -  add prototype for OCITypeElemExtTypeCode and OCIType
 | |
|     cxcheng    11/25/96 -  add schema name parameter to OCITypeVTInsert()
 | |
|     cxcheng    11/20/96 -  fix prototype for OCITypeByName()
 | |
|     cxcheng    11/11/96 -  fix prototype for OCITypeByName()
 | |
|     cxcheng    11/05/96 -  remove OCITypeElemExtTypeCode and OCITypeCollExtType
 | |
|     dchatter   10/28/96 -  change ortgatyp to be OCITypeArrayByName
 | |
|     cxcheng    10/25/96 -  fix problem with ortgatyp at end
 | |
|     cxcheng    10/22/96 -  add OCITypeByRef and OCITypeArrayByRef
 | |
|     cxcheng    10/20/96 -  remove ortgtyp() from #define section at end
 | |
|     cxcheng    10/18/96 -  rename OCITypeGetArray to OCITypeArrayByName
 | |
|     cxcheng    10/17/96 -  final change to prototype for OCI_TYPEPARAM_IS_REQUI
 | |
|     cxcheng    10/15/96 -  rename OCIEncapLevel and OCIMethodFlag
 | |
|     cxcheng    10/14/96 -  change prototype of OCITypeResult
 | |
|     mluong     10/11/96 -  fix compile error
 | |
|     jwijaya    10/10/96 -  fix bug on OCI_PARAM_IS_REQUIRED
 | |
|     cxcheng    10/09/96 -  more lint and link fixes
 | |
|     cxcheng    10/08/96 -  more lint fixes
 | |
|     cxcheng    10/07/96 -  more changes
 | |
|     cxcheng    10/04/96 -  replace short names with long names
 | |
|     cxcheng    10/01/96 -  change to long names for readability
 | |
|     cxcheng    09/27/96 -  rename ortgatyp() to ortgtya() for lint
 | |
|     cxcheng    09/20/96 -  add ortgatyp() for array get type
 | |
|     cxcheng    09/18/96 -  add array pin and iterator functions
 | |
|     cxcheng    08/09/96 -  add version table calls
 | |
|     cxcheng    07/22/96 -  add OCITypeElemType() to top
 | |
|     jwijaya    07/03/96 -  add ANSI prototypes
 | |
|     cxcheng    06/28/96 -  add OCITypeElemCharSetForm()
 | |
|     cxcheng    06/26/96 -  fix comment on OCITypeParamByPos()/ortgpps()
 | |
|     cxcheng    06/18/96 -  fix comments on OCITypeResult()
 | |
|     cxcheng    06/17/96 -  improve comments
 | |
|     skrishna   06/03/96 -  change OCITypeCollElem() prototype
 | |
|     vkrishna   05/29/96 -  replace OROTCFAR with OROTCCAR
 | |
|     cxcheng    05/28/96 -  fix comments, remove non-beta1 functions
 | |
|     cxcheng    05/02/96 -  fix prototype bugs
 | |
|     cxcheng    04/29/96 -  rename OCITypeElemm() to ortanct()
 | |
|     cxcheng    04/26/96 -  add ortgrbp and ortftyi,
 | |
|                            fix comments and examples
 | |
|     cxcheng    04/22/96 -  big merge to main branch
 | |
|     cxcheng    04/17/96 -  fix syntax
 | |
|     cxcheng    04/08/96 -  change prototype to ortaty()
 | |
|     skrishna   04/08/96 -  change ort*() to take OCIEnv* and OCIError* instead
 | |
|                            of oroenv*
 | |
|     cxcheng    03/28/96 -  add ortslob(), change ortsstr() prototype
 | |
|     cxcheng    03/13/96 -  change alter type interface
 | |
|     cxcheng    03/11/96 -  ORT interface changes
 | |
|     cxcheng    02/27/96 -  correct comments
 | |
|     jboonleu   02/09/96 -  rename oroopd to OCIDuration
 | |
|     cxcheng    01/19/96 -  change ORTCTYVAL to ORTCTYEMB for embedded ADT
 | |
|     cxcheng    02/14/96 -  add more comments
 | |
|     jboonleu   02/09/96 -  rename oroopd to OCIDuration
 | |
|     cxcheng    02/07/96 -  fix comments and examples
 | |
|     cxcheng    01/19/96 -  new ORT interface without korfc's
 | |
|     cxcheng    01/08/96 -  consolidate collection functions
 | |
|     cxcheng    12/14/95 -  remove obsolete ortgcol() and ortrelease()
 | |
|     jweisz     12/12/95 -  merge screwup: ortdth twice
 | |
|     cxcheng    12/05/95 -  change multiset interface for new standard
 | |
|     skotsovo   12/01/95 -  merge from /vobs/rdbms/public/ort.h@@/main/
 | |
|                            st_rdbms_big_dev/st_rdbms_obj/
 | |
|                            st_rdbms_jwijaya_variable_ref
 | |
|     cxcheng    11/13/95 -  add ortaty()/orteaty()
 | |
|     cxcheng    11/13/95 -  add new collection type accessors
 | |
|     skotsovo   10/30/95 -  add 'oid' type b/c extent type uses it.
 | |
|     skotsovo   10/24/95 -  update according to new variable length ref
 | |
|     cxcheng    10/05/95 -  add null support, change prototypes to calls
 | |
|     cxcheng    10/03/95 -  add OCITypeMethodOrder() to get ORDER method
 | |
|     cxcheng    09/28/95 -  add OCITypeElemm() for collection types support
 | |
|     skotsovo   06/05/95 -  add adt_type parameter to ortsab() 
 | |
|     skotsovo   05/10/95 -  ifdef'd out ortgafp() 
 | |
|     skotsovo   03/07/95 -  update interface to only include release 1
 | |
|     skotsovo   02/22/95 -  add multiset accessors 
 | |
|     skotsovo   02/09/95 -  update according to new ots doc 
 | |
|     skotsovo   01/31/95 -  add rest of release 1 types 
 | |
|     skotsovo   01/24/95 -  categorize sint32, double, and real as number types 
 | |
|                            (with precision and scale) instead of scalar types.
 | |
|     skotsovo   01/12/95 -  remove dependency from ortdty interface 
 | |
|     skotsovo   01/03/95 -  remove orotyp accessors 
 | |
|     skotsovo   12/12/94 -  update comments 
 | |
|     skotsovo   12/05/94 -  change OCITypeElemParameterizedTyper interface 
 | |
|     skotsovo   10/26/94 -  add type version table 
 | |
|     skotsovo   10/17/94 -  fix ortgafp() comments 
 | |
|     skotsovo   10/14/94 -  modify ortgafp() parameters 
 | |
|     skotsovo   10/14/94 -  add examples 
 | |
|     skotsovo   10/13/94 -  add a few new routines 
 | |
|     jwijaya    10/07/94 -  add namespace to pin by name 
 | |
|     jwijaya    10/02/94 -  connection handle -> connection number 
 | |
|     skotsovo   09/13/94 -  modify example to use updated oririni interface 
 | |
|     skotsovo   08/25/94 -  change scale to sb1 from sb2 
 | |
|     skotsovo   07/28/94 -  add ortbeg() and ortend() 
 | |
|     skotsovo   07/14/94 -  add decimal type & call graph
 | |
|     skotsovo   06/28/94 -  subset by removing miscellaneous functions 
 | |
|     skotsovo   06/28/94 -  consistently put comments before typedefs 
 | |
|     skotsovo   06/27/94 -  modify according to new header file template, add
 | |
|                            more examples, and change ortcty() to return a
 | |
|                            reference to the type
 | |
|     skotsovo   06/24/94 -  add functions to get type information from orotyp 
 | |
|     skotsovo   06/20/94 -  finish modifying according to header template 
 | |
|     skotsovo   06/09/94 -  modify according to header file template 
 | |
|     skotsovo   06/08/94 -  replace s.h with oratypes.h 
 | |
|     skotsovo   05/24/94 -  modify comments & update example
 | |
|     skotsovo   05/23/94 -  modify fnt names for create, alter and drop type 
 | |
|     skotsovo   05/18/94 -  remove ortdme() -- delete a method 
 | |
|     skotsovo   05/17/94 -  add tdo parameter to all type modifiers 
 | |
|     skotsovo   05/11/94 -  return text* instead of including it in arglist 
 | |
|     skotsovo   11/16/93 -  creation
 | |
| 
 | |
| */
 | |
| 
 | |
| #ifndef ORATYPES
 | |
| #include <oratypes.h>
 | |
| #endif
 | |
| #ifndef ORO_ORACLE
 | |
| #include <oro.h>
 | |
| #endif
 | |
| #ifndef OCI_ORACLE
 | |
| #include <oci.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef ORT_ORACLE
 | |
| #define ORT_ORACLE
 | |
| 
 | |
| /*---------------------------------------------------------------------------*/
 | |
| /*                         SHORT NAMES SUPPORT SECTION                       */
 | |
| /*---------------------------------------------------------------------------*/
 | |
| 
 | |
| #ifdef SLSHORTNAME
 | |
| 
 | |
| /* the following are short names that are only supported on IBM mainframes
 | |
|    with the SLSHORTNAME defined.
 | |
|    With this all subsequent long names will actually be substituted with
 | |
|    the short names here */
 | |
| 
 | |
| #define OCITypeArrayByName              ortgatyp
 | |
| #define OCITypeAttrByName               ortgabn
 | |
| #define OCITypeAttrNext                 ortgabi
 | |
| #define OCITypeAttrs                    ortgtna
 | |
| #define OCITypeByRef                    ortgtbrf
 | |
| #define OCITypeCollElem                 ortgcel
 | |
| #define OCITypeCollExtTypeCode          ortgcsqt
 | |
| #define OCITypeCollSize                 ortgcne
 | |
| #define OCITypeCollTypeCode             ortgdttc
 | |
| #define OCITypeElem                     ortado
 | |
| #define OCITypeElemCharSetForm          ortgscform
 | |
| #define OCITypeElemCharSetID            ortgscid
 | |
| #define OCITypeElemDefaultValue         ortgpdv
 | |
| #define OCITypeElemExtTypeCode          ortgasqt
 | |
| #define OCITypeElemLength               ortgsl
 | |
| #define OCITypeElemName                 ortganm
 | |
| #define OCITypeElemNumPrec              ortgnp
 | |
| #define OCITypeElemNumScale             ortgns
 | |
| #define OCITypeElemParamMode            ortgpmo
 | |
| #define OCITypeElemParameterizedType    ortgpa
 | |
| #define OCITypeElemType                 ortgaty
 | |
| #define OCITypeElemTypeCode             ortgatc
 | |
| #define OCITypeIter                     ortitr
 | |
| #define OCITypeIterFree                 ortifre
 | |
| #define OCITypeIterNew                  ortinew
 | |
| #define OCITypeIterSet                  ortiset
 | |
| #define OCITypeMethod                   ortmdo
 | |
| #define OCITypeMethodByName             ortgmbn
 | |
| #define OCITypeMethodEncap              ortgmen
 | |
| #define OCITypeMethodFlags              ortgmfl
 | |
| #define OCITypeMethodMap                ortgmmap
 | |
| #define OCITypeMethodName               ortgmnm
 | |
| #define OCITypeMethodNext               ortgmbi
 | |
| #define OCITypeMethodOrder              ortgmor
 | |
| #define OCITypeMethodOverload           ortgmno
 | |
| #define OCITypeMethodParams             ortgmnp
 | |
| #define OCITypeMethods                  ortgtnm
 | |
| #define OCITypeName                     ortgtme
 | |
| #define OCITypeParamByName              ortgpbn
 | |
| #define OCITypeParamPos                 ortgpps
 | |
| #define OCITypeSchema                   ortgtsch
 | |
| #define OCITypeTypeCode                 ortgttc
 | |
| #define OCITypeVTInit                   ortvini
 | |
| #define OCITypeVTInsert                 ortvins
 | |
| #define OCITypeVTSelect                 ortvsel
 | |
| #define OCITypeVersion                  ortgtvn
 | |
| 
 | |
| #endif                                                        /* SLSHORTNAME */
 | |
| 
 | |
| 
 | |
| /*============================*/        
 | |
| /* PUBLIC TYPES AND CONSTANTS */
 | |
| /*============================*/
 | |
| 
 | |
| /*----------------------------- TYPE DESCRIPTION ----------------------------*/
 | |
| 
 | |
| /*
 | |
|  * OCIType - OCI Type Description Object 
 | |
|  *
 | |
|  * The contents of an 'OCIType' is private/opaque to clients.  Clients just 
 | |
|  * need to declare and pass 'OCIType' pointers in to the type manage
 | |
|  * functions.
 | |
|  * The pointer points to the type in the object cache.  Thus, clients don't
 | |
|  * need to allocate space for this type and must NEVER free the pointer to the
 | |
|  * 'OCIType'.
 | |
|  */
 | |
| 
 | |
| typedef struct OCIType OCIType;
 | |
| 
 | |
| /*------------------------- TYPE ELEMENT DESCRIPTION ------------------------*/
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * OCITypeElem - OCI Type Element object
 | |
|  *
 | |
|  * The contents of an 'OCITypeElem' is private/opaque to clients. Clients just 
 | |
|  * need to declare and pass 'OCITypeElem' pointers in to the type manager 
 | |
|  * functions.
 | |
|  *
 | |
|  * 'OCITypeElem' objects contains type element information such as the numeric
 | |
|  * precision for example, for number objects, and the number of elements for
 | |
|  * arrays.
 | |
|  * They ARE used to describe type attributes, collection elements,
 | |
|  * method parameters, and method results. Hence they are pass in or returned
 | |
|  * by attribute, collection, and method parameter/result accessors.
 | |
|  */
 | |
| 
 | |
| typedef struct OCITypeElem OCITypeElem;
 | |
| 
 | |
| 
 | |
| /*--------------------------- METHOD DESCRIPTION ---------------------------*/
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * OCITypeMethod - OCI Method Description object 
 | |
|  *
 | |
|  * The contents of an 'OCITypeMethod' is private/opaque to clients.  Clients
 | |
|  * just need to declare and pass 'OCITypeMethod' pointers in to the type
 | |
|  * manager functions.
 | |
|  * The pointer points to the method in the object cache.  Thus, clients don't
 | |
|  * need to allocate space for this type and must NEVER free the pointer to 
 | |
|  * the 'OCITypeMethod'.
 | |
|  */
 | |
| 
 | |
| typedef struct OCITypeMethod OCITypeMethod;
 | |
| 
 | |
| 
 | |
| /*--------------------------- TYPE ACCESS ITERATOR --------------------------*/
 | |
| 
 | |
| /*
 | |
|  * OCITypeIter- OCI Type Iterator
 | |
|  *
 | |
|  * The contents of an 'orti' is private/opaque to clients.  Clients just 
 | |
|  * need to declare and pass 'orti' pointers in to the type manager functions.
 | |
|  * The iterator is used to retreive MDO's and ADO's that belong to the TDO
 | |
|  * one at a time. It needs to be allocated by the 'OCITypeIterNew()' function
 | |
|  * call and deallocated with the 'OCITypeIterFree()' function call.
 | |
|  */
 | |
| 
 | |
| typedef struct OCITypeIter OCITypeIter;
 | |
| 
 | |
| 
 | |
| /*==================*/
 | |
| /* PUBLIC FUNCTIONS */
 | |
| /*==================*/
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                                  ITERATOR                                */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*-----------------------_- OCITypeIterNew ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeIterNew(    OCIEnv *env, OCIError *err, OCIType *tdo, 
 | |
|                          OCITypeIter **iterator_ort    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeIterNew - OCI Iterator NEW
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        tdo (IN) - pointer to the pinned type in the object cache to
 | |
|                 initialize the iterator with
 | |
|        iterator_ort (OUT) - pointer to the pointer to the new iterator created
 | |
|   DESCRIPTION:
 | |
|        Create a new instance of a method/attribute iterator and initalize
 | |
|        it's values.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) error while allocating space for the iterator.
 | |
| */
 | |
| 
 | |
| /*------------------------ OCITypeIterSet ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeIterSet(    OCIEnv *env, OCIError *err, OCIType *tdo, 
 | |
|                   OCITypeIter *iterator_ort    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeIterSet - OCI Iterator SET
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        tdo (IN) - pointer to the pinned type in the object cache to
 | |
|                 initialize the iterator with
 | |
|        iterator_ort (IN/OUT) - pointer to the iterator to set
 | |
|   DESCRIPTION:
 | |
|        Initializes the iterator. This is used to reset the state of the
 | |
|        iterator.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
| */
 | |
| 
 | |
| /*------------------------ OCITypeIterFree ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeIterFree(    OCIEnv *env, OCIError *err, OCITypeIter
 | |
|                           *iterator_ort    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeIterFree - OCI Iterator FREe
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        iterator_ort (IN/OUT) - pointer to the iterator to free
 | |
|   DESCRIPTION:
 | |
|        Free space allocated for the iterator.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) error while freeing the iterator, probably bad iterator pointer.
 | |
| */
 | |
| 
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                                  TYPE GET                                */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeByName(    OCIEnv *env, OCIError *err, const OCISvcCtx *svc, 
 | |
|                         const oratext *schema_name, ub4 s_length,
 | |
|                         const oratext *type_name, ub4 t_length,
 | |
|                         const oratext *version_name, ub4 v_length,
 | |
|                         OCIDuration pin_duration, OCITypeGetOpt get_option,
 | |
|                         OCIType **tdo    );
 | |
| /*
 | |
|   NAME: OCITypeByName - OCI Get the most current version of an existing TYPe
 | |
|                   by name.
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        svc (IN) - OCI service handle
 | |
|        schema_name (IN, optional) - name of schema associated with the 
 | |
|                   type.  By default, the user's schema name is used.
 | |
|        s_length (IN) - length of the 'schema_name' parameter
 | |
|        type_name (IN) - name of the type to get
 | |
|        t_length (IN) - length of the 'type_name' parameter
 | |
|        version_name (IN, optional) - user readable version of the type.
 | |
|                   Pass (oratext *)0 for the most current version.
 | |
|        v_length (IN) - length of version_name in bytes. Should be 0 if
 | |
|                   the most current version is to be retrieved.
 | |
|        pin_duration (IN) - pin duration (e.g. until the end of current
 | |
|                   transaction).  See 'oro.h' for a description of
 | |
|                   each option.
 | |
|        get_option (IN) - options for loading the types. It can be one of two
 | |
|                    values:
 | |
|                   OCI_TYPEGET_HEADER for only the header to be loaded, or
 | |
|                   OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
 | |
|                     loaded.
 | |
|        tdo (OUT) - pointer to the pinned type in the object cache
 | |
|   DESCRIPTION:
 | |
|        Get a pointer to a version of the existing type associated
 | |
|        with schema/type name.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) the adt type associated with schema/type name does not exist.
 | |
|   NOTE:
 | |
|        Schema and type names are CASE-SENSITIVE. If they have been created
 | |
|        via SQL, you need to use uppercase names.
 | |
| */
 | |
| 
 | |
| sword OCITypeArrayByName(    OCIEnv *env, OCIError *err, const OCISvcCtx *svc,
 | |
|                              ub4 array_len,
 | |
|                              const oratext *schema_name[], ub4 s_length[],
 | |
|                              const oratext *type_name[], ub4 t_length[],
 | |
|                              const oratext *version_name[], ub4 v_length[],
 | |
|                              OCIDuration pin_duration,
 | |
|                              OCITypeGetOpt get_option, OCIType **tdo    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeArrayByName - OCI Get array of TYPes by name.
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        svc (IN) - OCI service handle
 | |
|        array_len (IN) - number of schema_name/type_name/version_name entries to
 | |
|                   be retrieved.
 | |
|        schema_name (IN, optional) - array of schema names associated with the
 | |
|                   types to be retrieved.  The array must have array_len
 | |
|                   elements if specified.
 | |
|                   If 0 is supplied, the default schema is assumed, otherwise
 | |
|                   it MUST have array_len number of elements.
 | |
|                   0 can be supplied for one or more of the entries to indicate
 | |
|                   that the default schema is desired for those entries.
 | |
|        s_length (IN) - array of schema_name lengths with each entry
 | |
|                   corresponding to the length of the corresponding schema_name
 | |
|                   entry in the schema_name array in bytes.
 | |
|                   The array must either have array_len number of elements or
 | |
|                   it MUST be 0 if schema_name is not specified.
 | |
|        type_name (IN) - array of the names of the types to retrieve. This
 | |
|                   MUST have array_len number of elements.
 | |
|        t_length (IN) - array of the lengths of type names in the type_name
 | |
|                   array in bytes.
 | |
|        version_name (IN) - array of the version names of the types to retrieve
 | |
|                   corresponding. This can be 0 to indicate retrieval of the
 | |
|                   most current versions, or it MUST have array_len number of
 | |
|                   elements.
 | |
|                   If 0 is supplied, the most current version is assumed,
 | |
|                   otherwise it MUST have array_len number of elements.
 | |
|                   0 can be supplied for one or more of the entries to indicate
 | |
|                   that the current version is desired for those entries.
 | |
|        v_length (IN) - array of the lengths of version names in the
 | |
|                   version_name array in bytes.
 | |
|        pin_duration (IN) - pin duration (e.g. until the end of current
 | |
|                   transaction) for the types retreieve.  See 'oro.h' for a
 | |
|                   description of each option.
 | |
|        get_option (IN) - options for loading the types. It can be one of two
 | |
|                    values:
 | |
|                   OCI_TYPEGET_HEADER for only the header to be loaded, or
 | |
|                   OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
 | |
|                     loaded.
 | |
|        tdo (OUT) - output array for the pointers to each pinned type in the
 | |
|                   object cache. It must have space for array_len pointers.
 | |
|                   Use OCIObjectGetObjectRef() to obtain the CREF to each
 | |
|                   pinned type descriptor.
 | |
|   DESCRIPTION:
 | |
|        Get pointers to the existing types associated with the schema/type name
 | |
|        array. This is similar to OCITypeByName() except that all the TDO's are
 | |
|        retreived via a single network roundtrip.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) one or more adt types associated with a schema/type name entry
 | |
|               does not exist.
 | |
| */
 | |
| 
 | |
| sword   OCITypeByRef(    OCIEnv *env, OCIError *err,
 | |
|                          const OCIRef *type_ref, OCIDuration pin_duration,
 | |
|                          OCITypeGetOpt get_option, OCIType **tdo    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        type_ref (IN) - OCIRef * pointing to the particular version of
 | |
|                   the type descriptor object to obtain.
 | |
|                   The array must have array_len elements if specified.
 | |
|        pin_duration (IN) - pin duration (e.g. until the end of current
 | |
|                   transaction) for the type to retreieve.  See 'oro.h' for a
 | |
|                   description of each option.
 | |
|        get_option (IN) - options for loading the type. It can be one of two
 | |
|                    values:
 | |
|                   OCI_TYPEGET_HEADER for only the header to be loaded, or
 | |
|                   OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
 | |
|                     loaded.
 | |
|        tdo (OUT) - pointer to the pinned type in the object cache
 | |
|   DESCRIPTION:
 | |
|        Get pointers to the 
 | |
|        with the schema/type name array. This is similar to OCITypeByName()
 | |
|        except that all the TDO's are retreived via a single network roundtrip.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) one or more adt types associated with a schema/type name entry
 | |
|               does not exist.
 | |
| */
 | |
| 
 | |
| sword   OCITypeArrayByRef(    OCIEnv *env, OCIError *err,
 | |
|                               ub4 array_len, const OCIRef **type_ref,
 | |
|                               OCIDuration pin_duration,
 | |
|                               OCITypeGetOpt get_option, OCIType **tdo    );
 | |
| 
 | |
| /*
 | |
|   NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
 | |
|   PARAMETERS:
 | |
|        env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|        err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|        array_len (IN) - number of schema_name/type_name/version_name entries to
 | |
|                   be retrieved.
 | |
|        type_ref (IN) - array of OCIRef * pointing to the particular version of
 | |
|                   the type descriptor object to obtain.
 | |
|                   The array must have array_len elements if specified.
 | |
|        pin_duration (IN) - pin duration (e.g. until the end of current
 | |
|                   transaction) for the types retreieve.  See 'oro.h' for a
 | |
|                   description of each option.
 | |
|        get_option (IN) - options for loading the types. It can be one of two
 | |
|                    values:
 | |
|                   OCI_TYPEGET_HEADER for only the header to be loaded, or
 | |
|                   OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
 | |
|                     loaded.
 | |
|        tdo (OUT) - output array for the pointers to each pinned type in the
 | |
|                   object cache. It must have space for array_len pointers.
 | |
|                   Use OCIObjectGetObjectRef() to obtain the CREF to each
 | |
|                   pinned type descriptor.
 | |
|   DESCRIPTION:
 | |
|        Get pointers to the 
 | |
|        with the schema/type name array. This is similar to OCITypeByName()
 | |
|        except that all the TDO's are retreived via a single network roundtrip.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|            1) any of the required parameters is null.
 | |
|            2) one or more adt types associated with a schema/type name entry
 | |
|               does not exist.
 | |
| */
 | |
| 
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                              TYPE ACCESSORS                              */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*---------------------------- OCITypeName ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext* OCITypeName(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                       ub4 *n_length    );
 | |
| /*
 | |
|    NAME: OCITypeName -  ORT Get a Type's naME.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         n_length (OUT) - length (in bytes) of the returned type name.  The
 | |
|                caller must allocate space for the ub4 before calling this
 | |
|                routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling
 | |
|            any accessor.
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|         3) 'n_length' must point to an allocated ub4.
 | |
|    DESCRIPTION:
 | |
|         Get the name of the type.
 | |
|    RETURNS:
 | |
|         the name of the type
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeSchema ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext* OCITypeSchema(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                    ub4 *n_length    );
 | |
| /*
 | |
|    NAME: OCITypeSchema -  ORT Get a Type's SCHema name.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         n_length (OUT) - length (in bytes) of the returned schema name.  The
 | |
|                caller must allocate space for the ub4 before calling this
 | |
|                routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|         3) 'n_length' must point to an allocated ub4.
 | |
|    DESCRIPTION:
 | |
|         Get the schema name of the type.
 | |
|    RETURNS:
 | |
|         the schema name of the type
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeTypeCode ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeCode OCITypeTypeCode(    OCIEnv *env, OCIError *err,
 | |
|                                 const OCIType *tdo    );
 | |
| /*
 | |
|    NAME: OCITypeTypeCode - OCI Get a Type's Type Code.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the type code of the type.
 | |
|    RETURNS:
 | |
|         The type code of the type.
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*----------------------- OCITypeCollTypeCode -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeCode OCITypeCollTypeCode(    OCIEnv *env, OCIError *err,
 | |
|                                     const OCIType *tdo    );
 | |
| /*
 | |
|    NAME: OCITypeCollTypeCode - OCI Get a Domain Type's Type Code.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|         3) 'tdo' MUST point to a named collection type.
 | |
|    DESCRIPTION:
 | |
|         Get the type code of the named collection type. For V8.0, named
 | |
|         collection types can only be variable length arrays and nested tables.
 | |
|    RETURNS:
 | |
|         OCI_TYPECODE_VARRAY for variable length array, and
 | |
|         OCI_TYPECODE_TABLE for nested tables.
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', should be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------- OCITypeVersion ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext* OCITypeVersion(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                          ub4 *v_length    );
 | |
| /*
 | |
|    NAME: OCITypeVersion - OCI Get a Type's user-readable VersioN. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         v_length (OUT) - length (in bytes) of the returned user-readable 
 | |
|                version.  The caller must allocate space for the ub4 before 
 | |
|                calling this routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|         3) 'v_length' must point to an allocated ub4.
 | |
|    DESCRIPTION:
 | |
|         Get the user-readable version of the type.
 | |
|    RETURNS:
 | |
|         The user-readable version of the type
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*--------------------------- OCITypeAttrs ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeAttrs(    OCIEnv *env, OCIError *err, const OCIType *tdo    );
 | |
| /*
 | |
|    NAME: OCITypeAttrs - OCI Get a Type's Number of Attributes. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the number of attributes in the type.
 | |
|    RETURNS:
 | |
|         The number of attributes in the type. 0 for ALL non-ADTs.
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------- OCITypeMethods ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeMethods(    OCIEnv *env, OCIError *err, const OCIType *tdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethods - OCI Get a Type's Number of Methods. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the number of methods in a type.
 | |
|    RETURNS:
 | |
|         The number of methods in the type
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                     TYPE ELEMENT INFORMATION ACCESSORS                   */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*------------------------ OCITypeElemName ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext* OCITypeElemName(    OCIEnv *env, OCIError *err, 
 | |
|                            const OCITypeElem *elem, ub4 *n_length    );
 | |
| /*
 | |
|    NAME: OCITypeElemName - OCI Get an Attribute's NaMe. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|         n_length (OUT) - length (in bytes) of the returned attribute name.  
 | |
|                The caller must allocate space for the ub4 before calling this 
 | |
|                routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|         3) 'n_length' must point to an allocated ub4.
 | |
|    DESCRIPTION:
 | |
|         Get the name of the attribute.
 | |
|    RETURNS:
 | |
|         the name of the attribute and the length in n_length
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeElemTypeCode ------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeCode OCITypeElemTypeCode(    OCIEnv *env, OCIError *err,
 | |
|                                     const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemTypeCode - OCI Get an Attribute's TypeCode. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the typecode of an attribute's type.
 | |
|    RETURNS:
 | |
|         the typecode of the attribute's type.  If this is a scalar type, the 
 | |
|         typecode sufficiently describes the scalar type and no further calls 
 | |
|         need to be made.  Valid scalar types include: OCI_TYPECODE_SIGNED8,
 | |
|         OCI_TYPECODE_UNSIGNED8, OCI_TYPECODE_SIGNED16, OCI_TYPECODE_UNSIGNED16,
 | |
|         OCI_TYPECODE_SIGNED32, OCI_TYPECODE_UNSIGNED32, OCI_TYPECODE_REAL,
 | |
|         OCI_TYPECODE_DOUBLE, OCI_TYPECODE_DATE,
 | |
|         OCI_TYPECODE_MLSLABEL, OROTCOID, OCI_TYPECODE_OCTET, or OROTCLOB.
 | |
|         This function converts the CREF (stored in the attribute) into a
 | |
|         typecode.
 | |
|    NOTES:
 | |
|        The type must be unpinned when the accessed information is no 
 | |
|        longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeElemType ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeElemType(    OCIEnv *env, OCIError *err, const OCITypeElem *elem, 
 | |
|                           OCIType **elem_tdo    );
 | |
| /*
 | |
|   PARAMETERS
 | |
|      env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|      err (IN/OUT) - error handle. If there is an error, it is
 | |
|              recorded in 'err' and this function returns OCI_ERROR.
 | |
|              The error recorded in 'err' can be retrieved by calling
 | |
|              OCIErrorGet().
 | |
|      elem (IN) - pointer to the type element descriptor in the object cache
 | |
|      elem_tdo (OUT) - If the function completes successfully, 'elem_tdo'
 | |
|             points to the type descriptor (in the object cache) of the type of
 | |
|             the element.
 | |
| 
 | |
|   REQUIRES
 | |
|      1) All type accessors require that the type be pinned before calling
 | |
|         any accessor.  This can be done by calling 'OCITypeByName()'.
 | |
|      2) if 'elem' is not null, it must point to a valid type element descriptor
 | |
|         in the object cache.
 | |
| 
 | |
|   DESCRIPTION
 | |
|      Get the type tdo of the type of this element.
 | |
|   RETURNS
 | |
|      OCI_SUCCESS if the function completes successfully.
 | |
|      OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|      OCI_ERROR if
 | |
|          1) any of the parameters is null.
 | |
| 
 | |
|   NOTES
 | |
|      The type must be unpinned when the accessed information is no
 | |
|      longer needed.  This can be done by calling 'OCIObjectUnpin()'.
 | |
|  */
 | |
| 
 | |
| /*------------------------- OCITypeElemFlags -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeElemFlags(    OCIEnv *env, OCIError *err,
 | |
|                          const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemFlags - OCI Get a Elem's FLags
 | |
|                               (inline, constant, virtual, constructor,
 | |
|                               destructor). 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the flags of a type element (attribute, parameter).
 | |
|    RETURNS:
 | |
|         The flags of the type element.
 | |
|    NOTES:
 | |
|         The flag bits are not externally documented. Use only the macros
 | |
|         in the last section (ie. OCI_TYPEPARAM_IS_REQUIRED, and
 | |
|         OCI_TYPEELEM_IS_REF) to test for them only. The type must be unpinned
 | |
|         when the accessed information is no longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeElemNumPrec ------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub1 OCITypeElemNumPrec(    OCIEnv *env, OCIError *err,
 | |
|                            const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemNumPrec - Get a Number's Precision.  This includes float,
 | |
|                               decimal, real, double, and oracle number.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the precision of a float, decimal, long, unsigned long, real, 
 | |
|         double, or Oracle number type. 
 | |
|    RETURNS:
 | |
|         the precision of the float, decimal, long, unsigned long, real, double,
 | |
|         or Oracle number 
 | |
|  */
 | |
| 
 | |
| /*------------------------- OCITypeElemNumScale -----------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sb1 OCITypeElemNumScale(    OCIEnv *env, OCIError *err,
 | |
|                             const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemNumScale - Get a decimal or oracle Number's Scale 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the scale of a decimal, or Oracle number type. 
 | |
|    RETURNS:
 | |
|         the scale of the decimal, or Oracle number 
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeElemLength -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeElemLength(    OCIEnv *env, OCIError *err,
 | |
|                           const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemLength - Get a raw, fixed or variable length String's
 | |
|                              length in bytes.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the length of a raw, fixed or variable length string type. 
 | |
|    RETURNS:
 | |
|         length of the raw, fixed or variable length string
 | |
|  */
 | |
| 
 | |
| /*----------------------- OCITypeElemCharSetID -----------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub2 OCITypeElemCharSetID(    OCIEnv *env, OCIError *err,
 | |
|                              const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemCharSetID - Get a fixed or variable length String's
 | |
|                                 character set ID
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the character set ID of a fixed or variable length string type. 
 | |
|    RETURNS:
 | |
|         character set ID of the fixed or variable length string
 | |
|  */
 | |
| 
 | |
| /*---------------------- OCITypeElemCharSetForm ----------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub2 OCITypeElemCharSetForm(    OCIEnv *env, OCIError *err,
 | |
|                                const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemCharSetForm - Get a fixed or variable length String's
 | |
|                                   character set specification form.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the attribute information in the object cache
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the character form of a fixed or variable length string type.
 | |
|         The character form is an enumerated value that can be one of the
 | |
|         4 values below:
 | |
|                SQLCS_IMPLICIT for CHAR, VARCHAR2, CLOB w/o a specified set
 | |
|                SQLCS_NCHAR    for NCHAR, NCHAR VARYING, NCLOB
 | |
|                SQLCS_EXPLICIT for CHAR, etc, with "CHARACTER SET ..." syntax
 | |
|                SQLCS_FLEXIBLE for PL/SQL "flexible" parameters
 | |
|    RETURNS:
 | |
|         character form of the fixed or variable string
 | |
|  */
 | |
| 
 | |
| /*--------------------- OCITypeElemParameterizedType ------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeElemParameterizedType(    OCIEnv *env, OCIError *err,
 | |
|                                        const OCITypeElem *elem, 
 | |
|                                        OCIType **type_stored    );
 | |
| /*
 | |
|    NAME: OCITypeElemParameterizedType 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|         type_stored (OUT) - If the function completes successfully, 
 | |
|                and the parameterized type is complex, 'type_stored' is NULL.
 | |
|                Otherwise, 'type_stored' points to the type descriptor (in the 
 | |
|                object cache) of the type that is stored in the parameterized 
 | |
|                type.  The caller must allocate space for the OCIType* 
 | |
|                before calling this routine and must not write into the space.
 | |
|    REQUIRES:
 | |
|         All input parameters must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get a descriptor to the parameter type of a parameterized type.
 | |
|         Parameterized types are types of the form:
 | |
|           REF T
 | |
|           VARRAY (n) OF T
 | |
|         etc, where T is the parameter in the parameterized type.
 | |
|         Additionally is_ref is set if the parameter is a PTR or REF.
 | |
|         For example, it is set for REF T or VARRAY(n) OF REF T.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is null.
 | |
|             2) 'type_stored' is not NULL but points to NULL data.
 | |
|    NOTES:
 | |
|         Complex parameterized types will be in a future release (once 
 | |
|         typedefs are supported.  When setting the parameterized type 
 | |
|         information, the user must typedef the contents if it's a
 | |
|         complex parameterized type.  Ex. for varray<varray<car>>, use
 | |
|         'typedef varray<car> varcar' and then use varray<varcar>. 
 | |
|  */
 | |
| 
 | |
| /*----------------------- OCITypeElemExtTypeCode ----------------------------*/
 | |
|  
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeCode OCITypeElemExtTypeCode(    OCIEnv *env, OCIError *err,
 | |
|                                        const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemExtTypeCode - OCI Get an element's SQLT constant.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the type element descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling
 | |
|            any accessor.
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the internal Oracle typecode associated with an attribute's type.
 | |
|         This is the actual typecode for the attribute when it gets mapped
 | |
|         to a column in the Oracle database.
 | |
|    RETURNS:
 | |
|         The Oracle typecode associated with the attribute's type.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                           ATTRIBUTE ACCESSORS                            */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*------------------------ OCITypeAttrByName -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeAttrByName(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                             const oratext *name, ub4 n_length,
 | |
|                             OCITypeElem **elem    );
 | |
| /*
 | |
|    NAME: OCITypeAttrByName - OCI Get an Attribute By Name. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         name (IN) - the attribute's name 
 | |
|         n_length (IN) - length (in bytes) of the 'name' parameter
 | |
|         elem (OUT) - If this function completes successfully, 'elem' points to 
 | |
|                the selected type element descriptor pertaining to the
 | |
|                attributein the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) if 'tdo' is not null, it must point to a valid type descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Get an attribute given its name.  
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) the type does not contain an attribute with the input 'name'. 
 | |
|             3) 'name' is NULL.
 | |
|    NOTES:
 | |
|         The type descriptor, 'tdo', must be unpinned when the accessed 
 | |
|         information is no longer needed.
 | |
|         Schema and type names are CASE-SENSITIVE. If they have been created
 | |
|         via SQL, you need to use uppercase names.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeAttrNext ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeAttrNext(    OCIEnv *env, OCIError *err, 
 | |
|                         OCITypeIter *iterator_ort, OCITypeElem **elem    );
 | |
| 
 | |
| /*
 | |
|    NAME: OCITypeAttrNext - OCI Get an Attribute By Iteration.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         iterator_ort (IN/OUT) - iterator for retrieving the next attribute;
 | |
|                see OCITypeIterNew() to initialize iterator.
 | |
|         elem (OUT) - If this function completes successfully, 'elem' points to 
 | |
|                the selected type element descriptor pertaining to the
 | |
|                attributein the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|             any accessor. 
 | |
|         2) if 'tdo' is not null, it must point to a valid type descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Iterate to the next attribute to retrieve.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_NO_DATA if there are no more attributes to iterate on; use
 | |
|             OCITypeIterSet() to reset the iterator if necessary.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                           COLLECTION ACCESSORS                           */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*------------------------ OCITypeCollElem ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeCollElem(    OCIEnv *env, OCIError *err, const OCIType *tdo,
 | |
|                           OCITypeElem **element    );
 | |
| /*
 | |
|    NAME: OCITypeCollElem
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to the type descriptor in the object cache
 | |
|         element (IN/OUT) - If the function completes successfully, this
 | |
|                points to the descriptor for the collection's element.
 | |
|                It is stored in the same format as an ADT attribute's
 | |
|                descriptor.
 | |
|                If *element is NULL, OCITypeCollElem() implicitly allocates a
 | |
|                new instance of OCITypeElem in the object cache. This instance
 | |
|                will be
 | |
|                automatically freed at the end of the session, and does not have
 | |
|                to be freed explicitly.
 | |
|                If *element is not NULL, OCITypeCollElem() assumes that it
 | |
|                points to a valid OCITypeElem descriptor and will copy the
 | |
|                results into it.
 | |
|    REQUIRES:
 | |
|         All input parameters must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get a pointer to the descriptor (OCITypeElem) of the element of an
 | |
|         array or the rowtype of a nested table.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is null.
 | |
|             2) the type TDO does not point to a valid collection's type.
 | |
|    NOTES:
 | |
|         Complex parameterized types will be in a future release (once 
 | |
|         typedefs are supported.  When setting the parameterized type 
 | |
|         information, the user must typedef the contents if it's a
 | |
|         complex parameterized type.  Ex. for varray<varray<car>>, use
 | |
|         'typedef varray<car> varcar' and then use varray<varcar>. 
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeCollSize ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeCollSize(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                           ub4 *num_elems    );
 | |
| /*
 | |
|    NAME: OCITypeCollSize - OCI Get a Collection's Number of Elements.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to the type descriptor in the object cache
 | |
|         num_elems (OUT) - number of elements in collection
 | |
|    REQUIRES:
 | |
|         All input parameters must be valid. tdo points to an array type
 | |
|         defined as a domain.
 | |
|    DESCRIPTION:
 | |
|         Get the number of elements stored in a fixed array or the maximum 
 | |
|         number of elements in a variable array.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is null.
 | |
|             2) 'tdo' does not point to a domain with a collection type.
 | |
|    NOTES:
 | |
|         Complex parameterized types will be in a future release (once 
 | |
|         typedefs are supported.  When setting the parameterized type 
 | |
|         information, the user must typedef the contents if it's a
 | |
|         complex parameterized type.  Ex. for varray<varray<car>>, use
 | |
|         'typedef varray<car> varcar' and then use varray<varcar>. 
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeCollExtTypeCode ---------------------------*/
 | |
|  
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeCollExtTypeCode(    OCIEnv *env, OCIError *err,
 | |
|                                const OCIType *tdo, OCITypeCode *sqt_code    );
 | |
| /*
 | |
|    NAME: ortcsqt - OCI Get a Collection element's DTY constant.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to the type descriptor in the object cache
 | |
|         sqt_code (OUT) - SQLT code of type element.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling
 | |
|            any accessor.
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the SQLT constant associated with an domain's element type.
 | |
|         The SQLT codes are defined in <sqldef.h> and are needed for OCI/OOCI
 | |
|         use.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null.
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is null.
 | |
|             2) 'tdo' does not point to a domain with a collection type.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no
 | |
|         longer needed.
 | |
|  */
 | |
|  
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                             METHOD ACCESSORS                             */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*------------------------- OCITypeMethodOverload --------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeMethodOverload(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                               const oratext *method_name, ub4 m_length    );
 | |
| /*
 | |
|    NAME: OCITypeMethodOverload - OCI Get type's Number of Overloaded names
 | |
|                                  for the given method name.
 | |
|    PARAMETERS:
 | |
|         gp (IN/OUT) - pga environment handle.  Any errors are recorded here.
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         method_name (IN) - the method's name
 | |
|         m_length (IN) - length (in bytes) of the 'method_name' parameter
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling
 | |
|            any accessor.
 | |
|         2) if 'tdo' is not null, it must point to a valid type descriptor
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Overloading of methods implies that more than one method may have the
 | |
|         same method name.  This routine returns the number of methods that
 | |
|         have the given method name.  If there are no methods with the input
 | |
|         method name, 'num_methods' is 0.  The caller uses this information when
 | |
|         allocating space for the array of mdo and/or position pointers before
 | |
|         calling 'OCITypeMethodByName()' or 'ortgmps()'.
 | |
|    RETURNS:
 | |
|         The number of methods with the given name. 0 if none contains the
 | |
|         name.
 | |
|    NOTES:
 | |
|         Schema and type names are CASE-SENSITIVE. If they have been created
 | |
|         via SQL, you need to use uppercase names.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodByName ------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeMethodByName(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                               const oratext *method_name, ub4 m_length,
 | |
|                               OCITypeMethod **mdos    );
 | |
| /*
 | |
|    NAME: OCITypeMethodByName - OCI Get one or more Methods with Name. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         method_name (IN) - the methods' name  
 | |
|         m_length (IN) - length (in bytes) of the 'name' parameter
 | |
|         mdos (OUT) - If this function completes successfully, 'mdos' points to
 | |
|                 the selected methods in the object cache.  The caller must
 | |
|                 allocate space for the array of OCITypeMethod pointers before
 | |
|                 calling this routine and must not write into the space.
 | |
|                 The number of OCITypeMethod pointers that will be returned can
 | |
|                 be obtained by calling 'OCITypeMethodOverload()'.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) if 'tdo' is not null, it must point to a valid type descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Get one or more methods given the name.  
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) No methods in type has name 'name'.
 | |
|             3) 'mdos' is not NULL but points to NULL data.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|         Schema and type names are CASE-SENSITIVE. If they have been created
 | |
|         via SQL, you need to use uppercase names.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodNext --------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeMethodNext(    OCIEnv *env, OCIError *err, 
 | |
|                             OCITypeIter *iterator_ort,
 | |
|                             OCITypeMethod **mdo   );
 | |
| 
 | |
| /*
 | |
|    NAME: OCITypeMethodNext - OCI Get a Method By Iteration.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         iterator_ort (IN/OUT) - iterator for retrieving the next method;
 | |
|                see OCITypeIterNew() to set iterator.
 | |
|         mdo (OUT) - If this function completes successfully, 'mdo' points to 
 | |
|                the selected method descriptor in the object cache.  Positions 
 | |
|                start at 1.  The caller must allocate space for the
 | |
|                OCITypeMethod* before calling this routine and must not write 
 | |
|                nto the space. 
 | |
|    REQUIRES:
 | |
|          1) All type accessors require that the type be pinned before calling 
 | |
|             any accessor. 
 | |
|         2) if 'tdo' is not null, it must point to a valid type descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Iterate to the next method to retrieve.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_NO_DATA if there are no more attributes to iterate on; use
 | |
|             OCITypeIterSet() to reset the iterator if necessary.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) 'mdo' is not NULL but points to NULL data.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodName --------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext *OCITypeMethodName(    OCIEnv *env, OCIError *err,
 | |
|                             const OCITypeMethod *mdo, ub4 *n_length    );
 | |
| /*
 | |
|    NAME: OCITypeMethodName - OCI Get a Method's NaMe. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|         n_length (OUT) - length (in bytes) of the 'name' parameter.  The caller
 | |
|                must allocate space for the ub4 before calling this routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the (non-unique) real name of the method.
 | |
|    RETURNS:
 | |
|         the non-unique name of the method or NULL if there is an error.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodEncap -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeEncap OCITypeMethodEncap(    OCIEnv *env, OCIError *err,
 | |
|                                     const OCITypeMethod *mdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethodEncap - Get a Method's ENcapsulation (private/public). 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the encapsulation (private, or public) of a method.
 | |
|    RETURNS:
 | |
|         the encapsulation (private, or public) of the method
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodFlags -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeMethodFlag OCITypeMethodFlags(    OCIEnv *env, OCIError *err,
 | |
|                                          const OCITypeMethod *mdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethodFlags - OCI Get a Method's FLags
 | |
|                               (inline, constant, virtual, constructor,
 | |
|                               destructor). 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the flags (inline, constant, virutal, constructor, destructor) of
 | |
|         a method.
 | |
|    RETURNS:
 | |
|         the flags (inline, constant, virutal, constructor, destructor) of
 | |
|         the method
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodMap ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeMethodMap(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                            OCITypeMethod **mdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethodMap - OCI Get the Method's MAP function.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         mdo (OUT) - If this function completes successfully, and there is a 
 | |
|                map function for this type, 'mdo' points to the selected method 
 | |
|                descriptor in the object cache.  Otherwise, 'mdo' is null.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All required input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         A type may have only one map function.  'OCITypeMethodMap()' finds
 | |
|         this function, if it exists, and returns a reference and a pointer to
 | |
|         the method descriptor in the object cache.  If the type does not have a
 | |
|         map (relative ordering) function, then 'mdo_ref' and 'mdo' are set
 | |
|         to null and an error is returned.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             the type does not contain a map function.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodOrder -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeMethodOrder(    OCIEnv *env, OCIError *err, const OCIType *tdo, 
 | |
|                              OCITypeMethod **mdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethodOrder - OCI Get the Method's ORder function.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         tdo (IN) - pointer to to the type descriptor in the object cache
 | |
|         mdo (OUT) - If this function completes successfully, and there is a 
 | |
|                map function for this type, 'mdo' points to the selected method 
 | |
|                descriptor in the object cache.  Otherwise, 'mdo' is null.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All required input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         A type may have only one ORder or MAP function. 'OCITypeMethodOrder()'
 | |
|         finds this function, if it exists, and returns a ref and a pointer
 | |
|         to the method descriptor in the object cache.  If the type does not
 | |
|         have a map (relative ordering) function, then 'mdo_ref' and 'mdo' are
 | |
|         set to null and an error is returned.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             the type does not contain a map function.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeMethodParams ------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| ub4 OCITypeMethodParams(    OCIEnv *env, OCIError *err,
 | |
|                             const OCITypeMethod *mdo    );
 | |
| /*
 | |
|    NAME: OCITypeMethodParams - OCI Get a Method's Number of Parameters. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the number of parameters in a method.
 | |
|    RETURNS:
 | |
|         the number of parameters in the method
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                             RESULT ACCESSORS                             */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*-------------------------- OCITypeResult ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeResult(    OCIEnv *env, OCIError *err, const OCITypeMethod *mdo,
 | |
|                         OCITypeElem **elem    );
 | |
| /*
 | |
|    NAME: OCITypeResult - OCI Get a method's result type descriptor.
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|         elem (OUT) - If this function completes successfully, 'rdo' points to 
 | |
|                the selected result (parameter) descriptor in the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor.
 | |
|         2) 'elem' MUST be the address of an OCITypeElem pointer.
 | |
|    DESCRIPTION:
 | |
|         Get the result of a method.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) method returns no results.
 | |
|    NOTES:
 | |
|         The method must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                           PARAMETER ACCESSORS                            */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /*------------------------ OCITypeParamByPos -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeParamByPos(    OCIEnv *env, OCIError *err,
 | |
|                             const OCITypeMethod *mdo, ub4 position, 
 | |
|                             OCITypeElem **elem    );
 | |
| /*
 | |
|    NAME: OCITypeParamByPos - OCI Get a Parameter in a method By Position. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|         position (IN) - the parameter's position.  Positions start at 1.
 | |
|         elem (OUT) - If this function completes successfully, 'elem' points to 
 | |
|                the selected parameter descriptor in the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|    DESCRIPTION:
 | |
|         Get a parameter given its position in the method.  Positions start 
 | |
|         at 1.  
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) 'position' is not >= 1 and <= the number of parameters in the
 | |
|                method.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeParamByName -------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeParamByName(    OCIEnv *env, OCIError *err,
 | |
|                              const OCITypeMethod *mdo, 
 | |
|                              const oratext *name, ub4 n_length,
 | |
|                              OCITypeElem **elem    );
 | |
| /*
 | |
|    NAME: OCITypeParamByName - OCI Get a Parameter in a method By Name. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|         name (IN) - the parameter's name
 | |
|         n_length (IN) - length (in bytes) of the 'name' parameter
 | |
|         elem (OUT) - If this function completes successfully, 'elem' points to 
 | |
|                the selected parameter descriptor in the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) if 'mdo' is not null, it must point to a valid method descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Get a parameter given its name.  
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the required parameters is null.
 | |
|             2) the method does not contain a parameter with the input 'name'. 
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeParamPos ---------------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeParamPos(    OCIEnv *env, OCIError *err,
 | |
|                           const OCITypeMethod *mdo, 
 | |
|                           const oratext *name, ub4 n_length, ub4 *position, 
 | |
|                           OCITypeElem **elem    );
 | |
| /*
 | |
|    NAME: OCITypeParamPos - OCI Get a parameter's position in a method
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         mdo (IN) - pointer to the method descriptor in the object cache
 | |
|         name (IN) - the parameter's name
 | |
|         n_length (IN) - length (in bytes) of the 'name' parameter
 | |
|         position (OUT) - If this function completes successfully, 'position' 
 | |
|                points to the position of the parameter in the method starting 
 | |
|                at position 1. position MUST point to space for a ub4.
 | |
|         elem (OUT) - If this function completes successfully, and 
 | |
|                the input 'elem' is not NULL, 'elem' points to the selected 
 | |
|                parameter descriptor in the object cache.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) if 'mdo' is not null, it must point to a valid method descriptor 
 | |
|            in the object cache.
 | |
|    DESCRIPTION:
 | |
|         Get the position of a parameter in a method.  Positions start at 1.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null. 
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is null.
 | |
|             2) the method does not contain a parameter with the input 'name'. 
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------ OCITypeParamElemMode -----------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| OCITypeParamMode OCITypeElemParamMode(    OCIEnv *env, OCIError *err,
 | |
|                                           const OCITypeElem *elem    );
 | |
| /*
 | |
|    NAME: OCITypeElemParamMode - OCI Get a parameter's mode
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the parameter descriptor in the object cache
 | |
|                 (represented by an OCITypeElem)
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the mode (in, out, or in/out) of the parameter.
 | |
|    RETURNS:
 | |
|         the mode (in, out, or in/out) of the parameter
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
| 
 | |
| /*------------------------- OCITypeElemDefaultValue -------------------------*/
 | |
| 
 | |
| /* ** OBSOLETE ** */
 | |
| oratext* OCITypeElemDefaultValue(    OCIEnv *env, OCIError *err,
 | |
|                                   const OCITypeElem *elem,
 | |
|                                   ub4 *d_v_length    );
 | |
| /*
 | |
|    NAME: OCITypeElemDefaultValue - OCI Get the element's Default Value. 
 | |
|    PARAMETERS: 
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         elem (IN) - pointer to the parameter descriptor in the object cache
 | |
|                 (represented by an OCITypeElem)
 | |
|         d_v_length (OUT) - length (in bytes) of the returned default value.
 | |
|                The caller must allocate space for the ub4 before calling this 
 | |
|                routine.
 | |
|    REQUIRES:
 | |
|         1) All type accessors require that the type be pinned before calling 
 | |
|            any accessor. 
 | |
|         2) All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Get the default value in text form (PL/SQL) of an element. For V8.0,
 | |
|         this only makes sense for a method parameter.
 | |
|    RETURNS:
 | |
|         The default value (text) of the parameter.
 | |
|    NOTES:
 | |
|         The type must be unpinned when the accessed information is no 
 | |
|         longer needed.
 | |
|  */
 | |
|  
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                           TYPE VERSION TABLE                             */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| /* For V8.0, the type version table is meant to be an internal data structure
 | |
|    only for Oracle clients for type version maintanence purposes. A more
 | |
|    general version of the API may be made public in subsequent releases. */
 | |
| 
 | |
| 
 | |
| /*--------------------------- OCITypeVTInit --------------------------------*/
 | |
|  
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeVTInit(    OCIEnv *env, OCIError *err    );
 | |
| /*
 | |
|    NAME: OCITypeVTInit - OCI type Version table INItialize
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|    REQUIRES:
 | |
|         none
 | |
|    DESCRIPTION:
 | |
|         Allocate space for and initialize the type version table and the type
 | |
|         version table's index.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null.
 | |
|         OCI_ERROR if internal errors occurrs during initialization.
 | |
|  */
 | |
|  
 | |
| /*--------------------------- OCITypeVTInsert -------------------------------*/
 | |
|  
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeVTInsert(    OCIEnv *env, OCIError *err, 
 | |
|                           const oratext *schema_name, ub4 s_n_length, 
 | |
|                           const oratext *type_name, ub4 t_n_length, 
 | |
|                           const oratext *user_version, ub4 u_v_length    );
 | |
| /*
 | |
|    NAME: OCITypeVTInsert - OCI type Version table INSert entry.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         schema_name (IN, optional) - name of schema associated with the 
 | |
|                   type.  By default, the user's schema name is used.
 | |
|         s_n_length (IN) - length of the 'schema_name' parameter
 | |
|         type_name (IN) - type name to insert
 | |
|         t_n_length (IN) - length (in bytes) of the 'type_name' parameter
 | |
|         user_version (IN) - user readable version of the type
 | |
|         u_v_length (IN) - length (in bytes) of the 'user_version' parameter
 | |
|    REQUIRES:
 | |
|         none
 | |
|    DESCRIPTION:
 | |
|         Insert an entry into the type version table and the type version
 | |
|         table's index.  The entry's type name and user readable version
 | |
|         fields are updated with the input values.  All other fields are
 | |
|         initialized to null.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null.
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is invalid.
 | |
|             2) an entry for 'type_name' has already been registered in the
 | |
|                type version table.
 | |
|  */
 | |
| 
 | |
| /*------------------------------ OCITypeVTSelect ----------------------------*/
 | |
| 
 | |
| /* OCITypeVTSelect - OCI type VERSion table SELECT entry */
 | |
| /* ** OBSOLETE ** */
 | |
| sword OCITypeVTSelect(    OCIEnv *env, OCIError *err, 
 | |
|                           const oratext *schema_name, ub4 s_n_length, 
 | |
|                           const oratext *type_name, ub4 t_n_length, 
 | |
|                           oratext **user_version, ub4 *u_v_length,
 | |
|                         ub2 *version );
 | |
| /*
 | |
|    NAME: OCITypeVTSelect - OCI type Version table SELect entry.
 | |
|    PARAMETERS:
 | |
|         env (IN/OUT) - OCI environment handle initialized in object mode
 | |
|         err (IN/OUT) - error handle. If there is an error, it is
 | |
|                 recorded in 'err' and this function returns OCI_ERROR.
 | |
|                 The error recorded in 'err' can be retrieved by calling
 | |
|                 OCIErrorGet().
 | |
|         schema_name (IN, optional) - name of schema associated with the 
 | |
|                   type.  By default, the user's schema name is used.
 | |
|         s_n_length (IN) - length of the 'schema_name' parameter
 | |
|         type_name (IN) - type name to select
 | |
|         t_n_length (IN) - length (in bytes) of the 'type_name' parameter
 | |
|         user_version (OUT, optional) - pointer to user readable version of the
 | |
|                  type
 | |
|         u_v_length (OUT, optional) - length (in bytes) of the 'user_version'
 | |
|                  parameter
 | |
|         version (OUT, optional) - internal type version
 | |
|    REQUIRES:
 | |
|         All input parameters must not be NULL and must be valid.
 | |
|    DESCRIPTION:
 | |
|         Select an entry in the type version table by name.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_INVALID_HANDLE if 'env' or 'err' is null.
 | |
|         OCI_ERROR if
 | |
|             1) any of the parameters is invalid.
 | |
|             2) an entry with 'type_name' does not exist.
 | |
|  */
 | |
| 
 | |
| /* Compatibility function - following function prototype retained for 
 | |
|    compatibility only */
 | |
| sword ortgcty(    OCIEnv *env, OCIError *err, OCIType *coll_tdo,
 | |
|                   OCIType **collelem_tdo    );
 | |
| 
 | |
| /*---------------------------------------------------------------------------*/
 | |
| /*               Transient Type Construction functions                       */
 | |
| /*---------------------------------------------------------------------------*/
 | |
| 
 | |
| sword OCITypeBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
 | |
|                          OCIDuration dur, OCIType **type);
 | |
| /*
 | |
|    NAME: OCITypeBeginCreate - OCI Type Begin Creation of a transient type.
 | |
|    REMARKS
 | |
|        Begins the construction process for a transient type. The type will be
 | |
|        anonymous (no name). To create a persistent named type, the CREATE TYPE
 | |
|        statement should be used from SQL. Transient types have no identity.
 | |
|        They are pure values.
 | |
|    PARAMETERS:
 | |
|        svchp (IN)       - The OCI Service Context.
 | |
|        errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
 | |
|                           recorded in errhp and this function returns
 | |
|                           OCI_ERROR. Diagnostic information can be obtained by
 | |
|                           calling OCIErrorGet().
 | |
|        tc               - The TypeCode for the type. The Typecode could
 | |
|                           correspond to a User Defined Type or a Built-in type.
 | |
|                           Currently, the permissible values for User Defined 
 | |
|                           Types are OCI_TYPECODE_OBJECT for an Object Type
 | |
|                           (structured), OCI_TYPECODE_VARRAY for a VARRAY
 | |
|                           collection type or OCI_TYPECODE_TABLE for a nested
 | |
|                           table collection type. For Object types,
 | |
|                           OCITypeAddAttr() needs to be called to add each of
 | |
|                           the attribute types. For Collection types,
 | |
|                           OCITypeSetCollection() needs to be called.
 | |
|                           Subsequently, OCITypeEndCreate() needs to be called 
 | |
|                           to finish the creation process.
 | |
|                           The permissible values for Built-in type codes are
 | |
|                           specified in the user manual. Additional information
 | |
|                           on built-ins if any (like precision, scale for
 | |
|                           numbers, character set info for VARCHAR2s etc.) must
 | |
|                           be set with a subsequent call to OCITypeSetBuiltin().
 | |
|                           Subsequently OCITypeEndCreate() needs to be called
 | |
|                           to finish the creation process.
 | |
|        dur              - The allocation duration for the Type. Could be a
 | |
|                           predefined or a user defined duration.
 | |
|        type(OUT)        - The OCIType (Type Descriptor) that is being
 | |
|                           constructed.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_ERROR on error.
 | |
| */
 | |
| 
 | |
| 
 | |
| sword OCITypeSetCollection(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
 | |
|                            OCIParam *collelem_info, ub4 coll_count);
 | |
| /*
 | |
|    NAME: OCITypeSetCollection - OCI Type Set Collection information
 | |
|    REMARKS :
 | |
|        Set Collection type information. This call can be called only if the
 | |
|        OCIType has been constructed with a collection typecode.
 | |
|    PARAMETERS:
 | |
|        svchp (IN)      -  The OCI Service Context.
 | |
|        errhp (IN/OUT)  -  The OCI error handle. If there is an error, it is 
 | |
|                           recorded in errhp and this function returns
 | |
|                           OCI_ERROR. Diagnostic information can be obtained by
 | |
|                           calling OCIErrorGet().
 | |
|        type(IN OUT)    -  The OCIType (Type Descriptor) that is being
 | |
|                           constructed.
 | |
|        collelem_info   -  collelem_info provides information on the collection
 | |
|                           element. It is obtained by allocating an OCIParam
 | |
|                           (parameter handle) and setting type information in
 | |
|                           the OCIParam using OCIAttrSet() calls.
 | |
|        coll_count      -  The count of elements in the collection. Pass 0 for
 | |
|                           a nested table (unbounded).
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_ERROR on error.
 | |
| */
 | |
| 
 | |
| sword OCITypeSetBuiltin(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
 | |
|                         OCIParam *builtin_info);
 | |
| /*
 | |
|    NAME: OCITypeSetBuiltin - OCI Type Set Builtin information.
 | |
|    REMARKS:
 | |
|        Set Built-in type information. This call can be called only if the
 | |
|        OCIType has been constructed with a built-in typecode
 | |
|        (OCI_TYPECODE_NUMBER etc.).
 | |
|    PARAMETERS:
 | |
|        svchp (IN)       - The OCI Service Context.
 | |
|        errhp (IN/OUT)   - The OCI error handle. If there is an error, it is 
 | |
|                           recorded in errhp and this function returns
 | |
|                           OCI_ERROR. Diagnostic information can be obtained by
 | |
|                           calling OCIErrorGet().
 | |
|        type(IN OUT)     - The OCIType (Type Descriptor) that is being
 | |
|                           constructed.
 | |
|        builtin_info     - builtin_info provides information on the built-in
 | |
|                           (like precision, scale, charater set etc.). It is
 | |
|                           obtained by allocating an OCIParam (parameter handle)
 | |
|                           and setting type information in the OCIParam using
 | |
|                            OCIAttrSet() calls.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_ERROR on error.
 | |
| */
 | |
| 
 | |
| sword OCITypeAddAttr(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
 | |
|                      const oratext *a_name, ub4 a_length, 
 | |
|                      OCIParam *attr_info);
 | |
| /*
 | |
|    NAME: OCITypeAddAttr - OCI Type Add Attribute to an Object Type.
 | |
|    REMARKS:
 | |
|        Adds an attribute to an Object type (that was constructed earlier with
 | |
|        typecode OCI_TYPECODE_OBJECT).
 | |
|    PARAMETERS:
 | |
|        svchp (IN)       - The OCI Service Context
 | |
|        errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
 | |
|                           recorded in errhp and this function returns
 | |
|                           OCI_ERROR. Diagnostic information can be obtained by
 | |
|                           calling OCIErrorGet().
 | |
|        type (IN/OUT)    - The Type description that is being constructed.
 | |
|        a_name(IN)       - Optional. gives the name of the attribute.
 | |
|        a_length         - Optional. gives length of attribute name.
 | |
|        attr_info        - Information on the attribute. It is obtained by
 | |
|                           allocating an OCIParam (parameter handle) and setting
 | |
|                           type information in the OCIParam using OCIAttrSet()
 | |
|                           calls.
 | |
|   RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_ERROR on error.
 | |
| */
 | |
| 
 | |
| sword OCITypeEndCreate(OCISvcCtx *svchp, OCIError *errhp, OCIType *type);
 | |
| /*
 | |
|    NAME: OCITypeEndCreate - OCI Type End Creation
 | |
|    REMARKS:
 | |
|        Finishes construction of a type description.Subsequently, only access
 | |
|        will be allowed.
 | |
|    PARAMETERS:
 | |
|        svchp (IN)       - The OCI Service Context
 | |
|        errhp (IN/OUT)   - The OCI error handle. If there is an error, it is
 | |
|                           recorded in errhp and this function returns
 | |
|                           OCI_ERROR. Diagnostic information can be obtained by
 | |
|                           calling OCIErrorGet().
 | |
|        type (IN/OUT)    - The Type description that is being constructed.
 | |
|    RETURNS:
 | |
|         OCI_SUCCESS if the function completes successfully.
 | |
|         OCI_ERROR on error.
 | |
| */
 | |
| 
 | |
| /*=========================*/
 | |
| /* PUBLIC MACROS AND FLAGS */
 | |
| /*=========================*/
 | |
| 
 | |
| /*--------------------------------------------------------------------------*/
 | |
| /*                          TYPE ELEMENT FLAGS                              */
 | |
| /*--------------------------------------------------------------------------*/
 | |
| 
 | |
| #define OCI_TYPEELEM_REF        0x8000                   /* element is a REF */
 | |
| #define OCI_TYPEPARAM_REQUIRED  0x0800              /* parameter is required */
 | |
| 
 | |
| /* macros to test flags */
 | |
| #define OCI_TYPEELEM_IS_REF(elem_flag) \
 | |
|   (((elem_flag) & OCI_TYPEELEM_REF)!=0)
 | |
| #define OCI_TYPEPARAM_IS_REQUIRED(param_flag) \
 | |
|   (((param_flag) & OCI_TYPEPARAM_REQUIRED)!=0)
 | |
| 
 | |
| 
 | |
| #endif /* ORT_ORACLE */
 | |
| 
 |