4.2 SQL-операторы в прикладных программахSQL-операторы можно встраивать в триггеры, хранимые процедуры и прикладные программы. Для того, чтобы встроить SQL-операторы в программный код, необходимо преодолеть два затруднения. Во-первых, нужен какой-то способ, позволяющий записывать результаты выполнения SQL- операторов в программные переменные. Это можно сделать по-разному. В одних случаях для этого используются объектно-ориентированные программы, в других применяются более простые методы. Например, в PL/SQL следующий оператор присваивает переменной rowcount значение, равное количеству строк в таблице CUSTOMER: SELECT COUNT(*) INTO rowcount FROM CUSTOMER; Вторая трудность заключается в несоответствии парадигм SQL парадигмам языков программирования. Язык SQL оперирует множествами: большинство операторов SQL возвращают таблицу или набор строк. В отличие от этого, программы оперируют отдельными элементами или строками. Из-за этого отличия оператор, подобный приведенному ниже, не имеет смысла: SELECT Name INTO custName FROM CUSTOMER; Если в таблице CUSTOMER имеется 100 строк, то запрос столбца Name возвратит 100 значений, в то время как переменная custName может принять только одно значение. Чтобы преодолеть это затруднение, результаты выполнения SQL- операторов обрабатываются как псевдофайлы. SQL-оператор возвращает набор строк. На первую строку помещается курсор, и данная строка обрабатывается. Затем курсор перемещается на следующую строку, и так далее, пока не будут обработаны все строки. Типичный процесс обработки выглядит так: Открыть файл SQL (SELECT * FROM CUSTOMER); Таким образом, строки, возвращенные SQL-оператором, обрабатываются по одной. Именно таким является принцип встраивания SQL- операторов в программный код. Примеры будут представлены далее.
|