Сопоставление SQLSetStmtOption
Когда приложение вызывает SQLSetStmtOption через драйвер ODBC 3.x , вызов вызывается
SQLSetStmtOption(StatementHandle, fOption, vParam)
Результат будет следующим образом:
Если fOption указывает атрибут инструкции ODBC, который является строкой, диспетчер драйверов вызывает
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, SQL_NTS)
Если fOption указывает атрибут инструкции ODBC, возвращающий 32-разрядное целое число, диспетчер драйверов вызывает
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, 0)
Если fOption указывает атрибут инструкции, определяемый драйвером, диспетчер драйверов вызывает
SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, BufferLength)
В предыдущих трех случаях аргумент StatementHandle имеет значение в hstmt, аргумент Атрибута задается значением в fOption, а аргумент ValuePtr имеет значение vParam.
Так как диспетчер драйверов не знает, требуется ли атрибуту инструкции, определяемого драйвером, строковое или 32-разрядное целочисленное значение, оно должно передавать допустимое значение для аргумента StringLength SQLSetStmtAttr. Если драйвер определил специальную семантику для атрибутов инструкции, определяемых драйвером, и его необходимо вызвать с помощью SQLSetStmtOption, он должен поддерживать SQLSetStmtOption.
Если приложение вызывает SQLSetStmtOption, чтобы задать параметр инструкции для конкретного драйвера в драйвере ODBC 3.x и параметр был определен в версии драйвера ODBC 2.x, новая константа манифеста должна быть определена для параметра в драйвере ODBC 3.x. Если в вызове SQLSetStmtOption используется старая константа манифеста, диспетчер драйверов вызовет SQLSetStmtAttr с аргументом StringLength значение 0.
Когда приложение вызывает SQLSetStmtAttr для задания SQL_ATTR_USE_BOOKMARKS SQL_UB_ON в драйвере ODBC 3.x , атрибут инструкции SQL_ATTR_USE_BOOKMARKS имеет значение SQL_UB_FIXED. SQL_UB_ON является той же константой, что и SQL_UB_FIXED. Диспетчер драйверов передает SQL_UB_FIXED через драйвер. SQL_UB_FIXED не рекомендуется использовать в ODBC 3.x, но драйвер ODBC 3.x должен реализовать его для работы с приложениями ODBC 2.x, используюющими закладки фиксированной длины.
Для драйвера ODBC 3.x диспетчер драйверов больше не проверяет, находится ли параметр между SQL_STMT_OPT_MIN и SQL_STMT_OPT_MAX или больше SQL_CONNECT_OPT_DRVR_START.