SlideShare a Scribd company logo
1 of 19
Программируемый клиент  ORACLE Технология  Pro C/C++
Два вида программного интерфейса ,[object Object],[object Object]
Достоинства и недостатки подходов ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Возможности предкомпиляции ,[object Object],[object Object],[object Object]
Этапы разработки приложений отладка
Правила и соглашения технологии  Pro C/C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Структура программы на  Pro C/C++
Секция  DECLARE ,[object Object],[object Object],[object Object],[object Object],[object Object]
Пример 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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Пример … .. If( sqlca.sqlcode == 0 ) continue; // успешное завершение  sql  else if( sqlca.sqlcode < 0 ) cout << “ Ошибка выполнения ”; else cout << “  Выбрана последняя строка ”;
CONNECT ,[object Object],[object Object]
Пример EXEC SQL BEGIN DECLARE SECTION; Varchar oralogpass[40]; EXEC SQL END DECLARE SECTION; ……… Strcpy(oralogpass.arr,”o01/o01@stud”); oralogpass.len=strlen(oralogpass.arr); EXEC SQL CONNECT :oralogpass; ………… .
Тело программы ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Множественный и единичный выбор с использованием массивов м указателей. Оператор  массив(указатель)  простая переменная 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 <stdio.h> #include <string.h> 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; strcpy(log_pass.arr,”o01/o01@stud”); log_pass.len = strlen(log_pass.arr); EXEC SQL CONNECT :log_pass; for(i=0;i<100;i++) { ret=scanf(“%d %f
”, &n[i],&many[i]); if(ret == EOF|| ret ==0|| n[i]==0) break; } loop=i; EXEC SQL FOR :loop INSERT INTO sotrud (Tnum,okl) VALUES(:n,:many); EXEC SQL COMMIT WORK RELEASE; }

More Related Content

What's hot

проектная деятельность.
проектная деятельность.проектная деятельность.
проектная деятельность.
guestffb2e9
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
wud
 
Vuu 07 06 23
Vuu 07 06 23Vuu 07 06 23
Vuu 07 06 23
dorlov
 
Юрий Трухин (InfoboxCloud)
Юрий Трухин (InfoboxCloud)Юрий Трухин (InfoboxCloud)
Юрий Трухин (InfoboxCloud)
Ontico
 
Домашняя л/р "Испарение"
Домашняя л/р "Испарение"Домашняя л/р "Испарение"
Домашняя л/р "Испарение"
brodo_begens
 
Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009
Denis Dovgopoliy
 
Xen App Sergey Kh
Xen App Sergey KhXen App Sergey Kh
Xen App Sergey Kh
Liudmila Li
 
Вебинар компании VMC по продуктам Parallels 2009
Вебинар компании VMC по продуктам Parallels 2009Вебинар компании VMC по продуктам Parallels 2009
Вебинар компании VMC по продуктам Parallels 2009
areconster
 
Экспресс анализ лоты ФАИТа 2008 V4 2
Экспресс анализ  лоты ФАИТа 2008  V4 2Экспресс анализ  лоты ФАИТа 2008  V4 2
Экспресс анализ лоты ФАИТа 2008 V4 2
Victor Gridnev
 
Global Compact Performance Model
Global Compact Performance ModelGlobal Compact Performance Model
Global Compact Performance Model
HOSHVA PR
 
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
i_day
 
положение о правилах пользования библиотекой
положение о правилах пользования библиотекойположение о правилах пользования библиотекой
положение о правилах пользования библиотекой
pkgpkg
 
плавание
плаваниеплавание
плавание
guestb4b2c5
 
Нестандартные приемы программирования на Delphi
Нестандартные приемы программирования на DelphiНестандартные приемы программирования на Delphi
Нестандартные приемы программирования на Delphi
StAlKeRoV
 
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултуудМенежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Adilbishiin Gelegjamts
 
Result File
Result FileResult File
Result File
anzor
 

What's hot (19)

проектная деятельность.
проектная деятельность.проектная деятельность.
проектная деятельность.
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
 
Vuu 07 06 23
Vuu 07 06 23Vuu 07 06 23
Vuu 07 06 23
 
Юрий Трухин (InfoboxCloud)
Юрий Трухин (InfoboxCloud)Юрий Трухин (InfoboxCloud)
Юрий Трухин (InfoboxCloud)
 
Домашняя л/р "Испарение"
Домашняя л/р "Испарение"Домашняя л/р "Испарение"
Домашняя л/р "Испарение"
 
Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009Investor Day Report @ Internet Ukraine 2009
Investor Day Report @ Internet Ukraine 2009
 
Xen App Sergey Kh
Xen App Sergey KhXen App Sergey Kh
Xen App Sergey Kh
 
