/**********************************************************************
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
**********************************************************************/
#ifndef ODBC_H_
#define ODBC_H_
/*
 * Translation unit: ODBC
 * Generated by CNPGEN(TANTAU CNPGEN TANTAU_AG_PC8 20001120.103031) on Mon Jan 31 11:14:08 2011
 * C++ constructs used
 * Header file for use with the CEE
 * Client functionality included
 */
#include <stdarg.h>
#include <cee.h>
#if CEE_H_VERSION != 19991123
#error Version mismatch CEE_H_VERSION != 19991123
#endif
#include <idltype.h>
#if IDL_TYPE_H_VERSION != 19971225
#error Version mismatch IDL_TYPE_H_VERSION != 19971225
#endif

/*****************
 * Module 'odbc' *
 *****************/

/***************************
 * Interface 'odbc_SQLSvc' *
 ***************************/
typedef IDL_Object odbc_SQLSvc;
struct odbc_SQLSvc_ParamError { /* Exception */ 
  IDL_string ParamDesc;
  IDL_PTR_PAD(ParamDesc, 1)
};
struct odbc_SQLSvc_SQLError { /* Exception */ 
  ERROR_DESC_LIST_def errorList;
};
/* Exception odbc_SQLSvc_SQLInvalidHandle has no members */
/* Exception odbc_SQLSvc_SQLNeedData has no members */
/* Exception odbc_SQLSvc_SQLNoDataFound has no members */
struct odbc_SQLSvc_InvalidUser { /* Exception */ 
  ERROR_DESC_LIST_def errorList;
};
struct odbc_SQLSvc_SQLRetryCompile { /* Exception */ 
  ERROR_DESC_LIST_def errorList;
};
/* Exception odbc_SQLSvc_InvalidConnection has no members */
struct odbc_SQLSvc_ProcessStopError { /* Exception */ 
  IDL_string ErrorText;
  IDL_PTR_PAD(ErrorText, 1)
};
/* Exception odbc_SQLSvc_SQLStillExecuting has no members */
struct odbc_SQLSvc_SQLQueryCancelled { /* Exception */ 
  IDL_long sqlcode;
};
/* Exception odbc_SQLSvc_CancelNotPossible has no members */
struct odbc_SQLSvc_CancelSQLError { /* Exception */ 
  IDL_long sqlcode;
};
/* Exception odbc_SQLSvc_TransactionError has no members */
/* Exception odbc_SQLSvc_StatisticsError has no members */
/* Exception odbc_SQLSvc_StatisticsAlreadyDisabled has no members */
/* Exception odbc_SQLSvc_StatisticsAlreadyEnabled has no members */
/* Exception odbc_SQLSvc_TraceError has no members */
/* Exception odbc_SQLSvc_TraceAlreadyDisabled has no members */
/* Exception odbc_SQLSvc_TraceAlreadyEnabled has no members */

/**********************************************
 * Operation 'odbc_SQLSvc_InitializeDialogue' *
 **********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
#define odbc_SQLSvc_InitializeDialogue_ParamError_exn_ 1
#define odbc_SQLSvc_InitializeDialogue_InvalidConnection_exn_ 2
#define odbc_SQLSvc_InitializeDialogue_SQLError_exn_ 3
#define odbc_SQLSvc_InitializeDialogue_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_InitializeDialogue_SQLNeedData_exn_ 5
#define odbc_SQLSvc_InitializeDialogue_InvalidUser_exn_ 6
/*
 * Exception union for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
struct odbc_SQLSvc_InitializeDialogue_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_InvalidUser InvalidUser;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_InitializeDialogue'
 */
#define odbc_SQLSvc_InitializeDialogue_ldx_ ((IDL_unsigned_long) 1)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_InitializeDialogue'
 */
