Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Внимание
Эта функция будет удалена в будущей версии Windows. Избегайте использования этой функции в новых рабочих областях разработки и планируете изменять приложения, которые в настоящее время используют эту функцию. Корпорация Майкрософт рекомендует использовать функции курсора драйвера.
Библиотека курсоров поддерживает позиционированные инструкции обновления и удаления, заменив предложение WHERE CURRENT OF в таких инструкциях предложением WHERE , которое перечисляет значения, хранящиеся в кэше для каждого связанного столбца. Библиотека курсоров передает недавно созданные инструкции UPDATE и DELETE драйверу для выполнения. Для позиционированных инструкций обновления библиотека курсоров обновляет кэш из значений в буферах набора строк и задает соответствующее значение в массиве состояния строки SQL_ROW_UPDATED. Для позиционированных инструкций удаления он задает соответствующее значение в массиве состояния строки SQL_ROW_DELETED.
Внимание
Предложение WHERE , созданное библиотекой курсоров для идентификации текущей строки, может не идентифицировать строки, определить другую строку или определить несколько строк. Дополнительные сведения см. в разделе "Создание инструкций поиска" далее в этом приложении.
Размещенные инструкции обновления и удаления подвергаются следующим ограничениям:
Позиционированные инструкции обновления и удаления можно использовать только в следующих случаях: когда инструкция SELECT создает результирующий набор; если инструкция SELECT не содержит соединения, предложение UNION или предложение GROUP BY, а также когда любые столбцы, использующие псевдоним или выражение в списке выбора, не привязаны к SQLBindCol.
Если приложение подготавливает позиционированную инструкцию обновления или удаления, это необходимо сделать после вызова SQLFetch или SQLFetchScroll. Хотя библиотека курсоров отправляет инструкцию драйверу для подготовки, она закрывает инструкцию и выполняет ее непосредственно при вызове SQLExecute приложения.
Если драйвер поддерживает только одну активную инструкцию, библиотека курсоров извлекает остальную часть результирующий набор, а затем возвращает текущий набор строк из кэша, прежде чем он выполнит позиционированное обновление или удаление инструкции. Если приложение вызывает функцию, которая возвращает метаданные в результирующем наборе (например, SQLNumResultCols или SQLDescribeCol), библиотека курсоров возвращает ошибку.
Если позиционированные инструкции обновления или удаления выполняются в столбце таблицы, включающей столбец метки времени, который автоматически обновляется при каждом выполнении обновления, все последующие операторы обновления или удаления завершаются ошибкой, если столбец метки времени привязан. Это происходит из-за того, что поиск по обновлению или удалению инструкции, которую создает библиотека курсоров, не будет точно определять строку для обновления. Значение в инструкции поиска для столбца метки времени не будет соответствовать автоматически обновленному значению столбца метки времени.