Compartir a través de


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.