Proc*C/C++入门之常用嵌入式SQL语句

2017-01-13 19:06:46来源:作者:人点击

事务控制语句

Commit, rollback and savepoint.EXEC SQL commit;EXEC SQL commit work release;EXEC SQL rollback work release;

数据定义语句(DDL)

create, alter, drop
EXEC SQL CREAT TABLE t1(cola int);EXEC SQL DROP TABLE t1;EXEC SQL ALTER TABLE t1 add(faxno number);

注意:对象名, 列名不能用宿主变量.`

自动提交事务

Alter: alter table emp add( faxno number );Analyze: analyze table 

数据操作语句(DML)

EXEC SQL Select …….;EXEC SQL Insert …….;EXEC SQL update …….;EXEC SQL Delete …….;

用单个变量操作单行单列

char ename[35];int empno=20;EXEC SQL select emp_name INTO :ename from emp where emp_no=:empno;cout<<“the name is “<< ename;

注意:

字符串长度定义
指示变量的运用

用多个变量操作单行多列

变量顺序与字段名一至

char v_name[31], char v_job[21];float v_salary;int empno=20;EXEC SQL select emp_name,job,salaryINTO :v_name,:v_job,:v_salaryFROM emp WHERE emp_no=:empno;cout<

用结构(struct )操作单行多列

宿主结构是指包含多个宿主变量的C语言结构,以此可简化单行多列操作。

Struct{    int no;    char    name[10];    int salary;}emp_record;

输入:
EXEC SQL INSERT INTO emp(empno,ename,sal) VALUES (:emp_record);
输出:
EXEC SQL SELECT empno,ename,sal INTO :emp_record WHERE rownum=1;

注意:

1.可用结构pointer,但要分配空间。
2.结构成员的数据类型,顺序必须与SQL语句一至。
3.不能用嵌套的结构。
4.不能用C联合(UNION)

Struct{    int no;    char    name[10];    int salary;}*emp_record;emp_record = (struct emp_record *)malloc(sizeof(struct emp_record ));EXEC SQL SELECT empno,ename,sal INTO :emp_record            WHERE rownum=1;

用数组(array)操作多行多列

为了降低网络开销,提高程序性能。

数组和 INSERT 语句
int num[100]; float salary[100]; char name[100][25];/** 在此为ARRAY赋值 **/EXEC SQL INSERT INTO emp(empno,ename,sal) VALUES (:num, :name, :salary);
数组和 UPDATE / DELETE 语句
Char name[100]; float salary[100];…….. /** 在此为ARRAY赋值 **/EXEC SQL UPDATE EMP SET sal=:salary WHERE ename=:name;Char name[100];…….. /** 在此为ARRAY赋值 **/EXEC SQL DELETE FROM emp WHERE ename=:name;
数组和 SELECT 语句
Char name[100][25];EXEC SQL SELECT ename INTO :name FROM emp        WHERE dept_num=2;For(int j=0;j

注意事项:

1.只有CHAR 和 ARCHAR 可为二维数组。 2.如数组INDEX不同,按最小操作。 3.在SELECT语句的WHERE子句中,不能用数组。 4.数组元素最大值:32767

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台