参数值检查

驱动程序管理器检查以下类型的参数。 除非另有说明,否则驱动程序管理器将返回参数值中错误的 SQL_ERROR。

  • 环境、连接和语句句柄通常不能为 null 指针。 驱动程序管理器在找到 null 句柄时返回 SQL_INVALID_HANDLE。

  • 必需的指针参数(例如 SQLAllocHandle 中的 OutputHandlePtr 和 SQLSetCursorName 中的 CursorName)不能为 null 指针。

  • 不支持特定于驱动程序的值的选项标志必须是合法值。 例如,SQLSetPos 中的操作必须是 SQL_POSITION、SQL_REFRESH、SQL_UPDATE、SQL_DELETE 或 SQL_ADD。

  • 驱动程序支持的 ODBC 版本必须支持选项标志。 例如,调用 ODBC 2.0 驱动程序时,SQLGetInfo 中的 InfoType 不能为 SQL_ASYNC_MODE(在 ODBC 3.0 中引入)。

  • 列和参数编号必须大于 0 或大于或等于 0,具体取决于函数。 驱动程序必须基于当前结果集或 SQL 语句检查这些参数值的上限。

  • 长度/指示器参数和数据缓冲区长度参数必须包含适当的值。 例如,在 SQLColumns (NameLength3) 中指定表名称长度的参数必须为 SQL_NTS 或大于 0 的值;SQLDescribeCol 中的 BufferLength 必须大于或等于 0。 驱动程序可能还需要检查这些参数。 例如,它可能会检查 NameLength3 是否小于或等于数据源中表名称的最大长度。