Comprobaciones de valores de argumento
El Administrador de controladores comprueba los siguientes tipos de argumentos. A menos que se indique lo contrario, el Administrador de controladores devuelve SQL_ERROR para errores en los valores de argumento.
Normalmente, los identificadores de entorno, conexión y instrucción no pueden ser punteros NULL. El Administrador de controladores devuelve SQL_INVALID_HANDLE cuando encuentra un identificador NULL.
Los argumentos de puntero necesarios, como OutputHandlePtr en SQLAllocHandle y CursorName en SQLSetCursorName, no pueden ser punteros NULL.
Las marcas de opción que no admiten valores específicos del controlador deben ser un valor legal. Por ejemplo, la operación en SQLSetPos debe ser SQL_POSITION, SQL_REFRESH, SQL_UPDATE, SQL_DELETE o SQL_ADD.
Las marcas de opción deben ser compatibles con la versión de ODBC compatible con el controlador. Por ejemplo, InfoType en SQLGetInfo no puede ser SQL_ASYNC_MODE (introducido en ODBC 3.0) cuando se llama a un controlador ODBC 2.0.
Los números de columna y parámetro deben ser mayores que 0 o mayores o iguales que 0, dependiendo de la función. El controlador debe comprobar el límite superior de estos valores de argumento en función del conjunto de resultados o la instrucción SQL actual.
Los argumentos de longitud/indicador y de longitud del búfer de datos deben contener valores apropiados. Por ejemplo, el argumento que especifica la longitud de un nombre de tabla en SQLColumns (NameLength3) debe ser SQL_NTS o un valor mayor que 0; BufferLength en SQLDescribeCol debe ser mayor o igual que 0. Es posible que el controlador también tenga que comprobar estos argumentos. Por ejemplo, podría comprobar que NameLength3 es menor o igual que la longitud máxima de un nombre de tabla en el origen de datos.