henv.h
来自「A*算法 A*算法 A*算法 A*算法A*算法A*算法」· C头文件 代码 · 共 161 行
H
161 行
/*
* henv.h
*
* $Id: henv.h,v 1.6 1999/06/01 15:31:41 VZ Exp $
*
* Environment object management functions
*
* The iODBC driver manager.
*
* Copyright (C) 1995 by Ke Jin <kejin@empress.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _HENV_H
#define _HENV_H
#include "config.h"
#include "dlproc.h"
#include "isql.h"
#include "isqlext.h"
#ifndef SYSERR
#define SYSERR -1
#endif
enum
{
#if (ODBCVER >= 0x0300)
en_AllocHandle = SQL_API_SQLALLOCHANDLE,
en_FreeHandle = SQL_API_SQLFREEHANDLE,
#endif
en_AllocEnv = SQL_API_SQLALLOCENV,
en_AllocConnect = SQL_API_SQLALLOCCONNECT,
en_Connect = SQL_API_SQLCONNECT,
en_DriverConnect = SQL_API_SQLDRIVERCONNECT,
en_BrowseConnect = SQL_API_SQLBROWSECONNECT,
en_DataSources = SQL_API_SQLDATASOURCES,
en_Drivers = SQL_API_SQLDRIVERS,
en_GetInfo = SQL_API_SQLGETINFO,
en_GetFunctions = SQL_API_SQLGETFUNCTIONS,
en_GetTypeInfo = SQL_API_SQLGETTYPEINFO,
en_SetConnectOption = SQL_API_SQLSETCONNECTOPTION,
en_GetConnectOption = SQL_API_SQLGETCONNECTOPTION,
en_SetStmtOption = SQL_API_SQLSETSTMTOPTION,
en_GetStmtOption = SQL_API_SQLGETSTMTOPTION,
en_AllocStmt = SQL_API_SQLALLOCSTMT,
en_Prepare = SQL_API_SQLPREPARE,
en_BindParameter = SQL_API_SQLBINDPARAMETER,
en_ParamOptions = SQL_API_SQLPARAMOPTIONS,
en_GetCursorName = SQL_API_SQLGETCURSORNAME,
en_SetCursorName = SQL_API_SQLSETCURSORNAME,
en_SetScrollOptions = SQL_API_SQLSETSCROLLOPTIONS,
en_SetParam = SQL_API_SQLSETPARAM,
en_Execute = SQL_API_SQLEXECUTE,
en_ExecDirect = SQL_API_SQLEXECDIRECT,
en_NativeSql = SQL_API_SQLNATIVESQL,
en_DescribeParam = SQL_API_SQLDESCRIBEPARAM,
en_NumParams = SQL_API_SQLNUMPARAMS,
en_ParamData = SQL_API_SQLPARAMDATA,
en_PutData = SQL_API_SQLPUTDATA,
en_RowCount = SQL_API_SQLROWCOUNT,
en_NumResultCols = SQL_API_SQLNUMRESULTCOLS,
en_DescribeCol = SQL_API_SQLDESCRIBECOL,
en_ColAttributes = SQL_API_SQLCOLATTRIBUTES,
en_BindCol = SQL_API_SQLBINDCOL,
en_Fetch = SQL_API_SQLFETCH,
en_ExtendedFetch = SQL_API_SQLEXTENDEDFETCH,
en_GetData = SQL_API_SQLGETDATA,
en_SetPos = SQL_API_SQLSETPOS,
en_MoreResults = SQL_API_SQLMORERESULTS,
en_Error = SQL_API_SQLERROR,
en_ColumnPrivileges = SQL_API_SQLCOLUMNPRIVILEGES,
en_Columns = SQL_API_SQLCOLUMNS,
en_ForeignKeys = SQL_API_SQLFOREIGNKEYS,
en_PrimaryKeys = SQL_API_SQLPRIMARYKEYS,
en_ProcedureColumns = SQL_API_SQLPROCEDURECOLUMNS,
en_Procedures = SQL_API_SQLPROCEDURES,
en_SpecialColumns = SQL_API_SQLSPECIALCOLUMNS,
en_Statistics = SQL_API_SQLSTATISTICS,
en_TablePrivileges = SQL_API_SQLTABLEPRIVILEGES,
en_Tables = SQL_API_SQLTABLES,
en_FreeStmt = SQL_API_SQLFREESTMT,
en_Cancel = SQL_API_SQLCANCEL,
en_Transact = SQL_API_SQLTRANSACT,
en_Disconnect = SQL_API_SQLDISCONNECT,
en_FreeConnect = SQL_API_SQLFREECONNECT,
en_FreeEnv = SQL_API_SQLFREEENV,
en_NullProc = SYSERR
};
typedef struct
{
int type; /* must be 1st field */
HENV henv; /* driver's env list */
HDBC hdbc; /* driver's dbc list */
HERR herr; /* err list */
int state;
}
GENV_t;
typedef struct
{
HENV next; /* next attached env handle */
int refcount; /* Driver's bookkeeping reference count */
HPROC dllproc_tab[SQL_EXT_API_LAST + 1]; /* driver api calls */
HENV dhenv; /* driver env handle */
HDLL hdll; /* drvier share library handle */
}
ENV_t;
/* Note:
* - ODBC applications only know about global environment handle,
* a void pointer points to a GENV_t object. There is only one
* this object per process(however, to make the library reentrant,
* we still keep this object on heap). Applications only know
* address of this object and needn't care about its detail.
*
* - ODBC driver manager knows about instance environment handles,
* void pointers point to ENV_t objects. There are maybe more
* than one this kind of objects per process. However, multiple
* connections to a same data source(i.e. call same share library)
* will share one instance environment object.
*
* - ODBC drvier manager knows about their own environemnt handle,
* a void pointer point to a driver defined object. Every driver
* keeps one of its own environment object and driver manager
* keeps address of it by the 'dhenv' field in the instance
* environment object without care about its detail.
*
* - Applications can get driver's environment object handle by
* SQLGetInfo() with fInfoType equals to SQL_DRIVER_HENV
*/
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?