SQLAllocEnv 为环境句柄 ,并初始化驱动程序调用级别接口,以供应用程序使用。
应用程序必须在调用其它驱动程序函数之前调用 SQLAllocEnv。
驱动程序在调用 SQLAllocEnv 之后不能直接返回 SQLSTATE 值,
因为没有有效的句柄在
调用 SQLError。
GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 210 -
存在两个级别的 SQLAllocEnv 函数,一个在驱动程序管理器中(如果使用的话),一个在
驱动程序中。
在应用程序调用 SQLConnect 、
SQLBrowseConnect 或 SQLDriverConnect 之
前,
驱动程序管理器不会调用驱动程序级别的函数。
如果在驱动程序级别 SQLAllocEnv 函
数中发生了错误,则驱动程序管理器层 SQLConnect 、SQLBrowseConnect 或
SQLDriverConnect 函数返回 SQL_ERROR。随后对使用 henv 、SQL_NULL_HDBC 和
SQL_NULL_HSTMT 的 SQLError 调用返回 SQLSTATE IM004 (驱动程序 SQLAllocEnv
函数失败),在以下驱动程序的错误之后:
SQLSTATE S1000(一般错误)
GBase 8s ODBC Driver SQLSTATE 值,它的范围是从 S1000 到 S19ZZ。
例如,SQLSTATE S1001(内存分配失败)表示从驱动程序管理器到驱动程序级别
SQLAllocEnv 的调用返回 SQL_ERROR,并且驱动程序管理器中的 henv 被设置为
SQL_NULL_HENV。