Вебинар компании VMC по продуктам Parallels 2009
Вебинар компании VMC по продуктам Parallels 2009Вебинар компании VMC по продуктам Parallels 2009
Вебинар компании VMC по продуктам Parallels 2009
 
7
77
7
 
Экспресс анализ лоты ФАИТа 2008 V4 2
Экспресс анализ  лоты ФАИТа 2008  V4 2Экспресс анализ  лоты ФАИТа 2008  V4 2
Экспресс анализ лоты ФАИТа 2008 V4 2
 
Global Compact Performance Model
Global Compact Performance ModelGlobal Compact Performance Model
Global Compact Performance Model
 
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
Бизнес 2.0: инновации в интернете(Сергей Панарин, ACTIVITI)
 
положение о правилах пользования библиотекой
положение о правилах пользования библиотекойположение о правилах пользования библиотекой
положение о правилах пользования библиотекой
 
плавание
плаваниеплавание
плавание
 
Slide analyst
Slide analystSlide analyst
Slide analyst
 
Проблема внутриутробного инфицирования в современном акушерстве
Проблема внутриутробного инфицирования в современном акушерствеПроблема внутриутробного инфицирования в современном акушерстве
Проблема внутриутробного инфицирования в современном акушерстве
 
Нестандартные приемы программирования на Delphi
Нестандартные приемы программирования на DelphiНестандартные приемы программирования на Delphi
Нестандартные приемы программирования на Delphi
 
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултуудМенежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
 
Result File
Result FileResult File
Result File
 

Viewers also liked

Black Swan Theory
Black Swan TheoryBlack Swan Theory
Black Swan Theory
Ilya Nikitin
 

Viewers also liked (7)

Поиск нечетких дубликатов видео
Поиск нечетких дубликатов видеоПоиск нечетких дубликатов видео
Поиск нечетких дубликатов видео
 
Методология поиска и идентификации нечетких дубликатов видеоизображений
Методология поиска и идентификации нечетких дубликатов видеоизображенийМетодология поиска и идентификации нечетких дубликатов видеоизображений
Методология поиска и идентификации нечетких дубликатов видеоизображений
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...
 
Black Swan Theory
Black Swan TheoryBlack Swan Theory
Black Swan Theory
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

C++ with DB

  • 1. Программируемый клиент ORACLE Технология Pro C/C++
  • 2.
  • 3.
  • 4.
  • 6.
  • 8.
  • 9. Пример 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 запросах используется символ ‘:’ , перед именем переменной.
  • 10. Для строк переменной длины в секции DECLARE используется специальный тип VARCHAR. Пример VARCHAR j[40]; Автоматически порождается Struct { unsigned short int len; unsigned char arr[40]; } j; Можно использовать в программе j.len – фактическая длина стринга j.arr – указатель на массив содержимого
  • 11.
  • 12. Пример … .. If( sqlca.sqlcode == 0 ) continue; // успешное завершение sql else if( sqlca.sqlcode < 0 ) cout << “ Ошибка выполнения ”; else cout << “ Выбрана последняя строка ”;
  • 13.
  • 14. Пример EXEC SQL BEGIN DECLARE SECTION; Varchar oralogpass[40]; EXEC SQL END DECLARE SECTION; ……… Strcpy(oralogpass.arr,”o01/o01@stud”); oralogpass.len=strlen(oralogpass.arr); EXEC SQL CONNECT :oralogpass; ………… .
  • 15.
  • 16. Множественный и единичный выбор с использованием массивов м указателей. Оператор массив(указатель) простая переменная Select заголовок можно можно Select .. Where нельзя можно Insert.. Values() можно можно Update .. Set.. where можно однов. можно однов.
  • 17. Примеры 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!
  • 18. Оператор COMMIT WORK завершает транзакцию EXEC SQL COMMIT WORK; Оператор COMMIT WORK RELEASE осуществляет DISCONNECT EXEC SQL COMMIT WORK RELEASE;
  • 19. Пример программы, которая позволяет задать ( с клавиатуры ) номера сотрудников и их оклады, а затем добавляет эти данные в таблицу #include <stdio.h> #include <string.h> 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; strcpy(log_pass.arr,”o01/o01@stud”); log_pass.len = strlen(log_pass.arr); EXEC SQL CONNECT :log_pass; for(i=0;i<100;i++) { ret=scanf(“%d %f ”, &n[i],&many[i]); if(ret == EOF|| ret ==0|| n[i]==0) break; } loop=i; EXEC SQL FOR :loop INSERT INTO sotrud (Tnum,okl) VALUES(:n,:many); EXEC SQL COMMIT WORK RELEASE; }