Глава 25. Использование SQL с другими языками программирования
Программы, использующие встроенный SQL, при выполнении также связаны с идентификатором пользователя. Идентификатор пользователя, связанный с програм мой, должен иметь все привилегии для выполнения операций SQL, размещенных в программе. В общем случае программа со встроенным SQL связывается с базой дан ных как и пользователь, выполняющий программу. Детали определяются реализаци ей, но необходимо включить в программу команду CONNECT или ее аналог, реализующий эту команду в полной мере.
Использование переменных языка высокого уровня cSQL
Части программы SQL и язык высокого уровня взаимодействуют в основном с помо
щью значений переменных. Различные языки программирования распознают различ
ные типы переменных. ANSI определяет эквиваленты SQL для четырех языков программирования - PUI, Pascal, COBOL, FORTRAN (детали представлены в прило жении В). Эквиваленты для других языков программирования определяются разработ чиками. Типы, подобные DATE, не распознаются ANSI; следовательно, в стандарте нет эквивалентных типов данных для языков высокого уровня. Более сложные типы данных языка высокого уровня, такие как матрицы, тоже не имеют эквивалентов в SQL.
Можно использовать переменные из основной программы во встроенных предло жениях SQL везде, где применяются выражения значений (SQL, о котором идет речь в этой главе, - это встроенный SQL, если не оговорено нечто иное). Текущее значение переменной - это то значение, которое будет использоваться в команде. Переменные
языка высокого уровня должны:
•Быть объявлены в SQL DECLARE SECTION (кратко обсуждае-~:ся далее);
•Быть совместимыми по типу данных с их функциями в команде SQL (например, иметь числовой тип, если они должны быть вставлены в числовое поле);
•Иметь значение к тому моменту времени, когда они используются в SQL- команде, независимо от того, что сама SQL-команда может назначать значение;
•Перед ними должно быть указано двоеточие (:)тогда, когда на нее ссылается SQL-команда.
Поскольку переменные языка высокого уровня отличаются от имен столбцов SQL
наличием двоеточия, при желании можно использовать переменные с теми же самыми
именами, что и имена столбцов.
Предположим, в программе есть четыре переменные, с именами id_num,
salesperson, loc, comm.
Salespeople. Можно ввести в программу следующую SQL-команду:
ЕХЕС SOL INSERT INTO Salespeople
VALUES (:id_num, :salesperson, :loc, :comm)