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


Массив состояния строк

Помимо данных, SQLFetch и SQLFetchScroll могут возвращать массив, который дает состояние каждой строки в наборе строк. Этот массив указывается с помощью атрибута инструкции SQL_ATTR_ROW_STATUS_PTR. Этот массив выделяется приложением и должен содержать столько элементов, сколько указано атрибутом инструкции SQL_ATTR_ROW_ARRAY_SIZE. Значения в массиве задаются SQLBulkOperations, SQLFetch, SQLFetchScroll и SQLSetPos. Значения описывают состояние строки и указывает, изменилось ли это состояние с момента последнего получения.

Значение массива состояния строк Description
SQL_ROW_SUCCESS Строка была успешно извлечена и не изменилась с момента последнего извлечения.
SQL_ROW_SUCCESS_WITH_INFO (успех строки SQL с информацией) Строка была успешно извлечена и не изменилась с момента последнего извлечения. Однако предупреждение было возвращено о строке.
SQL_ROW_ERROR Произошла ошибка при выборе строки.
SQL_ROW_UPDATED Строка успешно извлечена и была обновлена с момента последнего извлечения. Если строка снова извлечена или обновлена с помощью SQLSetPos, её состояние изменяется на новое состояние.

Некоторые драйверы не могут обнаруживать изменения данных и поэтому не могут возвращать это значение. Чтобы определить, может ли драйвер обнаруживать обновления повторно извлечённых строк, приложение вызывает SQLGetInfo с параметром SQL_ROW_UPDATES.
SQL_ROW_DELETED Строка была удалена с момента последнего извлечения.
SQL_ROW_ADDED SQLBulkOperations вставил строку. Если строка снова извлекается или обновляется с помощью SQLSetPos, её состояние будет SQL_ROW_SUCCESS.

Это значение не задано SQLFetch или SQLFetchScroll.
SQL_ROW_NOROW Набор строк перекрывал конец результирующего набора, и не была возвращена строка, соответствующая этому элементу массива статуса строк.