#define odbc_SQLSvc_InitializeDialogue_osy_ ((IDL_long) 1595561093)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
typedef void (*odbc_SQLSvc_InitializeDialogue_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_InitializeDialogue_exc_ *exception_
  , /* In    */ const OUT_CONNECTION_CONTEXT_def *outContext
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
extern "C" void
odbc_SQLSvc_InitializeDialogue_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_InitializeDialogue_exc_ *exception_
  , /* In    */ const OUT_CONNECTION_CONTEXT_def *outContext
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
extern "C" CEE_status
odbc_SQLSvc_InitializeDialogue_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_InitializeDialogue_cct_ rtn_
  , /* In    */ const USER_DESC_def *userDesc
  , /* In    */ const CONNECTION_CONTEXT_def *inContext
  , /* In    */ DIALOGUE_ID_def dialogueId
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_InitializeDialogue'
 */
extern "C" void
odbc_SQLSvc_InitializeDialogue(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_InitializeDialogue_exc_ *exception_
  , /* In    */ const USER_DESC_def *userDesc
  , /* In    */ const CONNECTION_CONTEXT_def *inContext
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* Out   */ OUT_CONNECTION_CONTEXT_def *outContext
  );

/*********************************************
 * Operation 'odbc_SQLSvc_TerminateDialogue' *
 *********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
#define odbc_SQLSvc_TerminateDialogue_ParamError_exn_ 1
#define odbc_SQLSvc_TerminateDialogue_InvalidConnection_exn_ 2
#define odbc_SQLSvc_TerminateDialogue_SQLError_exn_ 3
/*
 * Exception union for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
struct odbc_SQLSvc_TerminateDialogue_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_TerminateDialogue'
 */
#define odbc_SQLSvc_TerminateDialogue_ldx_ ((IDL_unsigned_long) 2)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_TerminateDialogue'
 */
#define odbc_SQLSvc_TerminateDialogue_osy_ ((IDL_long) -1443365892)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
typedef void (*odbc_SQLSvc_TerminateDialogue_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_TerminateDialogue_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
extern "C" void
odbc_SQLSvc_TerminateDialogue_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_TerminateDialogue_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
extern "C" CEE_status
odbc_SQLSvc_TerminateDialogue_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_TerminateDialogue_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_TerminateDialogue'
 */
extern "C" void
odbc_SQLSvc_TerminateDialogue(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_TerminateDialogue_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );

/***************************************
 * Operation 'odbc_SQLSvc_MonitorCall' *
 ***************************************/
/*
 * Exception union for
 * operation 'odbc_SQLSvc_MonitorCall'
 */
struct odbc_SQLSvc_MonitorCall_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
};
/*
 * Local index for operation 'odbc_SQLSvc_MonitorCall'
 */
#define odbc_SQLSvc_MonitorCall_ldx_ ((IDL_unsigned_long) 3)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_MonitorCall'
 */
#define odbc_SQLSvc_MonitorCall_osy_ ((IDL_long) 1574086967)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_MonitorCall'
 */
typedef void (*odbc_SQLSvc_MonitorCall_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_MonitorCall_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_MonitorCall'
 */
extern "C" void
odbc_SQLSvc_MonitorCall_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_MonitorCall_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_MonitorCall'
 */
extern "C" CEE_status
odbc_SQLSvc_MonitorCall_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_MonitorCall_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_MonitorCall'
 */
extern "C" void
odbc_SQLSvc_MonitorCall(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_MonitorCall_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );

/***********************************************
 * Operation 'odbc_SQLSvc_SetConnectionOption' *
 ***********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
#define odbc_SQLSvc_SetConnectionOption_ParamError_exn_ 1
#define odbc_SQLSvc_SetConnectionOption_InvalidConnection_exn_ 2
#define odbc_SQLSvc_SetConnectionOption_SQLError_exn_ 3
#define odbc_SQLSvc_SetConnectionOption_SQLInvalidHandle_exn_ 4
/*
 * Exception union for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
struct odbc_SQLSvc_SetConnectionOption_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_SetConnectionOption'
 */
#define odbc_SQLSvc_SetConnectionOption_ldx_ ((IDL_unsigned_long) 4)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_SetConnectionOption'
 */
#define odbc_SQLSvc_SetConnectionOption_osy_ ((IDL_long) 915354899)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
typedef void (*odbc_SQLSvc_SetConnectionOption_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetConnectionOption_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
extern "C" void
odbc_SQLSvc_SetConnectionOption_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetConnectionOption_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
extern "C" CEE_status
odbc_SQLSvc_SetConnectionOption_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_SetConnectionOption_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short connectionOption
  , /* In    */ IDL_long optionValueNum
  , /* In    */ IDL_string optionValueStr
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_SetConnectionOption'
 */
extern "C" void
odbc_SQLSvc_SetConnectionOption(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_SetConnectionOption_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short connectionOption
  , /* In    */ IDL_long optionValueNum
  , /* In    */ IDL_string optionValueStr
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/******************************************
 * Operation 'odbc_SQLSvc_EndTransaction' *
 ******************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
#define odbc_SQLSvc_EndTransaction_ParamError_exn_ 1
#define odbc_SQLSvc_EndTransaction_InvalidConnection_exn_ 2
#define odbc_SQLSvc_EndTransaction_SQLError_exn_ 3
#define odbc_SQLSvc_EndTransaction_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_EndTransaction_TransactionError_exn_ 5
/*
 * Exception union for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
struct odbc_SQLSvc_EndTransaction_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_EndTransaction'
 */
#define odbc_SQLSvc_EndTransaction_ldx_ ((IDL_unsigned_long) 5)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_EndTransaction'
 */
#define odbc_SQLSvc_EndTransaction_osy_ ((IDL_long) 1774722963)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
typedef void (*odbc_SQLSvc_EndTransaction_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EndTransaction_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
extern "C" void
odbc_SQLSvc_EndTransaction_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EndTransaction_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
extern "C" CEE_status
odbc_SQLSvc_EndTransaction_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_EndTransaction_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_unsigned_short transactionOpt
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_EndTransaction'
 */
extern "C" void
odbc_SQLSvc_EndTransaction(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_EndTransaction_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_unsigned_short transactionOpt
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/***********************************
 * Operation 'odbc_SQLSvc_Prepare' *
 ***********************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_Prepare'
 */
#define odbc_SQLSvc_Prepare_ParamError_exn_ 1
#define odbc_SQLSvc_Prepare_InvalidConnection_exn_ 2
#define odbc_SQLSvc_Prepare_SQLError_exn_ 3
#define odbc_SQLSvc_Prepare_SQLStillExecuting_exn_ 4
#define odbc_SQLSvc_Prepare_SQLQueryCancelled_exn_ 5
#define odbc_SQLSvc_Prepare_TransactionError_exn_ 6
/*
 * Exception union for
 * operation 'odbc_SQLSvc_Prepare'
 */
struct odbc_SQLSvc_Prepare_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_Prepare'
 */
#define odbc_SQLSvc_Prepare_ldx_ ((IDL_unsigned_long) 6)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_Prepare'
 */
#define odbc_SQLSvc_Prepare_osy_ ((IDL_long) 1953051489)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_Prepare'
 */
typedef void (*odbc_SQLSvc_Prepare_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_Prepare_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *inputDesc
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_Prepare'
 */
extern "C" void
odbc_SQLSvc_Prepare_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_Prepare_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *inputDesc
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_Prepare'
 */
extern "C" CEE_status
odbc_SQLSvc_Prepare_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_Prepare_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_Prepare'
 */
extern "C" void
odbc_SQLSvc_Prepare(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_Prepare_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *estimatedCost
  , /* Out   */ SQLItemDescList_def *inputDesc
  , /* Out   */ SQLItemDescList_def *outputDesc
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/**************************************
 * Operation 'odbc_SQLSvc_ExecDirect' *
 **************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
#define odbc_SQLSvc_ExecDirect_ParamError_exn_ 1
#define odbc_SQLSvc_ExecDirect_InvalidConnection_exn_ 2
#define odbc_SQLSvc_ExecDirect_SQLError_exn_ 3
#define odbc_SQLSvc_ExecDirect_SQLStillExecuting_exn_ 4
#define odbc_SQLSvc_ExecDirect_SQLQueryCancelled_exn_ 5
#define odbc_SQLSvc_ExecDirect_TransactionError_exn_ 6
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
struct odbc_SQLSvc_ExecDirect_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ExecDirect'
 */
#define odbc_SQLSvc_ExecDirect_ldx_ ((IDL_unsigned_long) 7)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ExecDirect'
 */
#define odbc_SQLSvc_ExecDirect_osy_ ((IDL_long) -1127826003)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
typedef void (*odbc_SQLSvc_ExecDirect_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecDirect_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
extern "C" void
odbc_SQLSvc_ExecDirect_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecDirect_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
extern "C" CEE_status
odbc_SQLSvc_ExecDirect_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ExecDirect_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ExecDirect'
 */
extern "C" void
odbc_SQLSvc_ExecDirect(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ExecDirect_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *estimatedCost
  , /* Out   */ SQLItemDescList_def *outputDesc
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/************************************
 * Operation 'odbc_SQLSvc_ExecuteN' *
 ************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
#define odbc_SQLSvc_ExecuteN_ParamError_exn_ 1
#define odbc_SQLSvc_ExecuteN_InvalidConnection_exn_ 2
#define odbc_SQLSvc_ExecuteN_SQLError_exn_ 3
#define odbc_SQLSvc_ExecuteN_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_ExecuteN_SQLNeedData_exn_ 5
#define odbc_SQLSvc_ExecuteN_SQLRetryCompile_exn_ 6
#define odbc_SQLSvc_ExecuteN_SQLStillExecuting_exn_ 7
#define odbc_SQLSvc_ExecuteN_SQLQueryCancelled_exn_ 8
#define odbc_SQLSvc_ExecuteN_TransactionError_exn_ 9
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
struct odbc_SQLSvc_ExecuteN_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLRetryCompile SQLRetryCompile;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ExecuteN'
 */
#define odbc_SQLSvc_ExecuteN_ldx_ ((IDL_unsigned_long) 8)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ExecuteN'
 */
#define odbc_SQLSvc_ExecuteN_osy_ ((IDL_long) -1208314753)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
typedef void (*odbc_SQLSvc_ExecuteN_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteN_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
extern "C" void
odbc_SQLSvc_ExecuteN_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteN_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
extern "C" CEE_status
odbc_SQLSvc_ExecuteN_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ExecuteN_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQLValueList_def *inputValueList
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ExecuteN'
 */
extern "C" void
odbc_SQLSvc_ExecuteN(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ExecuteN_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQLValueList_def *inputValueList
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/**********************************
 * Operation 'odbc_SQLSvc_FetchN' *
 **********************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_FetchN'
 */
#define odbc_SQLSvc_FetchN_ParamError_exn_ 1
#define odbc_SQLSvc_FetchN_InvalidConnection_exn_ 2
#define odbc_SQLSvc_FetchN_SQLError_exn_ 3
#define odbc_SQLSvc_FetchN_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_FetchN_SQLNoDataFound_exn_ 5
#define odbc_SQLSvc_FetchN_SQLStillExecuting_exn_ 6
#define odbc_SQLSvc_FetchN_SQLQueryCancelled_exn_ 7
#define odbc_SQLSvc_FetchN_TransactionError_exn_ 8
/*
 * Exception union for
 * operation 'odbc_SQLSvc_FetchN'
 */
struct odbc_SQLSvc_FetchN_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_FetchN'
 */
#define odbc_SQLSvc_FetchN_ldx_ ((IDL_unsigned_long) 9)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_FetchN'
 */
#define odbc_SQLSvc_FetchN_osy_ ((IDL_long) 2128319734)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_FetchN'
 */
typedef void (*odbc_SQLSvc_FetchN_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchN_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQLValueList_def *outputValueList
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_FetchN'
 */
extern "C" void
odbc_SQLSvc_FetchN_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchN_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQLValueList_def *outputValueList
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_FetchN'
 */
extern "C" CEE_status
odbc_SQLSvc_FetchN_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_FetchN_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_FetchN'
 */
extern "C" void
odbc_SQLSvc_FetchN(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_FetchN_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ SQLValueList_def *outputValueList
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*********************************
 * Operation 'odbc_SQLSvc_Close' *
 *********************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_Close'
 */
#define odbc_SQLSvc_Close_ParamError_exn_ 1
#define odbc_SQLSvc_Close_InvalidConnection_exn_ 2
#define odbc_SQLSvc_Close_SQLError_exn_ 3
#define odbc_SQLSvc_Close_TransactionError_exn_ 4
/*
 * Exception union for
 * operation 'odbc_SQLSvc_Close'
 */
struct odbc_SQLSvc_Close_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_Close'
 */
#define odbc_SQLSvc_Close_ldx_ ((IDL_unsigned_long) 10)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_Close'
 */
#define odbc_SQLSvc_Close_osy_ ((IDL_long) 800237320)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_Close'
 */
typedef void (*odbc_SQLSvc_Close_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_Close_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_Close'
 */
extern "C" void
odbc_SQLSvc_Close_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_Close_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_Close'
 */
extern "C" CEE_status
odbc_SQLSvc_Close_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_Close_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_unsigned_short freeResourceOpt
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_Close'
 */
extern "C" void
odbc_SQLSvc_Close(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_Close_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_unsigned_short freeResourceOpt
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*******************************************
 * Operation 'odbc_SQLSvc_CancelStatement' *
 *******************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
#define odbc_SQLSvc_CancelStatement_ParamError_exn_ 1
#define odbc_SQLSvc_CancelStatement_InvalidConnection_exn_ 2
#define odbc_SQLSvc_CancelStatement_CancelSQLError_exn_ 3
#define odbc_SQLSvc_CancelStatement_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_CancelStatement_CancelNotPossible_exn_ 5
/*
 * Exception union for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
struct odbc_SQLSvc_CancelStatement_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_CancelSQLError CancelSQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_CancelStatement'
 */
#define odbc_SQLSvc_CancelStatement_ldx_ ((IDL_unsigned_long) 11)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_CancelStatement'
 */
#define odbc_SQLSvc_CancelStatement_osy_ ((IDL_long) -672172943)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
typedef void (*odbc_SQLSvc_CancelStatement_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_CancelStatement_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
extern "C" void
odbc_SQLSvc_CancelStatement_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_CancelStatement_exc_ *exception_
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
extern "C" CEE_status
odbc_SQLSvc_CancelStatement_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_CancelStatement_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_CancelStatement'
 */
extern "C" void
odbc_SQLSvc_CancelStatement(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_CancelStatement_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/***************************************
 * Operation 'odbc_SQLSvc_SetDiagInfo' *
 ***************************************/
/*
 * Exception union for
 * operation 'odbc_SQLSvc_SetDiagInfo'
 */
struct odbc_SQLSvc_SetDiagInfo_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
};
/*
 * Local index for operation 'odbc_SQLSvc_SetDiagInfo'
 */
#define odbc_SQLSvc_SetDiagInfo_ldx_ ((IDL_unsigned_long) 12)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_SetDiagInfo'
 */
#define odbc_SQLSvc_SetDiagInfo_osy_ ((IDL_long) 1012784524)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_SetDiagInfo'
 */
typedef void (*odbc_SQLSvc_SetDiagInfo_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetDiagInfo_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_SetDiagInfo'
 */
extern "C" void
odbc_SQLSvc_SetDiagInfo_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetDiagInfo_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_SetDiagInfo'
 */
extern "C" CEE_status
odbc_SQLSvc_SetDiagInfo_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_SetDiagInfo_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long DiagnosticFlag
  , /* In    */ IDL_string ClientPCName
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_SetDiagInfo'
 */
extern "C" void
odbc_SQLSvc_SetDiagInfo(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_SetDiagInfo_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long DiagnosticFlag
  , /* In    */ IDL_string ClientPCName
  );

/**************************************
 * Operation 'odbc_SQLSvc_StopServer' *
 **************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_StopServer'
 */
#define odbc_SQLSvc_StopServer_ParamError_exn_ 1
#define odbc_SQLSvc_StopServer_ProcessStopError_exn_ 2
/*
 * Exception union for
 * operation 'odbc_SQLSvc_StopServer'
 */
struct odbc_SQLSvc_StopServer_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_ProcessStopError ProcessStopError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_StopServer'
 */
#define odbc_SQLSvc_StopServer_ldx_ ((IDL_unsigned_long) 13)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_StopServer'
 */
#define odbc_SQLSvc_StopServer_osy_ ((IDL_long) 1843288558)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_StopServer'
 */
typedef void (*odbc_SQLSvc_StopServer_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_StopServer_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_StopServer'
 */
extern "C" void
odbc_SQLSvc_StopServer_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_StopServer_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_StopServer'
 */
extern "C" CEE_status
odbc_SQLSvc_StopServer_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_StopServer_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long StopType
  , /* In    */ IDL_string ReasonText
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_StopServer'
 */
extern "C" void
odbc_SQLSvc_StopServer(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_StopServer_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long StopType
  , /* In    */ IDL_string ReasonText
  );

/****************************************
 * Operation 'odbc_SQLSvc_SetTestPoint' *
 ****************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
#define odbc_SQLSvc_SetTestPoint_ParamError_exn_ 1
#define odbc_SQLSvc_SetTestPoint_InvalidConnection_exn_ 2
/*
 * Exception union for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
struct odbc_SQLSvc_SetTestPoint_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_SetTestPoint'
 */
#define odbc_SQLSvc_SetTestPoint_ldx_ ((IDL_unsigned_long) 14)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_SetTestPoint'
 */
#define odbc_SQLSvc_SetTestPoint_osy_ ((IDL_long) -1315988903)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
typedef void (*odbc_SQLSvc_SetTestPoint_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetTestPoint_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
extern "C" void
odbc_SQLSvc_SetTestPoint_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_SetTestPoint_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
extern "C" CEE_status
odbc_SQLSvc_SetTestPoint_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_SetTestPoint_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short TestPoint
  , /* In    */ IDL_unsigned_long Operation
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_SetTestPoint'
 */
extern "C" void
odbc_SQLSvc_SetTestPoint(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_SetTestPoint_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short TestPoint
  , /* In    */ IDL_unsigned_long Operation
  );

/******************************************
 * Operation 'odbc_SQLSvc_ClearTestPoint' *
 ******************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
#define odbc_SQLSvc_ClearTestPoint_ParamError_exn_ 1
#define odbc_SQLSvc_ClearTestPoint_InvalidConnection_exn_ 2
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
struct odbc_SQLSvc_ClearTestPoint_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ClearTestPoint'
 */
#define odbc_SQLSvc_ClearTestPoint_ldx_ ((IDL_unsigned_long) 15)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ClearTestPoint'
 */
#define odbc_SQLSvc_ClearTestPoint_osy_ ((IDL_long) -1810813871)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
typedef void (*odbc_SQLSvc_ClearTestPoint_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ClearTestPoint_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
extern "C" void
odbc_SQLSvc_ClearTestPoint_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ClearTestPoint_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
extern "C" CEE_status
odbc_SQLSvc_ClearTestPoint_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ClearTestPoint_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short TestPoint
  , /* In    */ IDL_unsigned_short Operation
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ClearTestPoint'
 */
extern "C" void
odbc_SQLSvc_ClearTestPoint(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ClearTestPoint_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_short TestPoint
  , /* In    */ IDL_unsigned_short Operation
  );

/******************************************
 * Operation 'odbc_SQLSvc_GetSQLCatalogs' *
 ******************************************/
typedef IDL_char odbc_SQLSvc_GetSQLCatalogs_tableTypeList_str_[129];

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
#define odbc_SQLSvc_GetSQLCatalogs_ParamError_exn_ 1
#define odbc_SQLSvc_GetSQLCatalogs_InvalidConnection_exn_ 2
#define odbc_SQLSvc_GetSQLCatalogs_SQLError_exn_ 3
#define odbc_SQLSvc_GetSQLCatalogs_SQLInvalidHandle_exn_ 4
/*
 * Exception union for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
struct odbc_SQLSvc_GetSQLCatalogs_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
#define odbc_SQLSvc_GetSQLCatalogs_ldx_ ((IDL_unsigned_long) 16)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
#define odbc_SQLSvc_GetSQLCatalogs_osy_ ((IDL_long) -1555142877)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
typedef void (*odbc_SQLSvc_GetSQLCatalogs_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_GetSQLCatalogs_exc_ *exception_
  , /* In    */ const IDL_char *catStmtLabel
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
extern "C" void
odbc_SQLSvc_GetSQLCatalogs_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_GetSQLCatalogs_exc_ *exception_
  , /* In    */ const IDL_char *catStmtLabel
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
extern "C" CEE_status
odbc_SQLSvc_GetSQLCatalogs_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_GetSQLCatalogs_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_short APIType
  , /* In    */ const IDL_char *catalogNm
  , /* In    */ const IDL_char *schemaNm
  , /* In    */ const IDL_char *tableNm
  , /* In    */ const IDL_char *tableTypeList
  , /* In    */ const IDL_char *columnNm
  , /* In    */ IDL_long columnType
  , /* In    */ IDL_long rowIdScope
  , /* In    */ IDL_long nullable
  , /* In    */ IDL_long uniqueness
  , /* In    */ IDL_long accuracy
  , /* In    */ IDL_short sqlType
  , /* In    */ IDL_unsigned_long metadataId
  , /* In    */ const IDL_char *fkcatalogNm
  , /* In    */ const IDL_char *fkschemaNm
  , /* In    */ const IDL_char *fktableNm
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_GetSQLCatalogs'
 */
extern "C" void
odbc_SQLSvc_GetSQLCatalogs(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_GetSQLCatalogs_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_short APIType
  , /* In    */ const IDL_char *catalogNm
  , /* In    */ const IDL_char *schemaNm
  , /* In    */ const IDL_char *tableNm
  , /* In    */ const IDL_char *tableTypeList
  , /* In    */ const IDL_char *columnNm
  , /* In    */ IDL_long columnType
  , /* In    */ IDL_long rowIdScope
  , /* In    */ IDL_long nullable
  , /* In    */ IDL_long uniqueness
  , /* In    */ IDL_long accuracy
  , /* In    */ IDL_short sqlType
  , /* In    */ IDL_unsigned_long metadataId
  , /* In    */ const IDL_char *fkcatalogNm
  , /* In    */ const IDL_char *fkschemaNm
  , /* In    */ const IDL_char *fktableNm
  , /* Out   */ IDL_char *catStmtLabel
  , /* Out   */ SQLItemDescList_def *outputDesc
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/****************************************
 * Operation 'odbc_SQLSvc_GeneralParam' *
 ****************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
#define odbc_SQLSvc_GeneralParam_ParamError_exn_ 1
/*
 * Exception union for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
struct odbc_SQLSvc_GeneralParam_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_GeneralParam'
 */
#define odbc_SQLSvc_GeneralParam_ldx_ ((IDL_unsigned_long) 17)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_GeneralParam'
 */
#define odbc_SQLSvc_GeneralParam_osy_ ((IDL_long) -836905121)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
typedef void (*odbc_SQLSvc_GeneralParam_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_GeneralParam_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
extern "C" void
odbc_SQLSvc_GeneralParam_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_GeneralParam_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
extern "C" CEE_status
odbc_SQLSvc_GeneralParam_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_GeneralParam_cct_ rtn_
  , /* In    */ const GEN_ParamList_def *paramList
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_GeneralParam'
 */
extern "C" void
odbc_SQLSvc_GeneralParam(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_GeneralParam_exc_ *exception_
  , /* In    */ const GEN_ParamList_def *paramList
  );

/*************************************
 * Operation 'odbc_SQLSvc_FetchPerf' *
 *************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
#define odbc_SQLSvc_FetchPerf_ParamError_exn_ 1
#define odbc_SQLSvc_FetchPerf_InvalidConnection_exn_ 2
#define odbc_SQLSvc_FetchPerf_SQLError_exn_ 3
#define odbc_SQLSvc_FetchPerf_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_FetchPerf_SQLNoDataFound_exn_ 5
#define odbc_SQLSvc_FetchPerf_SQLStillExecuting_exn_ 6
#define odbc_SQLSvc_FetchPerf_SQLQueryCancelled_exn_ 7
#define odbc_SQLSvc_FetchPerf_TransactionError_exn_ 8
/*
 * Exception union for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
struct odbc_SQLSvc_FetchPerf_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_FetchPerf'
 */
#define odbc_SQLSvc_FetchPerf_ldx_ ((IDL_unsigned_long) 18)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_FetchPerf'
 */
#define odbc_SQLSvc_FetchPerf_osy_ ((IDL_long) 1446035703)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
typedef void (*odbc_SQLSvc_FetchPerf_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchPerf_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQL_DataValue_def *outputDataValue
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
extern "C" void
odbc_SQLSvc_FetchPerf_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchPerf_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQL_DataValue_def *outputDataValue
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
extern "C" CEE_status
odbc_SQLSvc_FetchPerf_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_FetchPerf_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_FetchPerf'
 */
extern "C" void
odbc_SQLSvc_FetchPerf(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_FetchPerf_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ SQL_DataValue_def *outputDataValue
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/***************************************
 * Operation 'odbc_SQLSvc_FetchRowset' *
 ***************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
#define odbc_SQLSvc_FetchRowset_ParamError_exn_ 1
#define odbc_SQLSvc_FetchRowset_InvalidConnection_exn_ 2
#define odbc_SQLSvc_FetchRowset_SQLError_exn_ 3
#define odbc_SQLSvc_FetchRowset_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_FetchRowset_SQLNoDataFound_exn_ 5
#define odbc_SQLSvc_FetchRowset_SQLStillExecuting_exn_ 6
#define odbc_SQLSvc_FetchRowset_SQLQueryCancelled_exn_ 7
#define odbc_SQLSvc_FetchRowset_TransactionError_exn_ 8
/*
 * Exception union for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
struct odbc_SQLSvc_FetchRowset_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_FetchRowset'
 */
#define odbc_SQLSvc_FetchRowset_ldx_ ((IDL_unsigned_long) 19)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_FetchRowset'
 */
#define odbc_SQLSvc_FetchRowset_osy_ ((IDL_long) -1542318395)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
typedef void (*odbc_SQLSvc_FetchRowset_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchRowset_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQL_DataValue_def *outputDataValue
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
extern "C" void
odbc_SQLSvc_FetchRowset_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_FetchRowset_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const SQL_DataValue_def *outputDataValue
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
extern "C" CEE_status
odbc_SQLSvc_FetchRowset_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_FetchRowset_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_FetchRowset'
 */
extern "C" void
odbc_SQLSvc_FetchRowset(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_FetchRowset_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_long maxRowCnt
  , /* In    */ IDL_long maxRowLen
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ SQL_DataValue_def *outputDataValue
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*****************************************
 * Operation 'odbc_SQLSvc_PrepareRowset' *
 *****************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
#define odbc_SQLSvc_PrepareRowset_ParamError_exn_ 1
#define odbc_SQLSvc_PrepareRowset_InvalidConnection_exn_ 2
#define odbc_SQLSvc_PrepareRowset_SQLError_exn_ 3
#define odbc_SQLSvc_PrepareRowset_SQLStillExecuting_exn_ 4
#define odbc_SQLSvc_PrepareRowset_SQLQueryCancelled_exn_ 5
#define odbc_SQLSvc_PrepareRowset_TransactionError_exn_ 6
/*
 * Exception union for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
struct odbc_SQLSvc_PrepareRowset_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_PrepareRowset'
 */
#define odbc_SQLSvc_PrepareRowset_ldx_ ((IDL_unsigned_long) 20)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_PrepareRowset'
 */
#define odbc_SQLSvc_PrepareRowset_osy_ ((IDL_long) 2039310938)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
typedef void (*odbc_SQLSvc_PrepareRowset_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_PrepareRowset_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *inputDesc
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
extern "C" void
odbc_SQLSvc_PrepareRowset_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_PrepareRowset_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *inputDesc
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
extern "C" CEE_status
odbc_SQLSvc_PrepareRowset_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_PrepareRowset_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* In    */ IDL_long maxRowsetSize
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_PrepareRowset'
 */
extern "C" void
odbc_SQLSvc_PrepareRowset(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_PrepareRowset_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* In    */ IDL_long maxRowsetSize
  , /* Out   */ IDL_long *estimatedCost
  , /* Out   */ SQLItemDescList_def *inputDesc
  , /* Out   */ SQLItemDescList_def *outputDesc
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/********************************************
 * Operation 'odbc_SQLSvc_ExecDirectRowset' *
 ********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
#define odbc_SQLSvc_ExecDirectRowset_ParamError_exn_ 1
#define odbc_SQLSvc_ExecDirectRowset_InvalidConnection_exn_ 2
#define odbc_SQLSvc_ExecDirectRowset_SQLError_exn_ 3
#define odbc_SQLSvc_ExecDirectRowset_SQLStillExecuting_exn_ 4
#define odbc_SQLSvc_ExecDirectRowset_SQLQueryCancelled_exn_ 5
#define odbc_SQLSvc_ExecDirectRowset_TransactionError_exn_ 6
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
struct odbc_SQLSvc_ExecDirectRowset_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ExecDirectRowset'
 */
#define odbc_SQLSvc_ExecDirectRowset_ldx_ ((IDL_unsigned_long) 21)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ExecDirectRowset'
 */
#define odbc_SQLSvc_ExecDirectRowset_osy_ ((IDL_long) -2082854665)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
typedef void (*odbc_SQLSvc_ExecDirectRowset_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecDirectRowset_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
extern "C" void
odbc_SQLSvc_ExecDirectRowset_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecDirectRowset_exc_ *exception_
  , /* In    */ IDL_long estimatedCost
  , /* In    */ const SQLItemDescList_def *outputDesc
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
extern "C" CEE_status
odbc_SQLSvc_ExecDirectRowset_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ExecDirectRowset_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* In    */ IDL_long maxRowsetSize
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ExecDirectRowset'
 */
extern "C" void
odbc_SQLSvc_ExecDirectRowset(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ExecDirectRowset_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ const IDL_char *stmtExplainLabel
  , /* In    */ IDL_short stmtType
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_string sqlString
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* In    */ IDL_long maxRowsetSize
  , /* Out   */ IDL_long *estimatedCost
  , /* Out   */ SQLItemDescList_def *outputDesc
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*****************************************
 * Operation 'odbc_SQLSvc_ExecuteRowset' *
 *****************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
#define odbc_SQLSvc_ExecuteRowset_ParamError_exn_ 1
#define odbc_SQLSvc_ExecuteRowset_InvalidConnection_exn_ 2
#define odbc_SQLSvc_ExecuteRowset_SQLError_exn_ 3
#define odbc_SQLSvc_ExecuteRowset_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_ExecuteRowset_SQLNeedData_exn_ 5
#define odbc_SQLSvc_ExecuteRowset_SQLRetryCompile_exn_ 6
#define odbc_SQLSvc_ExecuteRowset_SQLStillExecuting_exn_ 7
#define odbc_SQLSvc_ExecuteRowset_SQLQueryCancelled_exn_ 8
#define odbc_SQLSvc_ExecuteRowset_TransactionError_exn_ 9
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
struct odbc_SQLSvc_ExecuteRowset_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLRetryCompile SQLRetryCompile;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ExecuteRowset'
 */
#define odbc_SQLSvc_ExecuteRowset_ldx_ ((IDL_unsigned_long) 22)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ExecuteRowset'
 */
#define odbc_SQLSvc_ExecuteRowset_osy_ ((IDL_long) -1654576776)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
typedef void (*odbc_SQLSvc_ExecuteRowset_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteRowset_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
extern "C" void
odbc_SQLSvc_ExecuteRowset_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteRowset_exc_ *exception_
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
extern "C" CEE_status
odbc_SQLSvc_ExecuteRowset_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ExecuteRowset_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQL_DataValue_def *inputDataValue
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ExecuteRowset'
 */
extern "C" void
odbc_SQLSvc_ExecuteRowset(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ExecuteRowset_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQL_DataValue_def *inputDataValue
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*********************************************
 * Operation 'odbc_SQLSvc_EnableServerTrace' *
 *********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
#define odbc_SQLSvc_EnableServerTrace_ParamError_exn_ 1
#define odbc_SQLSvc_EnableServerTrace_TraceError_exn_ 2
#define odbc_SQLSvc_EnableServerTrace_TraceAlreadyEnabled_exn_ 3
/*
 * Exception union for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
struct odbc_SQLSvc_EnableServerTrace_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_EnableServerTrace'
 */
#define odbc_SQLSvc_EnableServerTrace_ldx_ ((IDL_unsigned_long) 23)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_EnableServerTrace'
 */
#define odbc_SQLSvc_EnableServerTrace_osy_ ((IDL_long) 1936849292)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
typedef void (*odbc_SQLSvc_EnableServerTrace_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EnableServerTrace_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
extern "C" void
odbc_SQLSvc_EnableServerTrace_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EnableServerTrace_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
extern "C" CEE_status
odbc_SQLSvc_EnableServerTrace_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_EnableServerTrace_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long TraceType
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_EnableServerTrace'
 */
extern "C" void
odbc_SQLSvc_EnableServerTrace(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_EnableServerTrace_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long TraceType
  );

/**********************************************
 * Operation 'odbc_SQLSvc_DisableServerTrace' *
 **********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
#define odbc_SQLSvc_DisableServerTrace_ParamError_exn_ 1
#define odbc_SQLSvc_DisableServerTrace_TraceError_exn_ 2
#define odbc_SQLSvc_DisableServerTrace_TraceAlreadyDisabled_exn_ 3
/*
 * Exception union for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
struct odbc_SQLSvc_DisableServerTrace_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_DisableServerTrace'
 */
#define odbc_SQLSvc_DisableServerTrace_ldx_ ((IDL_unsigned_long) 24)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_DisableServerTrace'
 */
#define odbc_SQLSvc_DisableServerTrace_osy_ ((IDL_long) -928228045)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
typedef void (*odbc_SQLSvc_DisableServerTrace_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_DisableServerTrace_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
extern "C" void
odbc_SQLSvc_DisableServerTrace_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_DisableServerTrace_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
extern "C" CEE_status
odbc_SQLSvc_DisableServerTrace_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_DisableServerTrace_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long TraceType
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_DisableServerTrace'
 */
extern "C" void
odbc_SQLSvc_DisableServerTrace(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_DisableServerTrace_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long TraceType
  );

/**************************************************
 * Operation 'odbc_SQLSvc_EnableServerStatistics' *
 **************************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
#define odbc_SQLSvc_EnableServerStatistics_ParamError_exn_ 1
#define odbc_SQLSvc_EnableServerStatistics_StatisticsError_exn_ 2
#define odbc_SQLSvc_EnableServerStatistics_StatisticsAlreadyEnabled_exn_ 3
/*
 * Exception union for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
struct odbc_SQLSvc_EnableServerStatistics_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_EnableServerStatistics'
 */
#define odbc_SQLSvc_EnableServerStatistics_ldx_ ((IDL_unsigned_long) 25)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_EnableServerStatistics'
 */
#define odbc_SQLSvc_EnableServerStatistics_osy_ ((IDL_long) 1488487883)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
typedef void (*odbc_SQLSvc_EnableServerStatistics_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EnableServerStatistics_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
extern "C" void
odbc_SQLSvc_EnableServerStatistics_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_EnableServerStatistics_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
extern "C" CEE_status
odbc_SQLSvc_EnableServerStatistics_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_EnableServerStatistics_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long StatisticsType
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_EnableServerStatistics'
 */
extern "C" void
odbc_SQLSvc_EnableServerStatistics(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_EnableServerStatistics_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ IDL_long StatisticsType
  );

/***************************************************
 * Operation 'odbc_SQLSvc_DisableServerStatistics' *
 ***************************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
#define odbc_SQLSvc_DisableServerStatistics_ParamError_exn_ 1
#define odbc_SQLSvc_DisableServerStatistics_StatisticsError_exn_ 2
#define odbc_SQLSvc_DisableServerStatistics_StatisticsAlreadyDisabled_exn_ 3
/*
 * Exception union for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
struct odbc_SQLSvc_DisableServerStatistics_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_DisableServerStatistics'
 */
#define odbc_SQLSvc_DisableServerStatistics_ldx_ ((IDL_unsigned_long) 26)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_DisableServerStatistics'
 */
#define odbc_SQLSvc_DisableServerStatistics_osy_ ((IDL_long) 1444861809)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
typedef void (*odbc_SQLSvc_DisableServerStatistics_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_DisableServerStatistics_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
extern "C" void
odbc_SQLSvc_DisableServerStatistics_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_DisableServerStatistics_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
extern "C" CEE_status
odbc_SQLSvc_DisableServerStatistics_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_DisableServerStatistics_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_DisableServerStatistics'
 */
extern "C" void
odbc_SQLSvc_DisableServerStatistics(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_DisableServerStatistics_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  );

/***********************************************
 * Operation 'odbc_SQLSvc_UpdateServerContext' *
 ***********************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
#define odbc_SQLSvc_UpdateServerContext_ParamError_exn_ 1
#define odbc_SQLSvc_UpdateServerContext_SQLError_exn_ 2
/*
 * Exception union for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
struct odbc_SQLSvc_UpdateServerContext_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_UpdateServerContext'
 */
#define odbc_SQLSvc_UpdateServerContext_ldx_ ((IDL_unsigned_long) 27)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_UpdateServerContext'
 */
#define odbc_SQLSvc_UpdateServerContext_osy_ ((IDL_long) 180274091)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
typedef void (*odbc_SQLSvc_UpdateServerContext_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_UpdateServerContext_exc_ *exception_
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
extern "C" void
odbc_SQLSvc_UpdateServerContext_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_UpdateServerContext_exc_ *exception_
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
extern "C" CEE_status
odbc_SQLSvc_UpdateServerContext_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_UpdateServerContext_cct_ rtn_
  , /* In    */ const SRVR_CONTEXT_def *srvrContext
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_UpdateServerContext'
 */
extern "C" void
odbc_SQLSvc_UpdateServerContext(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_UpdateServerContext_exc_ *exception_
  , /* In    */ const SRVR_CONTEXT_def *srvrContext
  );

/***************************************
 * Operation 'odbc_SQLSvc_ExecuteCall' *
 ***************************************/

/*
 * Exception number constants for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
#define odbc_SQLSvc_ExecuteCall_ParamError_exn_ 1
#define odbc_SQLSvc_ExecuteCall_InvalidConnection_exn_ 2
#define odbc_SQLSvc_ExecuteCall_SQLError_exn_ 3
#define odbc_SQLSvc_ExecuteCall_SQLInvalidHandle_exn_ 4
#define odbc_SQLSvc_ExecuteCall_SQLNeedData_exn_ 5
#define odbc_SQLSvc_ExecuteCall_SQLRetryCompile_exn_ 6
#define odbc_SQLSvc_ExecuteCall_SQLStillExecuting_exn_ 7
#define odbc_SQLSvc_ExecuteCall_SQLQueryCancelled_exn_ 8
#define odbc_SQLSvc_ExecuteCall_TransactionError_exn_ 9
/*
 * Exception union for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
struct odbc_SQLSvc_ExecuteCall_exc_ {
  IDL_long exception_nr;
  IDL_long exception_detail;
  union {
    odbc_SQLSvc_ParamError ParamError;
    odbc_SQLSvc_SQLError SQLError;
    odbc_SQLSvc_SQLRetryCompile SQLRetryCompile;
    odbc_SQLSvc_SQLQueryCancelled SQLQueryCancelled;
  } u;
};
/*
 * Local index for operation 'odbc_SQLSvc_ExecuteCall'
 */
#define odbc_SQLSvc_ExecuteCall_ldx_ ((IDL_unsigned_long) 28)
/*
 * Operation synopsis for operation 'odbc_SQLSvc_ExecuteCall'
 */
#define odbc_SQLSvc_ExecuteCall_osy_ ((IDL_long) -1549026474)
/*
 * Call Completion function pointer type for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
typedef void (*odbc_SQLSvc_ExecuteCall_cct_) (
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteCall_exc_ *exception_
  , /* In    */ const SQLValueList_def *outputValueList
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Call Completion function prototype for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
extern "C" void
odbc_SQLSvc_ExecuteCall_ccf_(
    /* In    */ CEE_tag_def cmptag_
  , /* In    */ const odbc_SQLSvc_ExecuteCall_exc_ *exception_
  , /* In    */ const SQLValueList_def *outputValueList
  , /* In    */ IDL_long rowsAffected
  , /* In    */ const ERROR_DESC_LIST_def *sqlWarning
  );
/*
 * Asynchronous object call for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
extern "C" CEE_status
odbc_SQLSvc_ExecuteCall_pst_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ odbc_SQLSvc_ExecuteCall_cct_ rtn_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQLValueList_def *inputValueList
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  );
/*
 * Synchronous object call for
 * operation 'odbc_SQLSvc_ExecuteCall'
 */
extern "C" void
odbc_SQLSvc_ExecuteCall(
    /* In    */ const CEE_handle_def *ph_
  , /* Out   */ odbc_SQLSvc_ExecuteCall_exc_ *exception_
  , /* In    */ DIALOGUE_ID_def dialogueId
  , /* In    */ const IDL_char *stmtLabel
  , /* In    */ IDL_string cursorName
  , /* In    */ IDL_short sqlStmtType
  , /* In    */ IDL_long inputRowCnt
  , /* In    */ const SQLValueList_def *inputValueList
  , /* In    */ IDL_short sqlAsyncEnable
  , /* In    */ IDL_long queryTimeout
  , /* Out   */ SQLValueList_def *outputValueList
  , /* Out   */ IDL_long *rowsAffected
  , /* Out   */ ERROR_DESC_LIST_def *sqlWarning
  );

/*
 * CIN description of interface 'odbc_SQLSvc'
 */
static char odbc_SQLSvc_ici_[]  = {
    '!','1','9','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c',':','1','.','0','2','8','+','1','5','9','5','5','6',
    '1','0','9','3','+','1','8','+','I','n','i','t','i','a','l','i',
    'z','e','D','i','a','l','o','g','u','e','(','4','+','8','+','u',
    's','e','r','D','e','s','c','>','b','5','+','h','5','+','c','0',
    '+','H','d','0','+','d','0','+','c','0','+','H','9','+','i','n',
    'C','o','n','t','e','x','t','>','b','2','9','+','d','5','1','2',
    '+','d','5','1','2','+','d','5','1','2','+','d','5','1','2','+',
    'd','5','1','2','+','I','I','K','K','K','I','I','F','K','a','1',
    '+','6','1','+','C','d','0','+','K','K','K','I','I','I','a','1',
    '+','5','1','+','C','d','0','+','c','0','+','b','4','+','I','I',
    'I','K','K','K','a','1','+','1','0','1','+','C','d','0','+','1',
    '0','+','d','i','a','l','o','g','u','e','I','d','>','F','1','0',
    '+','o','u','t','C','o','n','t','e','x','t','<','b','1','0','+',
    'c','0','+','b','4','+','I','I','I','K','I','K','a','1','+','6',
    '1','+','C','d','5','1','2','+','d','5','1','2','+','K','K','K',
    'd','0','+','6','+','3','0','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','P','a','r','a','m','E','r','r',
    'o','r',':','1','.','0','g','1','+','d','0','+','3','7','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','I',
    'n','v','a','l','i','d','C','o','n','n','e','c','t','i','o','n',
    ':','1','.','0','g','0','+','2','8','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','E','r','r',
    'o','r',':','1','.','0','g','1','+','c','0','+','b','1','4','+',
    'F','F','F','d','5','+','d','0','+','F','F','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','d','0','+',
    '3','6','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','S','Q','L','I','n','v','a','l','i','d','H','a','n',
    'd','l','e',':','1','.','0','g','0','+','3','1','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L',
    'N','e','e','d','D','a','t','a',':','1','.','0','g','0','+','3',
    '1','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','I','n','v','a','l','i','d','U','s','e','r',':','1','.',
    '0','g','1','+','c','0','+','b','1','4','+','F','F','F','d','5',
    '+','d','0','+','F','F','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','0','+','1','4','4',
    '3','3','6','5','8','9','2','-','1','7','+','T','e','r','m','i',
    'n','a','t','e','D','i','a','l','o','g','u','e','(','1','+','1',
    '0','+','d','i','a','l','o','g','u','e','I','d','>','F','3','+',
    '3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','P','a','r','a','m','E','r','r','o','r',':','1','.',
    '0','g','1','+','d','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l','i',
    'd','C','o','n','n','e','c','t','i','o','n',':','1','.','0','g',
    '0','+','2','8','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1','.',
    '0','g','1','+','c','0','+','b','1','4','+','F','F','F','d','5',
    '+','d','0','+','F','F','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','0','+','1','5','7',
    '4','0','8','6','9','6','7','+','1','1','+','M','o','n','i','t',
    'o','r','C','a','l','l','(','1','+','1','0','+','d','i','a','l',
    'o','g','u','e','I','d','>','F','0','+','0','+','9','1','5','3',
    '5','4','8','9','9','+','1','9','+','S','e','t','C','o','n','n',
    'e','c','t','i','o','n','O','p','t','i','o','n','(','5','+','1',
    '0','+','d','i','a','l','o','g','u','e','I','d','>','F','1','6',
    '+','c','o','n','n','e','c','t','i','o','n','O','p','t','i','o',
    'n','>','I','1','4','+','o','p','t','i','o','n','V','a','l','u',
    'e','N','u','m','>','F','1','4','+','o','p','t','i','o','n','V',
    'a','l','u','e','S','t','r','>','d','0','+','1','0','+','s','q',
    'l','W','a','r','n','i','n','g','<','c','0','+','b','1','4','+',
    'F','F','F','d','5','+','d','0','+','F','F','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','d','0','+',
    '4','+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','P','a','r','a','m','E','r','r','o','r',':',
    '1','.','0','g','1','+','d','0','+','3','7','+','I','D','L',':',
    'o','d','b','c','/','S','Q','L','S','v','c','/','I','n','v','a',
    'l','i','d','C','o','n','n','e','c','t','i','o','n',':','1','.',
    '0','g','0','+','2','8','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',':',
    '1','.','0','g','1','+','c','0','+','b','1','4','+','F','F','F',
    'd','5','+','d','0','+','F','F','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','3','6','+',
    'I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/',
    'S','Q','L','I','n','v','a','l','i','d','H','a','n','d','l','e',
    ':','1','.','0','g','0','+','0','+','1','7','7','4','7','2','2',
    '9','6','3','+','1','4','+','E','n','d','T','r','a','n','s','a',
    'c','t','i','o','n','(','3','+','1','0','+','d','i','a','l','o',
    'g','u','e','I','d','>','F','1','4','+','t','r','a','n','s','a',
    'c','t','i','o','n','O','p','t','>','J','1','0','+','s','q','l',
    'W','a','r','n','i','n','g','<','c','0','+','b','1','4','+','F',
    'F','F','d','5','+','d','0','+','F','F','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','d','0','+','5',
    '+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','P','a','r','a','m','E','r','r','o','r',':','1',
    '.','0','g','1','+','d','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l',
    'i','d','C','o','n','n','e','c','t','i','o','n',':','1','.','0',
    'g','0','+','2','8','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1',
    '.','0','g','1','+','c','0','+','b','1','4','+','F','F','F','d',
    '5','+','d','0','+','F','F','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','3','6','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','I','n','v','a','l','i','d','H','a','n','d','l','e',':',
    '1','.','0','g','0','+','3','6','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','T','r','a','n','s','a','c',
    't','i','o','n','E','r','r','o','r',':','1','.','0','g','0','+',
    '0','+','1','9','5','3','0','5','1','4','8','9','+','7','+','P',
    'r','e','p','a','r','e','(','1','1','+','1','0','+','d','i','a',
    'l','o','g','u','e','I','d','>','F','9','+','s','t','m','t','L',
    'a','b','e','l','>','d','5','1','2','+','1','6','+','s','t','m',
    't','E','x','p','l','a','i','n','L','a','b','e','l','>','d','5',
    '1','2','+','8','+','s','t','m','t','T','y','p','e','>','I','9',
    '+','s','q','l','S','t','r','i','n','g','>','d','0','+','1','4',
    '+','s','q','l','A','s','y','n','c','E','n','a','b','l','e','>',
    'I','1','2','+','q','u','e','r','y','T','i','m','e','o','u','t',
    '>','F','1','3','+','e','s','t','i','m','a','t','e','d','C','o',
    's','t','<','F','9','+','i','n','p','u','t','D','e','s','c','<',
    'c','0','+','b','1','9','+','F','F','F','F','I','I','B','d','5',
    '1','3','+','B','F','I','F','F','d','5','1','3','+','d','5','1',
    '3','+','d','5','1','3','+','d','5','1','3','+','F','F','1','0',
    '+','o','u','t','p','u','t','D','e','s','c','<','c','0','+','b',
    '1','9','+','F','F','F','F','I','I','B','d','5','1','3','+','B',
    'F','I','F','F','d','5','1','3','+','d','5','1','3','+','d','5',
    '1','3','+','d','5','1','3','+','F','F','1','0','+','s','q','l',
    'W','a','r','n','i','n','g','<','c','0','+','b','1','4','+','F',
    'F','F','d','5','+','d','0','+','F','F','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','d','0','+','6',
    '+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','P','a','r','a','m','E','r','r','o','r',':','1',
    '.','0','g','1','+','d','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l',
    'i','d','C','o','n','n','e','c','t','i','o','n',':','1','.','0',
    'g','0','+','2','8','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1',
    '.','0','g','1','+','c','0','+','b','1','4','+','F','F','F','d',
    '5','+','d','0','+','F','F','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','3','7','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','S','t','i','l','l','E','x','e','c','u','t','i','n','g',
    ':','1','.','0','g','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','Q','u','e',
    'r','y','C','a','n','c','e','l','l','e','d',':','1','.','0','g',
    '1','+','F','3','6','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','T','r','a','n','s','a','c','t','i','o',
    'n','E','r','r','o','r',':','1','.','0','g','0','+','0','+','1',
    '1','2','7','8','2','6','0','0','3','-','1','0','+','E','x','e',
    'c','D','i','r','e','c','t','(','1','3','+','1','0','+','d','i',
    'a','l','o','g','u','e','I','d','>','F','9','+','s','t','m','t',
    'L','a','b','e','l','>','d','5','1','2','+','1','0','+','c','u',
    'r','s','o','r','N','a','m','e','>','d','0','+','1','6','+','s',
    't','m','t','E','x','p','l','a','i','n','L','a','b','e','l','>',
    'd','5','1','2','+','8','+','s','t','m','t','T','y','p','e','>',
    'I','1','1','+','s','q','l','S','t','m','t','T','y','p','e','>',
    'I','9','+','s','q','l','S','t','r','i','n','g','>','d','0','+',
    '1','4','+','s','q','l','A','s','y','n','c','E','n','a','b','l',
    'e','>','I','1','2','+','q','u','e','r','y','T','i','m','e','o',
    'u','t','>','F','1','3','+','e','s','t','i','m','a','t','e','d',
    'C','o','s','t','<','F','1','0','+','o','u','t','p','u','t','D',
    'e','s','c','<','c','0','+','b','1','9','+','F','F','F','F','I',
    'I','B','d','5','1','3','+','B','F','I','F','F','d','5','1','3',
    '+','d','5','1','3','+','d','5','1','3','+','d','5','1','3','+',
    'F','F','1','2','+','r','o','w','s','A','f','f','e','c','t','e',
    'd','<','F','1','0','+','s','q','l','W','a','r','n','i','n','g',
    '<','c','0','+','b','1','4','+','F','F','F','d','5','+','d','0',
    '+','F','F','d','0','+','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','6','+','3','0','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','P','a','r',
    'a','m','E','r','r','o','r',':','1','.','0','g','1','+','d','0',
    '+','3','7','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','I','n','v','a','l','i','d','C','o','n','n','e',
    'c','t','i','o','n',':','1','.','0','g','0','+','2','8','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','E','r','r','o','r',':','1','.','0','g','1','+','c','0',
    '+','b','1','4','+','F','F','F','d','5','+','d','0','+','F','F',
    'd','0','+','d','0','+','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','3','7','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','S','Q','L','S','t','i','l','l',
    'E','x','e','c','u','t','i','n','g',':','1','.','0','g','0','+',
    '3','7','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','S','Q','L','Q','u','e','r','y','C','a','n','c','e',
    'l','l','e','d',':','1','.','0','g','1','+','F','3','6','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','T',
    'r','a','n','s','a','c','t','i','o','n','E','r','r','o','r',':',
    '1','.','0','g','0','+','0','+','1','2','0','8','3','1','4','7',
    '5','3','-','8','+','E','x','e','c','u','t','e','N','(','1','0',
    '+','1','0','+','d','i','a','l','o','g','u','e','I','d','>','F',
    '9','+','s','t','m','t','L','a','b','e','l','>','d','5','1','2',
    '+','1','0','+','c','u','r','s','o','r','N','a','m','e','>','d',
    '0','+','1','1','+','s','q','l','S','t','m','t','T','y','p','e',
    '>','I','1','1','+','i','n','p','u','t','R','o','w','C','n','t',
    '>','F','1','4','+','i','n','p','u','t','V','a','l','u','e','L',
    'i','s','t','>','c','0','+','b','4','+','F','I','c','0','+','H',
    'F','1','4','+','s','q','l','A','s','y','n','c','E','n','a','b',
    'l','e','>','I','1','2','+','q','u','e','r','y','T','i','m','e',
    'o','u','t','>','F','1','2','+','r','o','w','s','A','f','f','e',
    'c','t','e','d','<','F','1','0','+','s','q','l','W','a','r','n',
    'i','n','g','<','c','0','+','b','1','4','+','F','F','F','d','5',
    '+','d','0','+','F','F','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','9','+','3','0','+',
    'I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/',
    'P','a','r','a','m','E','r','r','o','r',':','1','.','0','g','1',
    '+','d','0','+','3','7','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','I','n','v','a','l','i','d','C','o',
    'n','n','e','c','t','i','o','n',':','1','.','0','g','0','+','2',
    '8','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','S','Q','L','E','r','r','o','r',':','1','.','0','g','1',
    '+','c','0','+','b','1','4','+','F','F','F','d','5','+','d','0',
    '+','F','F','d','0','+','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','3','6','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','S','Q','L','I','n',
    'v','a','l','i','d','H','a','n','d','l','e',':','1','.','0','g',
    '0','+','3','1','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','S','Q','L','N','e','e','d','D','a','t','a',
    ':','1','.','0','g','0','+','3','5','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','R','e','t',
    'r','y','C','o','m','p','i','l','e',':','1','.','0','g','1','+',
    'c','0','+','b','1','4','+','F','F','F','d','5','+','d','0','+',
    'F','F','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','S','t','i',
    'l','l','E','x','e','c','u','t','i','n','g',':','1','.','0','g',
    '0','+','3','7','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','S','Q','L','Q','u','e','r','y','C','a','n',
    'c','e','l','l','e','d',':','1','.','0','g','1','+','F','3','6',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','T','r','a','n','s','a','c','t','i','o','n','E','r','r','o',
    'r',':','1','.','0','g','0','+','0','+','2','1','2','8','3','1',
    '9','7','3','4','+','6','+','F','e','t','c','h','N','(','9','+',
    '1','0','+','d','i','a','l','o','g','u','e','I','d','>','F','9',
    '+','s','t','m','t','L','a','b','e','l','>','d','5','1','2','+',
    '9','+','m','a','x','R','o','w','C','n','t','>','F','9','+','m',
    'a','x','R','o','w','L','e','n','>','F','1','4','+','s','q','l',
    'A','s','y','n','c','E','n','a','b','l','e','>','I','1','2','+',
    'q','u','e','r','y','T','i','m','e','o','u','t','>','F','1','2',
    '+','r','o','w','s','A','f','f','e','c','t','e','d','<','F','1',
    '5','+','o','u','t','p','u','t','V','a','l','u','e','L','i','s',
    't','<','c','0','+','b','4','+','F','I','c','0','+','H','F','1',
    '0','+','s','q','l','W','a','r','n','i','n','g','<','c','0','+',
    'b','1','4','+','F','F','F','d','5','+','d','0','+','F','F','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','8','+','3','0','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','P','a','r','a','m','E','r',
    'r','o','r',':','1','.','0','g','1','+','d','0','+','3','7','+',
    'I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/',
    'I','n','v','a','l','i','d','C','o','n','n','e','c','t','i','o',
    'n',':','1','.','0','g','0','+','2','8','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','S','Q','L','E','r',
    'r','o','r',':','1','.','0','g','1','+','c','0','+','b','1','4',
    '+','F','F','F','d','5','+','d','0','+','F','F','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','3','6','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','S','Q','L','I','n','v','a','l','i','d','H','a',
    'n','d','l','e',':','1','.','0','g','0','+','3','4','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q',
    'L','N','o','D','a','t','a','F','o','u','n','d',':','1','.','0',
    'g','0','+','3','7','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','S','t','i','l','l','E','x',
    'e','c','u','t','i','n','g',':','1','.','0','g','0','+','3','7',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','S','Q','L','Q','u','e','r','y','C','a','n','c','e','l','l',
    'e','d',':','1','.','0','g','1','+','F','3','6','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','T','r','a',
    'n','s','a','c','t','i','o','n','E','r','r','o','r',':','1','.',
    '0','g','0','+','0','+','8','0','0','2','3','7','3','2','0','+',
    '5','+','C','l','o','s','e','(','5','+','1','0','+','d','i','a',
    'l','o','g','u','e','I','d','>','F','9','+','s','t','m','t','L',
    'a','b','e','l','>','d','5','1','2','+','1','5','+','f','r','e',
    'e','R','e','s','o','u','r','c','e','O','p','t','>','J','1','2',
    '+','r','o','w','s','A','f','f','e','c','t','e','d','<','F','1',
    '0','+','s','q','l','W','a','r','n','i','n','g','<','c','0','+',
    'b','1','4','+','F','F','F','d','5','+','d','0','+','F','F','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','4','+','3','0','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','P','a','r','a','m','E','r',
    'r','o','r',':','1','.','0','g','1','+','d','0','+','3','7','+',
    'I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/',
    'I','n','v','a','l','i','d','C','o','n','n','e','c','t','i','o',
    'n',':','1','.','0','g','0','+','2','8','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','S','Q','L','E','r',
    'r','o','r',':','1','.','0','g','1','+','c','0','+','b','1','4',
    '+','F','F','F','d','5','+','d','0','+','F','F','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','3','6','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','T','r','a','n','s','a','c','t','i','o','n','E',
    'r','r','o','r',':','1','.','0','g','0','+','0','+','6','7','2',
    '1','7','2','9','4','3','-','1','5','+','C','a','n','c','e','l',
    'S','t','a','t','e','m','e','n','t','(','3','+','1','0','+','d',
    'i','a','l','o','g','u','e','I','d','>','F','9','+','s','t','m',
    't','L','a','b','e','l','>','d','5','1','2','+','1','0','+','s',
    'q','l','W','a','r','n','i','n','g','<','c','0','+','b','1','4',
    '+','F','F','F','d','5','+','d','0','+','F','F','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','5','+','3','0','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','P','a','r','a','m','E','r','r','o','r',
    ':','1','.','0','g','1','+','d','0','+','3','7','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','I','n','v',
    'a','l','i','d','C','o','n','n','e','c','t','i','o','n',':','1',
    '.','0','g','0','+','3','4','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','C','a','n','c','e','l','S','Q',
    'L','E','r','r','o','r',':','1','.','0','g','1','+','F','3','6',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','S','Q','L','I','n','v','a','l','i','d','H','a','n','d','l',
    'e',':','1','.','0','g','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','C','a','n','c','e',
    'l','N','o','t','P','o','s','s','i','b','l','e',':','1','.','0',
    'g','0','+','0','+','1','0','1','2','7','8','4','5','2','4','+',
    '1','1','+','S','e','t','D','i','a','g','I','n','f','o','(','3',
    '+','1','0','+','d','i','a','l','o','g','u','e','I','d','>','F',
    '1','4','+','D','i','a','g','n','o','s','t','i','c','F','l','a',
    'g','>','F','1','2','+','C','l','i','e','n','t','P','C','N','a',
    'm','e','>','d','0','+','0','+','0','+','1','8','4','3','2','8',
    '8','5','5','8','+','1','0','+','S','t','o','p','S','e','r','v',
    'e','r','(','3','+','1','0','+','d','i','a','l','o','g','u','e',
    'I','d','>','F','8','+','S','t','o','p','T','y','p','e','>','F',
    '1','0','+','R','e','a','s','o','n','T','e','x','t','>','d','0',
    '+','2','+','3','0','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','P','a','r','a','m','E','r','r','o','r',
    ':','1','.','0','g','1','+','d','0','+','3','6','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','P','r','o',
    'c','e','s','s','S','t','o','p','E','r','r','o','r',':','1','.',
    '0','g','1','+','d','0','+','0','+','1','3','1','5','9','8','8',
    '9','0','3','-','1','2','+','S','e','t','T','e','s','t','P','o',
    'i','n','t','(','3','+','1','0','+','d','i','a','l','o','g','u',
    'e','I','d','>','F','9','+','T','e','s','t','P','o','i','n','t',
    '>','I','9','+','O','p','e','r','a','t','i','o','n','>','K','2',
    '+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','P','a','r','a','m','E','r','r','o','r',':','1',
    '.','0','g','1','+','d','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l',
    'i','d','C','o','n','n','e','c','t','i','o','n',':','1','.','0',
    'g','0','+','0','+','1','8','1','0','8','1','3','8','7','1','-',
    '1','4','+','C','l','e','a','r','T','e','s','t','P','o','i','n',
    't','(','3','+','1','0','+','d','i','a','l','o','g','u','e','I',
    'd','>','F','9','+','T','e','s','t','P','o','i','n','t','>','I',
    '9','+','O','p','e','r','a','t','i','o','n','>','J','2','+','3',
    '0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','P','a','r','a','m','E','r','r','o','r',':','1','.','0',
    'g','1','+','d','0','+','3','7','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','I','n','v','a','l','i','d',
    'C','o','n','n','e','c','t','i','o','n',':','1','.','0','g','0',
    '+','0','+','1','5','5','5','1','4','2','8','7','7','-','1','4',
    '+','G','e','t','S','Q','L','C','a','t','a','l','o','g','s','(',
    '2','1','+','1','0','+','d','i','a','l','o','g','u','e','I','d',
    '>','F','9','+','s','t','m','t','L','a','b','e','l','>','d','5',
    '1','2','+','7','+','A','P','I','T','y','p','e','>','I','9','+',
    'c','a','t','a','l','o','g','N','m','>','d','5','1','2','+','8',
    '+','s','c','h','e','m','a','N','m','>','d','5','1','2','+','7',
    '+','t','a','b','l','e','N','m','>','d','5','1','2','+','1','3',
    '+','t','a','b','l','e','T','y','p','e','L','i','s','t','>','d',
    '1','2','8','+','8','+','c','o','l','u','m','n','N','m','>','d',
    '5','1','2','+','1','0','+','c','o','l','u','m','n','T','y','p',
    'e','>','F','1','0','+','r','o','w','I','d','S','c','o','p','e',
    '>','F','8','+','n','u','l','l','a','b','l','e','>','F','1','0',
    '+','u','n','i','q','u','e','n','e','s','s','>','F','8','+','a',
    'c','c','u','r','a','c','y','>','F','7','+','s','q','l','T','y',
    'p','e','>','I','1','0','+','m','e','t','a','d','a','t','a','I',
    'd','>','K','1','1','+','f','k','c','a','t','a','l','o','g','N',
    'm','>','d','5','1','2','+','1','0','+','f','k','s','c','h','e',
    'm','a','N','m','>','d','5','1','2','+','9','+','f','k','t','a',
    'b','l','e','N','m','>','d','5','1','2','+','1','2','+','c','a',
    't','S','t','m','t','L','a','b','e','l','<','d','5','1','2','+',
    '1','0','+','o','u','t','p','u','t','D','e','s','c','<','c','0',
    '+','b','1','9','+','F','F','F','F','I','I','B','d','5','1','3',
    '+','B','F','I','F','F','d','5','1','3','+','d','5','1','3','+',
    'd','5','1','3','+','d','5','1','3','+','F','F','1','0','+','s',
    'q','l','W','a','r','n','i','n','g','<','c','0','+','b','1','4',
    '+','F','F','F','d','5','+','d','0','+','F','F','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','4','+','3','0','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','P','a','r','a','m','E','r','r','o','r',
    ':','1','.','0','g','1','+','d','0','+','3','7','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','I','n','v',
    'a','l','i','d','C','o','n','n','e','c','t','i','o','n',':','1',
    '.','0','g','0','+','2','8','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',
    ':','1','.','0','g','1','+','c','0','+','b','1','4','+','F','F',
    'F','d','5','+','d','0','+','F','F','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','3','6',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','S','Q','L','I','n','v','a','l','i','d','H','a','n','d','l',
    'e',':','1','.','0','g','0','+','0','+','8','3','6','9','0','5',
    '1','2','1','-','1','2','+','G','e','n','e','r','a','l','P','a',
    'r','a','m','(','1','+','9','+','p','a','r','a','m','L','i','s',
    't','>','c','0','+','b','3','+','I','I','c','0','+','H','1','+',
    '3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','P','a','r','a','m','E','r','r','o','r',':','1','.',
    '0','g','1','+','d','0','+','0','+','1','4','4','6','0','3','5',
    '7','0','3','+','9','+','F','e','t','c','h','P','e','r','f','(',
    '9','+','1','0','+','d','i','a','l','o','g','u','e','I','d','>',
    'F','9','+','s','t','m','t','L','a','b','e','l','>','d','5','1',
    '2','+','9','+','m','a','x','R','o','w','C','n','t','>','F','9',
    '+','m','a','x','R','o','w','L','e','n','>','F','1','4','+','s',
    'q','l','A','s','y','n','c','E','n','a','b','l','e','>','I','1',
    '2','+','q','u','e','r','y','T','i','m','e','o','u','t','>','F',
    '1','2','+','r','o','w','s','A','f','f','e','c','t','e','d','<',
    'F','1','5','+','o','u','t','p','u','t','D','a','t','a','V','a',
    'l','u','e','<','c','0','+','H','1','0','+','s','q','l','W','a',
    'r','n','i','n','g','<','c','0','+','b','1','4','+','F','F','F',
    'd','5','+','d','0','+','F','F','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','8','+','3',
    '0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','P','a','r','a','m','E','r','r','o','r',':','1','.','0',
    'g','1','+','d','0','+','3','7','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','I','n','v','a','l','i','d',
    'C','o','n','n','e','c','t','i','o','n',':','1','.','0','g','0',
    '+','2','8','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','S','Q','L','E','r','r','o','r',':','1','.','0',
    'g','1','+','c','0','+','b','1','4','+','F','F','F','d','5','+',
    'd','0','+','F','F','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','3','6','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L',
    'I','n','v','a','l','i','d','H','a','n','d','l','e',':','1','.',
    '0','g','0','+','3','4','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','S','Q','L','N','o','D','a','t','a',
    'F','o','u','n','d',':','1','.','0','g','0','+','3','7','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','S','t','i','l','l','E','x','e','c','u','t','i','n','g',
    ':','1','.','0','g','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','Q','u','e',
    'r','y','C','a','n','c','e','l','l','e','d',':','1','.','0','g',
    '1','+','F','3','6','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','T','r','a','n','s','a','c','t','i','o',
    'n','E','r','r','o','r',':','1','.','0','g','0','+','0','+','1',
    '5','4','2','3','1','8','3','9','5','-','1','1','+','F','e','t',
    'c','h','R','o','w','s','e','t','(','9','+','1','0','+','d','i',
    'a','l','o','g','u','e','I','d','>','F','9','+','s','t','m','t',
    'L','a','b','e','l','>','d','5','1','2','+','9','+','m','a','x',
    'R','o','w','C','n','t','>','F','9','+','m','a','x','R','o','w',
    'L','e','n','>','F','1','4','+','s','q','l','A','s','y','n','c',
    'E','n','a','b','l','e','>','I','1','2','+','q','u','e','r','y',
    'T','i','m','e','o','u','t','>','F','1','2','+','r','o','w','s',
    'A','f','f','e','c','t','e','d','<','F','1','5','+','o','u','t',
    'p','u','t','D','a','t','a','V','a','l','u','e','<','c','0','+',
    'H','1','0','+','s','q','l','W','a','r','n','i','n','g','<','c',
    '0','+','b','1','4','+','F','F','F','d','5','+','d','0','+','F',
    'F','d','0','+','d','0','+','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','8','+','3','0','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','P','a','r','a','m',
    'E','r','r','o','r',':','1','.','0','g','1','+','d','0','+','3',
    '7','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','I','n','v','a','l','i','d','C','o','n','n','e','c','t',
    'i','o','n',':','1','.','0','g','0','+','2','8','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L',
    'E','r','r','o','r',':','1','.','0','g','1','+','c','0','+','b',
    '1','4','+','F','F','F','d','5','+','d','0','+','F','F','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','d','0','+',
    'd','0','+','3','6','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','I','n','v','a','l','i','d',
    'H','a','n','d','l','e',':','1','.','0','g','0','+','3','4','+',
    'I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/',
    'S','Q','L','N','o','D','a','t','a','F','o','u','n','d',':','1',
    '.','0','g','0','+','3','7','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','S','Q','L','S','t','i','l','l',
    'E','x','e','c','u','t','i','n','g',':','1','.','0','g','0','+',
    '3','7','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','S','Q','L','Q','u','e','r','y','C','a','n','c','e',
    'l','l','e','d',':','1','.','0','g','1','+','F','3','6','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','T',
    'r','a','n','s','a','c','t','i','o','n','E','r','r','o','r',':',
    '1','.','0','g','0','+','0','+','2','0','3','9','3','1','0','9',
    '3','8','+','1','3','+','P','r','e','p','a','r','e','R','o','w',
    's','e','t','(','1','3','+','1','0','+','d','i','a','l','o','g',
    'u','e','I','d','>','F','9','+','s','t','m','t','L','a','b','e',
    'l','>','d','5','1','2','+','1','6','+','s','t','m','t','E','x',
    'p','l','a','i','n','L','a','b','e','l','>','d','5','1','2','+',
    '8','+','s','t','m','t','T','y','p','e','>','I','1','1','+','s',
    'q','l','S','t','m','t','T','y','p','e','>','I','9','+','s','q',
    'l','S','t','r','i','n','g','>','d','0','+','1','4','+','s','q',
    'l','A','s','y','n','c','E','n','a','b','l','e','>','I','1','2',
    '+','q','u','e','r','y','T','i','m','e','o','u','t','>','F','1',
    '3','+','m','a','x','R','o','w','s','e','t','S','i','z','e','>',
    'F','1','3','+','e','s','t','i','m','a','t','e','d','C','o','s',
    't','<','F','9','+','i','n','p','u','t','D','e','s','c','<','c',
    '0','+','b','1','9','+','F','F','F','F','I','I','B','d','5','1',
    '3','+','B','F','I','F','F','d','5','1','3','+','d','5','1','3',
    '+','d','5','1','3','+','d','5','1','3','+','F','F','1','0','+',
    'o','u','t','p','u','t','D','e','s','c','<','c','0','+','b','1',
    '9','+','F','F','F','F','I','I','B','d','5','1','3','+','B','F',
    'I','F','F','d','5','1','3','+','d','5','1','3','+','d','5','1',
    '3','+','d','5','1','3','+','F','F','1','0','+','s','q','l','W',
    'a','r','n','i','n','g','<','c','0','+','b','1','4','+','F','F',
    'F','d','5','+','d','0','+','F','F','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','6','+',
    '3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','P','a','r','a','m','E','r','r','o','r',':','1','.',
    '0','g','1','+','d','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l','i',
    'd','C','o','n','n','e','c','t','i','o','n',':','1','.','0','g',
    '0','+','2','8','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1','.',
    '0','g','1','+','c','0','+','b','1','4','+','F','F','F','d','5',
    '+','d','0','+','F','F','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','3','7','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q',
    'L','S','t','i','l','l','E','x','e','c','u','t','i','n','g',':',
    '1','.','0','g','0','+','3','7','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','S','Q','L','Q','u','e','r',
    'y','C','a','n','c','e','l','l','e','d',':','1','.','0','g','1',
    '+','F','3','6','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','T','r','a','n','s','a','c','t','i','o','n',
    'E','r','r','o','r',':','1','.','0','g','0','+','0','+','2','0',
    '8','2','8','5','4','6','6','5','-','1','6','+','E','x','e','c',
    'D','i','r','e','c','t','R','o','w','s','e','t','(','1','4','+',
    '1','0','+','d','i','a','l','o','g','u','e','I','d','>','F','9',
    '+','s','t','m','t','L','a','b','e','l','>','d','5','1','2','+',
    '1','0','+','c','u','r','s','o','r','N','a','m','e','>','d','0',
    '+','1','6','+','s','t','m','t','E','x','p','l','a','i','n','L',
    'a','b','e','l','>','d','5','1','2','+','8','+','s','t','m','t',
    'T','y','p','e','>','I','1','1','+','s','q','l','S','t','m','t',
    'T','y','p','e','>','I','9','+','s','q','l','S','t','r','i','n',
    'g','>','d','0','+','1','4','+','s','q','l','A','s','y','n','c',
    'E','n','a','b','l','e','>','I','1','2','+','q','u','e','r','y',
    'T','i','m','e','o','u','t','>','F','1','3','+','m','a','x','R',
    'o','w','s','e','t','S','i','z','e','>','F','1','3','+','e','s',
    't','i','m','a','t','e','d','C','o','s','t','<','F','1','0','+',
    'o','u','t','p','u','t','D','e','s','c','<','c','0','+','b','1',
    '9','+','F','F','F','F','I','I','B','d','5','1','3','+','B','F',
    'I','F','F','d','5','1','3','+','d','5','1','3','+','d','5','1',
    '3','+','d','5','1','3','+','F','F','1','2','+','r','o','w','s',
    'A','f','f','e','c','t','e','d','<','F','1','0','+','s','q','l',
    'W','a','r','n','i','n','g','<','c','0','+','b','1','4','+','F',
    'F','F','d','5','+','d','0','+','F','F','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','d','0','+','6',
    '+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','P','a','r','a','m','E','r','r','o','r',':','1',
    '.','0','g','1','+','d','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l',
    'i','d','C','o','n','n','e','c','t','i','o','n',':','1','.','0',
    'g','0','+','2','8','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1',
    '.','0','g','1','+','c','0','+','b','1','4','+','F','F','F','d',
    '5','+','d','0','+','F','F','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','3','7','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','S','t','i','l','l','E','x','e','c','u','t','i','n','g',
    ':','1','.','0','g','0','+','3','7','+','I','D','L',':','o','d',
    'b','c','/','S','Q','L','S','v','c','/','S','Q','L','Q','u','e',
    'r','y','C','a','n','c','e','l','l','e','d',':','1','.','0','g',
    '1','+','F','3','6','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','T','r','a','n','s','a','c','t','i','o',
    'n','E','r','r','o','r',':','1','.','0','g','0','+','0','+','1',
    '6','5','4','5','7','6','7','7','6','-','1','3','+','E','x','e',
    'c','u','t','e','R','o','w','s','e','t','(','1','0','+','1','0',
    '+','d','i','a','l','o','g','u','e','I','d','>','F','9','+','s',
    't','m','t','L','a','b','e','l','>','d','5','1','2','+','1','0',
    '+','c','u','r','s','o','r','N','a','m','e','>','d','0','+','1',
    '1','+','s','q','l','S','t','m','t','T','y','p','e','>','I','1',
    '1','+','i','n','p','u','t','R','o','w','C','n','t','>','F','1',
    '4','+','i','n','p','u','t','D','a','t','a','V','a','l','u','e',
    '>','c','0','+','H','1','4','+','s','q','l','A','s','y','n','c',
    'E','n','a','b','l','e','>','I','1','2','+','q','u','e','r','y',
    'T','i','m','e','o','u','t','>','F','1','2','+','r','o','w','s',
    'A','f','f','e','c','t','e','d','<','F','1','0','+','s','q','l',
    'W','a','r','n','i','n','g','<','c','0','+','b','1','4','+','F',
    'F','F','d','5','+','d','0','+','F','F','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','d','0','+','9',
    '+','3','0','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','P','a','r','a','m','E','r','r','o','r',':','1',
    '.','0','g','1','+','d','0','+','3','7','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','I','n','v','a','l',
    'i','d','C','o','n','n','e','c','t','i','o','n',':','1','.','0',
    'g','0','+','2','8','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','S','Q','L','E','r','r','o','r',':','1',
    '.','0','g','1','+','c','0','+','b','1','4','+','F','F','F','d',
    '5','+','d','0','+','F','F','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','d','0','+','3','6','+','I',
    'D','L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S',
    'Q','L','I','n','v','a','l','i','d','H','a','n','d','l','e',':',
    '1','.','0','g','0','+','3','1','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','S','Q','L','N','e','e','d',
    'D','a','t','a',':','1','.','0','g','0','+','3','5','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q',
    'L','R','e','t','r','y','C','o','m','p','i','l','e',':','1','.',
    '0','g','1','+','c','0','+','b','1','4','+','F','F','F','d','5',
    '+','d','0','+','F','F','d','0','+','d','0','+','d','0','+','d',
    '0','+','d','0','+','d','0','+','d','0','+','3','7','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q',
    'L','S','t','i','l','l','E','x','e','c','u','t','i','n','g',':',
    '1','.','0','g','0','+','3','7','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','S','Q','L','Q','u','e','r',
    'y','C','a','n','c','e','l','l','e','d',':','1','.','0','g','1',
    '+','F','3','6','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','T','r','a','n','s','a','c','t','i','o','n',
    'E','r','r','o','r',':','1','.','0','g','0','+','0','+','1','9',
    '3','6','8','4','9','2','9','2','+','1','7','+','E','n','a','b',
    'l','e','S','e','r','v','e','r','T','r','a','c','e','(','2','+',
    '1','0','+','d','i','a','l','o','g','u','e','I','d','>','F','9',
    '+','T','r','a','c','e','T','y','p','e','>','F','3','+','3','0',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','P','a','r','a','m','E','r','r','o','r',':','1','.','0','g',
    '1','+','d','0','+','3','0','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','T','r','a','c','e','E','r','r',
    'o','r',':','1','.','0','g','0','+','3','9','+','I','D','L',':',
    'o','d','b','c','/','S','Q','L','S','v','c','/','T','r','a','c',
    'e','A','l','r','e','a','d','y','E','n','a','b','l','e','d',':',
    '1','.','0','g','0','+','0','+','9','2','8','2','2','8','0','4',
    '5','-','1','8','+','D','i','s','a','b','l','e','S','e','r','v',
    'e','r','T','r','a','c','e','(','2','+','1','0','+','d','i','a',
    'l','o','g','u','e','I','d','>','F','9','+','T','r','a','c','e',
    'T','y','p','e','>','F','3','+','3','0','+','I','D','L',':','o',
    'd','b','c','/','S','Q','L','S','v','c','/','P','a','r','a','m',
    'E','r','r','o','r',':','1','.','0','g','1','+','d','0','+','3',
    '0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','T','r','a','c','e','E','r','r','o','r',':','1','.','0',
    'g','0','+','4','0','+','I','D','L',':','o','d','b','c','/','S',
    'Q','L','S','v','c','/','T','r','a','c','e','A','l','r','e','a',
    'd','y','D','i','s','a','b','l','e','d',':','1','.','0','g','0',
    '+','0','+','1','4','8','8','4','8','7','8','8','3','+','2','2',
    '+','E','n','a','b','l','e','S','e','r','v','e','r','S','t','a',
    't','i','s','t','i','c','s','(','2','+','1','0','+','d','i','a',
    'l','o','g','u','e','I','d','>','F','1','4','+','S','t','a','t',
    'i','s','t','i','c','s','T','y','p','e','>','F','3','+','3','0',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','P','a','r','a','m','E','r','r','o','r',':','1','.','0','g',
    '1','+','d','0','+','3','5','+','I','D','L',':','o','d','b','c',
    '/','S','Q','L','S','v','c','/','S','t','a','t','i','s','t','i',
    'c','s','E','r','r','o','r',':','1','.','0','g','0','+','4','4',
    '+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v','c',
    '/','S','t','a','t','i','s','t','i','c','s','A','l','r','e','a',
    'd','y','E','n','a','b','l','e','d',':','1','.','0','g','0','+',
    '0','+','1','4','4','4','8','6','1','8','0','9','+','2','3','+',
    'D','i','s','a','b','l','e','S','e','r','v','e','r','S','t','a',
    't','i','s','t','i','c','s','(','1','+','1','0','+','d','i','a',
    'l','o','g','u','e','I','d','>','F','3','+','3','0','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','P','a',
    'r','a','m','E','r','r','o','r',':','1','.','0','g','1','+','d',
    '0','+','3','5','+','I','D','L',':','o','d','b','c','/','S','Q',
    'L','S','v','c','/','S','t','a','t','i','s','t','i','c','s','E',
    'r','r','o','r',':','1','.','0','g','0','+','4','5','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','t',
    'a','t','i','s','t','i','c','s','A','l','r','e','a','d','y','D',
    'i','s','a','b','l','e','d',':','1','.','0','g','0','+','0','+',
    '1','8','0','2','7','4','0','9','1','+','1','9','+','U','p','d',
    'a','t','e','S','e','r','v','e','r','C','o','n','t','e','x','t',
    '(','1','+','1','1','+','s','r','v','r','C','o','n','t','e','x',
    't','>','b','4','+','G','G','c','0','+','b','4','+','d','5','1',
    '2','+','G','d','0','+','F','c','0','+','b','3','+','F','F','d',
    '0','+','2','+','3','0','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','P','a','r','a','m','E','r','r','o',
    'r',':','1','.','0','g','1','+','d','0','+','2','8','+','I','D',
    'L',':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q',
    'L','E','r','r','o','r',':','1','.','0','g','1','+','c','0','+',
    'b','1','4','+','F','F','F','d','5','+','d','0','+','F','F','d',
    '0','+','d','0','+','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','0','+','1','5','4','9','0','2','6','4','7','4',
    '-','1','1','+','E','x','e','c','u','t','e','C','a','l','l','(',
    '1','1','+','1','0','+','d','i','a','l','o','g','u','e','I','d',
    '>','F','9','+','s','t','m','t','L','a','b','e','l','>','d','5',
    '1','2','+','1','0','+','c','u','r','s','o','r','N','a','m','e',
    '>','d','0','+','1','1','+','s','q','l','S','t','m','t','T','y',
    'p','e','>','I','1','1','+','i','n','p','u','t','R','o','w','C',
    'n','t','>','F','1','4','+','i','n','p','u','t','V','a','l','u',
    'e','L','i','s','t','>','c','0','+','b','4','+','F','I','c','0',
    '+','H','F','1','4','+','s','q','l','A','s','y','n','c','E','n',
    'a','b','l','e','>','I','1','2','+','q','u','e','r','y','T','i',
    'm','e','o','u','t','>','F','1','5','+','o','u','t','p','u','t',
    'V','a','l','u','e','L','i','s','t','<','c','0','+','b','4','+',
    'F','I','c','0','+','H','F','1','2','+','r','o','w','s','A','f',
    'f','e','c','t','e','d','<','F','1','0','+','s','q','l','W','a',
    'r','n','i','n','g','<','c','0','+','b','1','4','+','F','F','F',
    'd','5','+','d','0','+','F','F','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','d','0','+','9','+','3',
    '0','+','I','D','L',':','o','d','b','c','/','S','Q','L','S','v',
    'c','/','P','a','r','a','m','E','r','r','o','r',':','1','.','0',
    'g','1','+','d','0','+','3','7','+','I','D','L',':','o','d','b',
    'c','/','S','Q','L','S','v','c','/','I','n','v','a','l','i','d',
    'C','o','n','n','e','c','t','i','o','n',':','1','.','0','g','0',
    '+','2','8','+','I','D','L',':','o','d','b','c','/','S','Q','L',
    'S','v','c','/','S','Q','L','E','r','r','o','r',':','1','.','0',
    'g','1','+','c','0','+','b','1','4','+','F','F','F','d','5','+',
    'd','0','+','F','F','d','0','+','d','0','+','d','0','+','d','0',
    '+','d','0','+','d','0','+','d','0','+','3','6','+','I','D','L',
    ':','o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L',
    'I','n','v','a','l','i','d','H','a','n','d','l','e',':','1','.',
    '0','g','0','+','3','1','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','S','Q','L','N','e','e','d','D','a',
    't','a',':','1','.','0','g','0','+','3','5','+','I','D','L',':',
    'o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L','R',
    'e','t','r','y','C','o','m','p','i','l','e',':','1','.','0','g',
    '1','+','c','0','+','b','1','4','+','F','F','F','d','5','+','d',
    '0','+','F','F','d','0','+','d','0','+','d','0','+','d','0','+',
    'd','0','+','d','0','+','d','0','+','3','7','+','I','D','L',':',
    'o','d','b','c','/','S','Q','L','S','v','c','/','S','Q','L','S',
    't','i','l','l','E','x','e','c','u','t','i','n','g',':','1','.',
    '0','g','0','+','3','7','+','I','D','L',':','o','d','b','c','/',
    'S','Q','L','S','v','c','/','S','Q','L','Q','u','e','r','y','C',
    'a','n','c','e','l','l','e','d',':','1','.','0','g','1','+','F',
    '3','6','+','I','D','L',':','o','d','b','c','/','S','Q','L','S',
    'v','c','/','T','r','a','n','s','a','c','t','i','o','n','E','r',
    'r','o','r',':','1','.','0','g','0','+','0','+', 0};
#define odbc_SQLSvc_ics_ ((IDL_unsigned_long) 10892)

/*
 * Interface creation function for 'odbc_SQLSvc'
 */
extern "C" CEE_status
odbc_SQLSvc_ifc_(
  /* Out */ CEE_handle_def *interface_handle);

/*******************************
 * End interface 'odbc_SQLSvc' *
 *******************************/
/* End module: odbc */
/*
 * End translation unit: ODBC
 */
#endif /* ODBC_H_ */
