blob: 72a62e4466d706686f6586230605787fbf16e559 [file] [log] [blame]
/**********************************************************************
// @@@ 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 @@@
**********************************************************************/
/**************************************************************************
**************************************************************************/
//
// MODULE: TDM_COMMON.IDL
//
// PURPOSE: Describes common typedefs used by the ODBC
// Krypton IDL specifications.
//
//// Modification History
// 11Nov97 Changed to colHeadingNm to be of 60 characters in length
// 09Sep97 Changed the parameter name autoCommitOn to autocommit and its type from
// boolean to short in CONNECTION_CONTEXT_def
//
// 22Aug97 Changed some of the typedefs into basic types, since these typedefs
// are declared elsewhere.
// 1JAN98 Changes for Association Service integration
#ifndef _COMMON_DEFINED
#define _COMMON_DEFINED
typedef string UUID_def;
#define common_uuid ((UUID_def) "d1894a72-0326-11d1-a54a-0060b01ad6ae")
#define MAX_TEXT_SID_LEN 186 // check the comment in SecDrvr.cpp
// When you change this, Make sure you change in DrvrSrvr.h
#define MAX_COMPUTERNAME_LENGTH 15 // defined in WINBASE.H
#define SQL_MAX_SESSIONNAME_LEN 25 // 24 + 1 for the null terminator
#define MAX_PROCESS_NAME_LEN 128
typedef long DIALOGUE_ID_def;
typedef string<512> SQL_IDENTIFIER_def;
typedef string<512> STMT_NAME_def;
typedef long SQL_DATATYPE_def;
typedef string<5> SQLSTATE_def;
typedef string ERROR_STR_def;
typedef sequence<octet> SQL_DataValue_def;
typedef short SQL_INDICATOR_def;
typedef long long INTERVAL_NUM_def;
typedef string<30> TIMESTAMP_STR_def;
typedef sequence<octet> USER_SID_def;
typedef sequence<octet> USER_PASSWORD_def;
typedef sequence<octet> USER_NAME_def;
typedef long TIME_def; // This should be in sync with time_t declaration
typedef short GEN_PARAM_TOKEN_def;
typedef short GEN_PARAM_OPERATION_def;
typedef sequence<octet> GEN_PARAM_VALUE_def;
typedef string<32> VPROC_def;
typedef string<128+1> APLICATION_def;
typedef string<128+1> COMPUTER_def;
typedef string<128+1> NAME_def;
typedef struct ERROR_DESC_t {
long rowId; // 0 indicates all
long errorDiagnosticId;
long sqlcode;
SQLSTATE_def sqlstate;
ERROR_STR_def errorText;
long operationAbortId;
long errorCodeType;
string Param1;
string Param2;
string Param3;
string Param4;
string Param5;
string Param6;
string Param7;
} ERROR_DESC_def;
typedef sequence<ERROR_DESC_def> ERROR_DESC_LIST_def;
typedef struct SQLItemDesc_t {
long version;
SQL_DATATYPE_def dataType;
long datetimeCode;
long maxLen;
short precision;
short scale;
boolean nullInfo;
string<512+1> colHeadingNm;
boolean signType;
long ODBCDataType;
short ODBCPrecision;
long SQLCharset;
long ODBCCharset;
string<512+1> TableName;
string<512+1> CatalogName;
string<512+1> SchemaName;
string<512+1> Heading;
long intLeadPrec;
long paramMode;
} SQLItemDesc_def;
typedef sequence<SQLItemDesc_def> SQLItemDescList_def;
typedef struct SQLValue_t {
SQL_DATATYPE_def dataType;
SQL_INDICATOR_def dataInd;
SQL_DataValue_def dataValue;
long dataCharset;
} SQLValue_def;
typedef sequence<SQLValue_def> SQLValueList_def;
typedef enum USER_DESC_TYPE_t {
SID_TYPE,
AUTHENTICATED_USER_TYPE,
UNAUTHENTICATED_USER_TYPE,
PASSWORD_ENCRYPTED_USER_TYPE,
SID_ENCRYPTED_USER_TYPE,
WIN95_USER_TYPE
} USER_DESC_TYPE_def;
typedef struct USER_DESC_t
{
USER_DESC_TYPE_def userDescType;
USER_SID_def userSid;
string domainName;
string userName;
USER_PASSWORD_def password;
} USER_DESC_def;
// Note: This output context has to be kept to a minimum since all context
// cannot be retrieved at the connection time (to speed up
// the connection process, we reply to the driver before we are
// done with the connection process on the server side).
// If more information is needed, then a different approach has to be taken.
typedef struct VERSION_t {
short componentId;
short majorVersion;
short minorVersion;
unsigned long buildId;
} VERSION_def;
typedef sequence<VERSION_def> VERSION_LIST_def;
typedef struct CONNECTION_CONTEXT_t {
SQL_IDENTIFIER_def datasource;
SQL_IDENTIFIER_def catalog;
SQL_IDENTIFIER_def schema;
SQL_IDENTIFIER_def location;
SQL_IDENTIFIER_def userRole;
short accessMode;
short autoCommit;
unsigned long queryTimeoutSec;
unsigned long idleTimeoutSec;
unsigned long loginTimeoutSec;
short txnIsolationLevel;
short rowSetSize;
long diagnosticFlag;
unsigned long processId;
char computerName[MAX_COMPUTERNAME_LENGTH*4+1];
string windowText;
// locale sensitive data (for language and code pages)
unsigned long ctxACP;
unsigned long ctxDataLang;
unsigned long ctxErrorLang;
short ctxCtrlInferNCHAR;
short cpuToUse; // CPU to use or if cpuToUseEnd is not -1 the start of the range of CPU's to use
short cpuToUseEnd;
char clientVproc[100+1]; // Driver vproc String
string connectOptions; // General name/value options pair for future use
VERSION_LIST_def clientVersionList;
unsigned long inContextOptions1;
unsigned long inContextOptions2;
char sessionName[SQL_MAX_SESSIONNAME_LEN*4+1];
string clientUserName;
} CONNECTION_CONTEXT_def;
typedef struct OUT_CONNECTION_CONTEXT_t {
VERSION_LIST_def versionList;
short nodeId;
unsigned long processId;
char computerName[MAX_COMPUTERNAME_LENGTH*4+1];
SQL_IDENTIFIER_def catalog;
SQL_IDENTIFIER_def schema;
unsigned long outContextOptions1;
unsigned long outContextOptions2;
unsigned long outContextOptionStringLen;
string outContextOptionString;
} OUT_CONNECTION_CONTEXT_def;
//
// Object reference
//
typedef char IDL_OBJECT_def[128];
typedef struct GEN_Param_t {
GEN_PARAM_TOKEN_def paramToken;
GEN_PARAM_OPERATION_def paramOperation;
GEN_PARAM_VALUE_def paramValue;
} GEN_Param_def;
typedef sequence<GEN_Param_def> GEN_ParamList_def;
typedef struct RES_DESC_t {
SQL_IDENTIFIER_def AttrNm;
long long Limit;
string Action;
long Settable;
} RES_DESC_def;
typedef sequence<RES_DESC_def> RES_DESC_LIST_def;
typedef struct ENV_DESC_t {
long VarSeq;
long VarType;
string VarVal;
} ENV_DESC_def;
typedef sequence<ENV_DESC_def> ENV_DESC_LIST_def;
typedef struct SRVR_CONTEXT_t
{
INTERVAL_NUM_def srvrIdleTimeout;
INTERVAL_NUM_def connIdleTimeout;
RES_DESC_LIST_def resDescList;
ENV_DESC_LIST_def envDescList;
} SRVR_CONTEXT_def;
// Process Handle List
//
typedef short PROCESS_HANDLE_def[10];
typedef sequence<PROCESS_HANDLE_def> PROCESS_HANDLE_List_def;
//
// Performance
//
#endif