Бөлісу құралы:


Подготовка и выполнение инструкции (ODBC)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Однократная подготовка инструкции и многократное ее выполнение

  1. Вызовите функцию SQLPrepare , чтобы подготовить инструкцию.

  2. Можно также вызвать метод SQLNumParams , чтобы определить количество параметров в подготовленной инструкции.

  3. Выполните следующие действия для каждого параметра подготовленной инструкции (не обязательно).

    • Вызовите SQLDescribeParam для получения сведений о параметре.

    • Привяжите каждый параметр к переменной программы с помощью SQLBindParameter. Присвойте значения всем параметрам времени выполнения.

  4. Перед каждым выполнением подготовленной инструкции.

    • Если в инструкции имеются маркеры параметров, поместите значения данных в буфер связанного параметра.

    • Вызовите функцию SQLExecute , чтобы выполнить подготовленную инструкцию.

    • При использовании входных параметров времени выполнения функция SQLExecute возвращает SQL_NEED_DATA. Отправьте данные по фрагментам при помощи функций SQLParamData и SQLPutData.

Подготовка инструкции с привязкой параметра на уровне столбца

  1. Вызовите функцию SQLSetStmtAttr , чтобы задать следующие атрибуты.

    • Атрибуту SQL_ATTR_PARAMSET_SIZE задайте число наборов параметров (S).

    • Атрибуту SQL_ATTR_PARAM_BIND_TYPE задайте значение SQL_PARAMETER_BIND_BY_COLUMN.

    • Атрибут SQL_ATTR_PARAMS_PROCESSED_PTR должен указывать на переменную SQLUINTEGER, в которую помещается число обработанных параметров.

    • Задайте значение SQL_ATTR_PARAMS_STATUS_PTR, которое указывает на массив [S] переменных SQLUSSMALLINT, предназначенный для сохранения признаков состояния параметра.

  2. Вызовите SQLPrepare для подготовки инструкции.

  3. Можно также вызвать метод SQLNumParams , чтобы определить количество параметров в подготовленной инструкции.

  4. При необходимости для каждого параметра в подготовленной инструкции вызовите SQLDescribeParam, чтобы получить сведения о параметрах.

  5. Для каждого маркера параметра выполните следующее.

    • Выделите массив из S буферов параметра для сохранения значений данных.

    • Выделите массив из S буферов параметра для сохранения длин данных.

    • Вызовите функцию SQLBindParameter , чтобы связать массивы значений данных и длин данных с параметром инструкции.

    • Если параметр использует данные времени выполнения типов text или image, присвойте ему значение.

    • Если используются параметры с данными времени выполнения, присвойте им значения.

  6. Перед каждым выполнением подготовленной инструкции.

    • Поместите значения и длины S-данных в массивы связанных параметров.

    • Вызовите функцию SQLExecute , чтобы выполнить подготовленную инструкцию.

    • При использовании входных параметров времени выполнения функция SQLExecute возвращает SQL_NEED_DATA. Отправьте данные по фрагментам при помощи функций SQLParamData и SQLPutData.

Подготовка инструкции с привязкой параметра на уровне строки

  1. Выделите массив структур [S], где S — число наборов параметров. Структура имеет по одному элементу для каждого параметра, а каждый элемент состоит из двух частей.

    • Первая часть — переменная соответствующего типа данных, в которую помещаются данные параметра.

    • Вторая часть — переменная SQLINTEGER, в которую помещается признак состояния.

  2. Вызовите функцию SQLSetStmtAttr , чтобы задать следующие атрибуты.

    • Атрибуту SQL_ATTR_PARAMSET_SIZE задайте число наборов параметров (S).

    • Атрибуту SQL_ATTR_PARAM_BIND_TYPE задайте размер структуры, выделенной в шаге 1.

    • Атрибут SQL_ATTR_PARAMS_PROCESSED_PTR должен указывать на переменную SQLUINTEGER, в которую помещается число обработанных параметров.

    • Задайте значение SQL_ATTR_PARAMS_STATUS_PTR, которое указывает на массив [S] переменных SQLUSSMALLINT, предназначенный для сохранения признаков состояния параметра.

  3. Вызовите SQLPrepare для подготовки инструкции.

  4. Для каждого маркера параметра вызовите SQLBindParameter, чтобы указать значение данных параметра и указатель длины данных на их переменные в первом элементе массива структур, выделенных на шаге 1. Если параметр использует данные времени выполнения, присвойте ему значение.

  5. Перед каждым выполнением подготовленной инструкции.

    • Заполните массив буфера привязанного параметра значениями данных.

    • Вызовите функцию SQLExecute , чтобы выполнить подготовленную инструкцию. Драйвер эффективно выполнит инструкцию SQL S раз, по одному разу для каждого набора параметров.

    • При использовании входных параметров времени выполнения функция SQLExecute возвращает SQL_NEED_DATA. Отправьте данные по фрагментам при помощи функций SQLParamData и SQLPutData.

См. также

Инструкции по выполнению запросов (ODBC)