/* * $Header: sqlapr.h 08-may-2002.12:13:40 apopat Exp $ */ /* Copyright (c) 1994, 2002, Oracle Corporation. All rights reserved. */ /* NAME sqlapr.h - SQLlib ANSI PRototypes DESCRIPTION Defines ANSI prototypes for externalized SQLLIB functions used in conjunction with OCI PUBLIC FUNCTION(S) sqllda: Get Logon Data Area for connection sqlld2: Logon Data area form 2 -- with host name sqlcda: Cursor data area from result set cursor sqlcur: PCC cursor from cursor data area NOTES MODIFIED (MM/DD/YY) apopat 05/08/02 - [2362423] MVS PE to make lines shorter than 79 apopat 09/20/00 - [1356099] Clarification on use of sqllda lvbcheng 01/16/97 - Fix for b2 jbasu 02/08/95 - Add new prototypes for thread entry pts jbasu 09/21/94 - Update sqlcda,sqlcur; move sqlrcn,sqlfcn to sqlefn.h jbasu 09/13/94 - Move XA prototypes to sqlefn.h jbasu 08/16/94 - use OCI cda_def type from ocidfn.h instead of sqlold jbasu 08/16/94 - Creation */ #ifndef SQLAPR # define SQLAPR #ifndef OCIDFN # include #endif #define SQLLDAGetCurrent(arg1, arg2) sqlldat(arg1, arg2) void sqllda( Lda_Def *lda ); /* LDA version 1. Creates an lda for use in OCI programs. ** Assumes that we are logged on through an embedded SQL statement. ** The lda is filled in using the connect information from the most ** recently executed embedded SQL statement. So the ONLY way to use ** sqllda() is to call sqllda() immediately after the ** EXEC SQL CONNECT... statement. */ void sqlldat(dvoid *sqluga, Lda_Def *lda ); /* Thread-safe version of sqllda. Takes an extra parameter sqluga, which * is the SQLLIB runtime context. */ /* **************************************************************************/ /* ** SQLLD2 ** "sqlld2" is an extended version of */ /* the sqllda function used to pass a connection to OCI. */ /* "sqlld2" can be used at any time to set up an "lda" for use */ /* by OCI. It does not need to called immediately after a SQL */ /* statement using the particular connection (typically the */ /* CONNECT itself). */ /****************************************************************************/ #define SQLDAGetNamed(arg1, arg2, arg3, arg4) sqlld2t(arg1, arg2, arg3, arg4) void sqlld2( Lda_Def *lda, text *hname, sb4 *hnamel ); /* LDa version 2. Creates an lda for use in OCI programs. The difference ** between sqlld2 and sqllda is that sqlld2 allows specification of ** the database host name to determine the connection to use in ** establishing the lda. ** hname - buffer containing the "logical" name for this connection. This ** would be the same identifier used in an AT clause in an ** embedded SQL statement. A null ptr indicates the "default" ** database used when there is no AT clause in a SQL statement. ** hnamel - length of buffer containing hname. */ void sqlld2t( dvoid *sqluga, Lda_Def *lda, text *hname, sb4 *hnamel ); /* Thread-safe version of sqlld2. Takes an extra parameter sqluga, which * is the SQLLIB runtime context. */ #define SQLCDAFromResultSetCursor(arg1, arg2, arg3, arg4) \ sqlcdat(arg1, arg2, arg3, arg4) void sqlcda( Cda_Def *cda, dvoid *cur, sword *retval ); /* * Name: sqlcda() - SQLlib result set cursor to a Cursor Data Area in OCI * Description: Translates a result set cursor in SQLLIB to a cursor data area * in OCI. Both of these structs should have been previously * created/allocated. * Input : cur - pointer to a result set cursor struct allocated thru Pro* * Output : cda - pointer to destination cursor data area in OCI * retval- Return value: 0 if no error,SQLLIB error number otherwise * * Notes: 1. In case of an error, the v2_rc and rc fields of the cda are * populated with the negative and positive error codes respectively. * 2. The 'rows processed count' in the cda structure is NOT populated * in this routine. This field is set to the correct value only * AFTER a fetch is done in OCI using the cda. Same * comment applies to other cda fields like the function type. * =========================================================================== */ void sqlcdat(dvoid *sqluga, Cda_Def *cda, dvoid *cur, sword *retval ); /* Thread-safe version of sqlcda(). Takes an extra parameter sqluga, which * is the SQLLIB runtime context. */ #define SQLCDAToResultSetCursor(SQL_SINGLE_RCTX, arg1, arg2, arg3) \ sqlcurt(arg1, arg2, arg3, arg4) void sqlcur( dvoid *cur, Cda_Def *cda, sword *retval ); /* * Name: sqlcur() - SQLlib result set CURsor from an oci cursor data area * Description: Translates a cursor data area in OCI to a result set cursor * in SQLLIB. Both of these structs should have been previously * created/allocated. * Input : cda - pointer to a cursor data area in OCI * Output : cur - pointer to a result set cursor struct (previously * allocated thru PCC) * retval - Return value: 0 if no error, error code otherwise. * Notes : The sqlca structure for PCC is NOT updated by this routine. This * structure gets populated (with error code, rows fetched count etc) * only AFTER a database operation is performed through PCC using the * translated cursor. *============================================================================ */ void sqlcurt(dvoid *sqluga, dvoid *cur, Cda_Def *cda, sword *retval ); /* Thread-safe version of sqlcur(). Takes an extra parameter sqluga, which * is the SQLLIB runtime context. */ #endif /* SQLAPR */