Программируемый клиент ORACLE Технология Pro C/C++

Презентация:



Advertisements
Похожие презентации
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Advertisements

Обработка ошибок. Общие сведения Что такое исключение? –Переменная в PL/SQL, возбуждаемая во время выполнения Как возникает исключение? –Возбуждается.
Обработка исключений Гудов А.М., Завозкин С.Ю
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
Лекция 4. Введение в С++ Наследование, множественное наследование. Конструкторы, деструкторы. Виртуальные функции.
PL/SQL Введение 1. Типы данных Типы доступные SQL (в Oracle) BOOLEAN CHAR NUMBER RECORD TABLE.
Защита информации в базах данных. Два подхода Два подхода к вопросу обеспечения безопасности данных: избирательный подход обязательный подход. В обоих.
Функции Лекция 8. Назначение функций Функции - самостоятельные программные единицы, спроектированные для решения конкретной задачи. Функции по структуре.
Создание Web страниц Урок 12: PHP & MySQL Павел Бочаров.
Лекция 1 Классификация С++. Парадигмы программирования Императивная Функциональная Декларативная (логическая) Инструкция 1 Инструкция 2 Инструкция 3 Инструкция.
Транксрипт:

Программируемый клиент ORACLE Технология Pro C/C++

Два вида программного интерфейса Предкомпилятор CALL- интерфейс

Достоинства и недостатки подходов СПРАВОЧНИК ВЫЗОВОВ Call –интерфейс требует детального знания процедур и функций: названия; количество пар-ров; тип параметров; знание кодов возврата; обработка исключительных ситуаций; и т.п. Время и трудозатраты на разработку - возрастает ПРЕДКОМПИЛЯТОР Использовать проще: наглядность; понятность; структурированность Однако, мобильность программ – меньше, так как требуется предкомпилятор Oracle, позволяющий строить код исходной программы на С/С++, Fortran, Ada, Cobol, Pascal и др.

Возможности предкомпиляции Один вызов к Oracle автоматически преобразуется в несколько вызовов процедур(функций). Одна программа может применяться для работы с разными БД Несколько программ могут быть отдельно предкомпилированы и совместно выполнены (собраны).

Этапы разработки приложений отладка

Правила и соглашения технологии Pro C/C++ В программу на Pro C/C++ может быть включен любой оператор SQL Перед всеми операторами SQL ставится префикс EXEC SQL ( для некоторых уникальных конструкций EXEC ORACLE). Операторы SQL делятся на декларативные и выполняемые. После исполнения выполняемых операторов коды возврата заносятся в SQLCA Декларативные операторы не изменяют SQLCA

Структура программы на Pro C/C++

Секция DECLARE Единственная Может иметь локальную или глобальную видимость EXEC SQL BEGIN DECLARE SECTION; Описание переменных обмена данными EXEC SQL END DECLARE SECTION;

Пример EXEC SQL BEGIN DECLARE SECTION; Int n,no; Char name[11]; EXEC SQL END DECLARE SECTION; Void main(){ ………… EXEC SQL select id, fio into :n,:name from personal where num_o = :no; Для отличия переменных от атрибутов в SQL запросах используется символ :, перед именем переменной.

Для строк переменной длины в секции DECLARE используется специальный тип VARCHAR. Пример VARCHAR j[40]; Автоматически порождается Struct { unsigned short int len; unsigned char arr[40]; } j; Можно использовать в программе j.len – фактическая длина стринга j.arr – указатель на массив содержимого

INCLUDE SQLCA EXEC SQL INCLUDE SQLCA; Область SQLСA содержит: -флаги предупреждений; -информацию о событиях; -коды ошибок; -текст диагностики ошибок; -и др. служебную информацию.

Пример ….. If( sqlca.sqlcode == 0 ) continue; //успешное завершение sql else if( sqlca.sqlcode < 0 ) cout

CONNECT Соединение с ORACLE Server EXEC SQL CONNECT :oralogpass;

Пример EXEC SQL BEGIN DECLARE SECTION; Varchar oralogpass[40]; EXEC SQL END DECLARE SECTION; ……… Strcpy(oralogpass.arr,o01/o01); oralogpass.len=strlen(oralogpass.arr); EXEC SQL CONNECT :oralogpass; ………….

Тело программы Cтандартные операторы языка C/C++ ; Операторы SQL (select,delete,insert,update); Контроль распределенной обработки данных EXEC SQL DECLARE STATEMENT; Связь и управление распределенной БД EXEC SQL DECLARE DATABASE; Изменение стандартных установок EXEC ORACLE OPTION ( option=значение );

Множественный и единичный выбор с использованием массивов м указателей. Оператор массив(указатель) простая переменная Select заголовок можно можно Select.. Where нельзя можно Insert.. Values() можноможно Update.. Set.. where можно однов.можно однов.

Примеры EXEC SQL BEGIN DECLARE SECTION; char name[100][100]; int n[100]; Float sal[100]; EXEC SQL END DECLARE SECTION; …….. EXEC SQL SELECT fio,id into :name,:n FROM personal; // ok! EXEC SQL SELECT fio,id into :name,:n FROM personal WHERE many = :sal; // неверный оператор EXEC SQL INSERT INTO personal(fio,id,many) VALUES(:name, :n, :sal); // ok! EXEC SQL UPDATE SET many = :sal WHERE id = :n; //ok! EXEC SQL UPDATE SET many = :sal WHERE id = :n[0]; // no!

Оператор COMMIT WORK завершает транзакцию EXEC SQL COMMIT WORK; Оператор COMMIT WORK RELEASE осуществляет DISCONNECT EXEC SQL COMMIT WORK RELEASE;

Пример программы, которая позволяет задать ( с клавиатуры ) номера сотрудников и их оклады, а затем добавляет эти данные в таблицу #include EXEC SQL BEGIN DECLARE SECTION; varchar log_pass[40]; int loop,n[100]; float many[100]; EXEC SQL END DECLARE SECTION; EXEC SQL INCLUDE sqlca.h; main() { int i,ret; log_pass.len = strlen(log_pass.arr); EXEC SQL CONNECT :log_pass; for(i=0;i