⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ociap.h

📁 SQLAPI C/C++ 连接Oracle 数据库!
💻 H
📖 第 1 页 / 共 5 页
字号:
--------------------------------OCIBindArrayOfStruct--------------------------OCIBindArrayOfStruct()NameOCI Bind for Array of StructuresPurposeThis call sets up the skip parameters for a static array bind.Syntaxsword OCIBindArrayOfStruct ( OCIBind     *bindp,                           OCIError    *errhp,                           ub4         pvskip,                            ub4         indskip,                            ub4         alskip,                            ub4         rcskip );CommentsThis call sets up the skip parameters necessary for a static array bind.This call follows a call to OCIBindByName() or OCIBindByPos(). The bind handle returned by that initial bind call is used as a parameter for the OCIBindArrayOfStruct() call.For information about skip parameters, see the section "Arrays of Structures" on page 4-16.Parametersbindp (IN) - the handle to a bind structure. errhp (IN) - an error handle which can be passed to OCIErrorGet() for diagnostic information in the event of an error.pvskip (IN) - skip parameter for the next data value. indskip (IN) - skip parameter for the next indicator value or structure. alskip (IN) - skip parameter for the next actual length value. rcskip (IN) - skip parameter for the next column-level return code value. Related FunctionsOCIAttrGet()--------------------------------OCIBindByName---------------------------------OCIBindByName()NameOCI Bind by NamePurposeCreates an association between a program variable and a placeholder in a SQL statement or PL/SQL block.Syntaxsword OCIBindByName (              OCIStmt       *stmtp,               OCIBind       **bindp,              OCIError      *errhp,              CONST OraText    *placeholder,              sb4           placeh_len,              dvoid         *valuep,              sb4           value_sz,              ub2           dty,              dvoid         *indp,              ub2           *alenp,              ub2           *rcodep,              ub4           maxarr_len,              ub4           *curelep,               ub4           mode ); DescriptionThis call is used to perform a basic bind operation. The bind creates an association between the address of a program variable and a placeholder in a SQL statement or PL/SQL block. The bind call also specifies the type of data which is being bound, and may also indicate the method by which data will be provided at runtime.This function also implicitly allocates the bind handle indicated by the bindp parameter.Data in an OCI application can be bound to placeholders statically or dynamically. Binding is static when all the IN bind data and the OUT bind buffers are well-defined just before the execute. Binding is dynamic when the IN bind data and the OUT bind buffers are provided by the application on demand at execute time to the client library. Dynamic binding is indicated by setting the mode parameter of this call to OCI_DATA_AT_EXEC.Related Functions: For more information about dynamic binding, see the section "Runtime Data Allocation and Piecewise Operations" on page 5-16.Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, which is implicitly allocated by the bind call A separate bind handle is allocated for each placeholder the application is binding.Additional bind calls may be required to specify particular attributes necessary when binding certain data types or handling input data in certain ways:If arrays of structures are being utilized, OCIBindArrayOfStruct() must be called to set up the necessary skip parameters.If data is being provided dynamically at runtime, and the application will be using user-defined callback functions, OCIBindDynamic() must be called to register the callbacks.If a named data type is being bound, OCIBindObject() must be called to specify additional necessary information.Parametersstmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement being processed.bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly allocated by this call.  The bind handle  maintains all the bind information for this particular input value. The handle is feed implicitly when the statement handle is deallocated.errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for diagnostic information in the event of an error. placeholder (IN) - the placeholder attributes are specified by name if ocibindn() is being called.placeh_len (IN) - the length of the placeholder name specified in placeholder.valuep (IN/OUT) - a pointer to a data value or an array of data values of the type specified in the dty parameter. An array of data values can be specified for mapping into a PL/SQL table or for providing data for SQL multiple-row operations. When an array of bind values is provided, this is called an array bind in OCI terms. Additional attributes of the array bind (not bind to a column of ARRAY type) are set up in OCIBindArrayOfStruct() call. For a REF, named data type  bind, the valuep parameter is used only for IN bind data. The pointers to OUT buffers are set in the pgvpp parameter initialized by OCIBindObject(). For named data type and REF binds, the bind values are unpickled into the Object Cache. The OCI object navigational calls can then be used to navigate the objects and the refs in the Object Cache.If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep is ignored for all data types. OCIBindArrayOfStruct() cannot be used and OCIBindDynamic() must be invoked to provide callback functions if desired. value_sz (IN) - the size of a data value. In the case of an array bind, this is the maximum size of any element possible with the actual sizes being specified in the alenp parameter. If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum size of the data that can be ever provided at runtime for data types other than named data types or REFs. dty (IN) - the data type of the value(s) being bound. Named data types (SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been initialized in object mode. For named data types, or REFs, additional calls must be made with the bind handle to set up the datatype-specific attributes.indp (IN/OUT) - pointer to an indicator variable or array. For scalar data types, this is a pointer to sb2 or an array of sb2s. For named data types, this pointer is ignored and the actual pointer to the indicator structure or an array of indicator structures is initialized by OCIBindObject(). Ignored for dynamic binds.See the section "Indicator Variables" on page 2-43 for more information about indicator variables.alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each element in alenp is the length of the data in the corresponding element in the bind value array before and after the execute. This parameter is ignored for dynamic binds.rcodep (OUT) - pointer to array of column level return codes. This parameter is ignored for dynamic binds.maxarr_len (IN) - the maximum possible number of elements of type dty in a PL/SQL binds. This parameter is not required for non-PL/SQL binds. If maxarr_len is non-zero, then either OCIBindDynamic() or OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. curelep(IN/OUT) - a pointer to the actual number of elements. This parameter is only required for PL/SQL binds.mode (IN) - the valid modes for this parameter are:OCI_DEFAULT. This is default mode.OCI_DATA_AT_EXEC. When this mode is selected, the value_sz parameter defines the maximum size of the data that can be ever provided at runtime. The application must be ready to provide the OCI library runtime IN data buffers at any time and any number of times. Runtime data is provided in one of the two ways:callbacks using a user-defined function which must be registered with a subsequent call to OCIBindDynamic(). a polling mechanism using calls supplied by the OCI. This mode is assumed if no callbacks are defined.For more information about using the OCI_DATA_AT_EXEC mode, see the section "Runtime Data Allocation and Piecewise Operations" on page 5-16.When the allocated buffers are not required any more, they should be freed by the client. Related FunctionsOCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet()-------------------------------OCIBindByPos-----------------------------------OCIBindByPos()NameOCI Bind by PositionPurposeCreates an association between a program variable and a placeholder in a SQL statement or PL/SQL block.Syntaxsword OCIBindByPos (               OCIStmt      *stmtp,               OCIBind      **bindp,              OCIError     *errhp,              ub4          position,              dvoid        *valuep,              sb4          value_sz,              ub2          dty,              dvoid        *indp,              ub2          *alenp,              ub2          *rcodep,              ub4          maxarr_len,              ub4          *curelep,               ub4          mode);DescriptionThis call is used to perform a basic bind operation. The bind creates an association between the address of a program variable and a placeholder in a SQL statement or PL/SQL block. The bind call also specifies the type of data which is being bound, and may also indicate the method by which data will be provided at runtime.This function also implicitly allocates the bind handle indicated by the bindp parameter.Data in an OCI application can be bound to placeholders statically or dynamically. Binding is static when all the IN bind data and the OUT bind buffers are well-defined just before the execute. Binding is dynamic when the IN bind data and the OUT bind buffers are provided by the application on demand at execute time to the client library. Dynamic binding is indicated by setting the mode parameter of this call to OCI_DATA_AT_EXEC.Related Functions: For more information about dynamic binding, see the section "Runtime Data Allocation and Piecewise Operations" on page 5-16Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, which is implicitly allocated by the bind call A separate bind handle is allocated for each placeholder the application is binding.Additional bind calls may be required to specify particular attributes necessary when binding certain data types or handling input data in certain ways:If arrays of structures are being utilized, OCIBindArrayOfStruct() must be called to set up the necessary skip parameters.If data is being provided dynamically at runtime, and the application will be using user-defined callback functions, OCIBindDynamic() must be called to register the callbacks.If a named data type is being bound, OCIBindObject() must be called to specify additional necessary information.Parametersstmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement being processed.bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly allocated by this call.  The bind handle  maintains all the bind information for this particular input value. The handle is feed implicitly when the statement handle is deallocated.errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for diagnostic information in the event of an error. position (IN) - the placeholder attributes are specified by position if ocibindp() is being called.valuep (IN/OUT) - a pointer to a data value or an array of data values of the type specified in the dty parameter. An array of data values can be specified for mapping into a PL/SQL table or for providing data for SQL multiple-row operations. When an array of bind values is provided, this is called an array bind in OCI terms. Additional attributes of the array bind (not bind to a column of ARRAY type) are set up in OCIBindArrayOfStruct() call. For a REF, named data type  bind, the valuep parameter is used only for IN bind data. The pointers to OUT buffers are set in the pgvpp parameter initialized by OCIBindObject(). For named data type and REF binds, the bind values are unpickled into the Object Cache. The OCI object navigational calls can then be used to navigate the objects and the refs in the Object Cache.If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep is ignored for all data types. OCIBindArrayOfStruct() cannot be used and OCIBindDynamic() must be invoked to provide callback functions if desired. value_sz (IN) - the size of a data value. In the case of an array bind, this is the maximum size of any element possible with the actual sizes being specified in the alenp parameter. If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum size of the data that can be ever provided at runtime for data types other than named data types or REFs. dty (IN) - the data type of the value(s) being bound. Named data types (SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been initialized in object mode. For named data types, or REFs, additional calls must be made with the bind handle to set up the datatype-specific attributes.indp (IN/OUT) - pointer to an indicator variable or array. For scalar data types, this is a pointer to sb2 or an array of sb2s. For named data types, this pointer is ignored and the actual pointer to the indicator structure or an array of indicator structures is initialized by OCIBindObject(). Ignored for dynamic binds.See the section "Indicator Variables" on page 2-43 for more information about indicator variables.alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each element in alenp is the length of the data in the corresponding element in the bind value array before and after the execute. This parameter is ignored for dynamic binds.rcodep (OUT) - pointer to array of column level return codes. This parameter is ignored for dynamic binds.maxarr_len (IN) - the maximum possible number of elements of type dty in a PL/SQL binds. This parameter is not required for non-PL/SQL binds. If maxarr_len is non-zero, then either OCIBindDynamic() or OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. curelep(IN/OUT) - a pointer to the actual number of elements. This parameter is only required for PL/SQL binds.mode (IN) - the valid modes for this parameter are:OCI_DEFAULT. This is default mode.OCI_DATA_AT_EXEC. When this mode is selected, the value_sz parameter defines the maximum size of the data that can be ever provided at runtime. The application must be ready to provide the OCI library runtime IN data buffers at any time and any number of times. Runtime data is provided in one of the two ways:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -