в качестве языка запросов. СУБД
многие существующие приложения и инструменты используют SQL в качестве языка запросов. СУБД Cache' поддерживает все элементы ANSI-стандартов, реализованных для SQL и SQL-92.
Для облегчения разработки прикладных систем баз данных, Cache' поддерживает встраивание SQL в методы и программы. Встроенный SQL может быть использован для решения следующих задач:
Реализации сложных запросов к базам данных Представления полученных результатов запросов в качестве значений переменных встроенного языка разработки приложений Cache' Object Script (COS).
Пример использования встроенного SQL запроса:
new id, Surname set Surname="Ivanov" &sql(SELECT Id into :id FROM Person where Surname=:Surname)
Приведенный код ищет по полю Surname таблицы Person поле со значением Ivanov и сохраняет найденный OID объекта в локальной переменной id. Пример демонстрирует случай использования встроенного SQL-запроса, не основанного на курсоре. В данном случае запрос всегда возвращает только одну строку.
Если же необходимо получить несколько строк из результирующей выборки запроса необходимо использовать SQL, основанный на курсоре. Курсор в данном случае является указателем на одну строку и при проведении операции FETCH курсор передвигается к следующей строке.
Использование курсора предполагает выполнение следующей последовательности операций:
Объявление курсора; Открытие курсора; Проведение серий операций чтения (FETCH) для курсора; Закрытие курсора.
Пример использование курсора в SQL-запросах:
&sql(DECLARE PersCur CURSOR FOR SELECT Surname, DateOfBirth FROM Person, WHERE Surname="Ivanov") &sql(OPEN PersCur) &sql(FETCH PersCur INTO :surname, :DateOB) &sql(CLOSE PersCur)
В приведенном примере создается курсор PersCur на SQL-запрос SELECT, после чего определенный курсор открывается, а затем с помощью команды FETCH производится последовательное сканирование результатов выборки и в локальных переменных surname и DateOB сохраняются соответствующие значения полей Surname и DateOfBirth таблицы Person.После этого курсор закрывается.
Содержание Назад Вперед