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


Курсоры ODBC

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

Модель курсора в ODBC основана на модели курсоров в внедренном SQL. Одним из заметных различий между этими моделями является способ открытия курсоров. В внедренном SQL курсор должен быть явно объявлен и открыт, прежде чем его можно будет использовать. В ODBC курсор неявно открывается при выполнении инструкции, создающей результирующий набор. При открытии курсора он размещается перед первой строкой результирующий набор. В внедренном SQL и ODBC курсор должен быть закрыт после завершения работы приложения.

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

Курсоры, доступные только для перенаправления, менее полезны для приложений на основе экрана, в которых пользователь прокручивает данные назад и вперед. Такие приложения могут использовать курсор только для пересылки, считывая результирующий набор один раз, кэширование данных локально и выполнение прокрутки самостоятельно. Однако это хорошо работает только с небольшими объемами данных. Лучше всего использовать прокручиваемый курсор, который обеспечивает случайный доступ к результирующему набору. Такие приложения также могут повысить производительность путем получения нескольких строк данных за раз, используя то, что называется блок-курсором . Дополнительные сведения об блочных курсорах см. в разделе "Использование блочных курсоров".

Курсор только для пересылки является типом курсора по умолчанию в ODBC и рассматривается в следующих разделах. Дополнительные сведения о блочных курсорах и прокручиваемых курсорах см. в разделе "Блоковые курсоры " и "Прокручиваемые курсоры".

Важно!

Фиксация или откат транзакции путем явного вызова SQLEndTran или при работе в режиме автоматической фиксации приводит к закрытию всех курсоров на всех операторах подключения. Дополнительные сведения см. в SQL_CURSOR_COMMIT_BEHAVIOR и SQL_CURSOR_ROLLBACK_BEHAVIOR атрибутах в описании функции SQLGetInfo .