Pro*C/C++简介
1概念
什么是Pro*C/C++
? 通过在过程化编程语言C/C++中嵌入SQL语句而开发出的应用程序
什么是嵌入式SQL
? 在通用编程语言中使用的SQL称为嵌入式SQL
? 在SQL
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
中定义了多种语言的嵌入式SQL
? 各个厂商对嵌入式SQL的具体实现不同
什么是Pro*C/C++程序
? 在C/C++语言中嵌入SQL语句而开发出的应用程序称为Pro*C/C++程序。
? 目的:使c/c++这种高效率语言成为访问数据库的工具
什么是宿主语言
嵌入式SQL的载体是宿主语言
宿主语言 Pro程序
C/C++ Pro*C/C++
FORTRAN Pro*FORTRAN
PASCAL Pro*PASCAL
COBOL Pro*COBOL
PL/I Pro*PL/I
Ada Pro*Ada
访问数据库的方法
? (1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
? (2)用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;
? (3) 利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。
访问oracle数据库的方法
官方文档权威解释
? The term embedded SQL refers to SQL statements placed within an application program. Because it houses the SQL statements, the application program is called a host program, and the language in which it is written is called the host language. For example, Pro*C/C++ provides the ability to embed certain SQL statements in a C or C++ host program.
官方文档路径
? 1开发文档路径:F:/E11882_01_oracle官方文档/2 Precompiler Concepts/Key Concepts of Embedded SQL Programming/
? 2 SQL书路径:左上角 booklist
SQL Developer User's Guide
SQL Language Quick Reference
SQL Language Reference
2程序结构
Pro*C程序实例
#include
#include
#include
#include "SQLca.h"
EXEC SQL BEGIN DECLARE SECTION;
char username[32];
char password[32];
char dname[25];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE sqlca;
void sqlerror();
main()
{
EXEC SQL WHENEVER SQLERROR DO sqlerror();
strcpy(username,“itcast");
strcpy(password, “itcast");
EXEC SQL CONNECT:username IDENTIFIED BY:password;
EXEC SQL select dname into :dname from dept where id=10;
printf(“dname:%s \n”, dname);
}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n---- oracle error detected:\n");
printf("%.70s\n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
}
Pro*C程序结构
l Include 头文件 (c/c++ and pro*c/c++)
l 定义变量
l 定义函数
l main
连结数据库: connect
SQL 操作语句: EXEC SQL …….;
exception handler
断开连结:
EXEC SQL COMMIT / ROLLBACK WORK release