Использование инструкции (ODBC)
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Использование инструкции
Для выделения дескриптора инструкции вызовите функцию SQLAllocHandle с параметром HandleType, имеющим значение SQL_HANDLE_STMT.
Также можно вызвать SQLSetStmtAttr для настройки параметров инструкции или SQLGetStmtAttr для получения атрибутов инструкции.
Чтобы использовать серверные курсоры, необходимо установить атрибуты курсоров в значения, отличные от значений по умолчанию.
Если инструкция будет выполняться несколько раз, то ее можно подготовить к выполнению с помощью функции SQLPrepare.
Если инструкция имеет связанные маркеры параметров, можно привязать их к переменным программы с помощью функции SQLBindParameter. Для подготовленной инструкции можно вызвать функции SQLNumParams и SQLDescribeParam to find the number и characteristics of the parameters.
Произведите прямое выполнение инструкции с помощью функции SQLExecDirect.
- или -
Если инструкция была подготовлена, выполните ее несколько раз с помощью функции SQLExecute.
- или -
Вызовите функцию каталога, возвращающую результаты.
Обработайте результаты, связав столбцы результирующего набора с переменными программы, переместив данные из столбцов результирующего набора в переменные программы с помощью функции SQLGetDataили используя сочетание этих двух методов.
Произведите выборку из результирующего набора инструкции одной строки.
- или -
Произведите выборку из результирующего набора нескольких строк с помощью блочного курсора.
- или -
Вызовите функцию SQLRowCount , чтобы определить число строк, затронутых инструкцией INSERT, UPDATE или DELETE.
Если инструкция SQL имеет несколько результирующих наборов, то после получения каждого результирующего набора вызовите функцию SQLMoreResults , чтобы просмотреть, есть ли дополнительные результирующие наборы для обработки.
После обработки результатов, чтобы сделать для дескриптора инструкции доступной возможность выполнения новой инструкции, могут потребоваться следующие действия.
Если функция SQLMoreResults не вызывалась до возвращения значения SQL_NO_DATA, вызовите функцию SQLCloseCursor для закрытия курсора.
Если маркеры параметров привязаны к переменным программы, то для их освобождения вызовите функцию SQLFreeStmt с параметром Option , установленным в значение SQL_RESET_PARAMS.
Если столбцы результирующего набора привязаны к переменным программы, для их освобождения вызовите функцию SQLFreeStmt с параметром Option , установленным в значение SQL_UNBIND.
Для повторного использования дескриптора инструкции перейдите к шагу 2.
Для освобождения дескриптора инструкции вызовите функцию SQLFreeHandle с параметром HandleType, установленным в значение SQL_HANDLE_STMT.