Поделиться через


Назначение хранилища

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

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

Чтобы связать хранилище для столбца данных, приложение вызывает SQLBindCol и передает его:

  • Тип данных, в который будут преобразованы данные.

  • Адрес выходного буфера для данных.

    Приложение должно выделить этот буфер, причем буфер должен иметь достаточный размер для данных в той форме, в которую они будут преобразованы.

  • Длину выходного буфера.

    Это значение пропускается, если возвращаемые данные имеют фиксированную длину в C, например целое число, вещественное число или структура данных.

  • Адрес буфера хранения, в который возвращается определенное число байтов доступных данных.

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

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

    Привязка с использованием столбцов определяется путем вызова SQLSetStmtAttr с атрибутом, равным SQL_ATTR_ROW_BIND_TYPE, и значение ValuePtr, равное SQL_BIND_BY_COLUMN. Все массивы должны содержать одинаковое количество элементов.

  • Привязка на уровне строки завершается, когда все параметры в инструкции SQL привязаны как единое целое к массиву структур, которые содержат отдельные переменные для параметров.

    Привязка по строкам определяется путем вызова SQLSetStmtAttr с набором атрибутов для SQL_ATTR_ROW_BIND_TYPE и ValuePtr, заданных для размера структуры, включающей переменные, которые будут получать столбцы результирующего набора.

Приложение также указывает для атрибута SQL_ATTR_ROW_ARRAY_SIZE значение, равное количеству элементов в массивах столбцов или строк, и устанавливает значения SQL_ATTR_ROW_STATUS_PTR и SQL_ATTR_ROWS_FETCHED_PTR.

См. также

Обработка результатов (ODBC)