错误!未指定书签。
错误!未指定书签。
(文档编号:错误!未指定书签。)
方正奥德计算机系统有限公司
错误!未指定书签。
文档管理信息表
主 题 版 本 内 容 关 键 字 参考文档 提交时间 撰 写 人 错误!未指定书签。 错误!未指定书签。 错误!未指定书签。 错误!未指定书签。 错误!未指定书签。 错误!未指定书签。 错误!未指定书签。
文档修改记录表
修改人 修改时间 修改内容
错误!未指定书签。
目 录
一
概述 ......................................................................................................................................... 1
SQL语句嵌入方法 ........................................................................................................ 1 宿主变量 ........................................................................................................................ 1 头文件 ............................................................................................................................ 2 错误诊断 ........................................................................................................................ 2 ESQL/C程序的编译 ...................................................................................................... 4
1.1 1.2 1.3 1.4 1.5 二
C语言程序中嵌入的SQL语句 ............................................................................................ 5
有关数据库和表的权限................................................................................................. 5
2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.3 2.4 2.5 2.6 三
选择数据库(DATABASE) ............................................................................ 5 关闭数据库(CLOSE DATABASE) ............................................................... 5 创建表(CREATE TABLE) ............................................................................ 5 删除表(DROP TABLE) ................................................................................ 5
数据查询语句SELECT ................................................................................................. 5 插入语句INSERT .......................................................................................................... 7 数据修改语句UPDATE ................................................................................................ 7 数据删除语句DELETE ................................................................................................ 7 PREPARE语句 .............................................................................................................. 8
游标 ......................................................................................................................................... 9
滚动游标 ........................................................................................................................ 9
DECLARE ......................................................................................................... 9 OPEN ................................................................................................................ 9 FETCH .............................................................................................................. 9 CLOSE............................................................................................................. 10 FREE ............................................................................................................... 11
更新游标 ...................................................................................................................... 11
3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.2
1
错误!未指定书签。
一 概述
1.1 SQL语句嵌入方法
任何可以交互式输入的SQL语句,例如数据定义语句、数据检索语句、数据控制语句等,都可以嵌入到C程序中。
可以使用两种方法指明SQL语句:
一种是在SQL语句之前用“$”作为前缀,如: #include
另一种是在SQL语句之前使用ANSI标准的EXEC SQL关键字来标识,如: #include
EXEC SQL database book;
EXEC SQL delete from book where book_num=100; …
$ database book;
$ delete from book where book_num=100; …
1.2 宿主变量
SQL语句中可以有变量,变量可以出现在交互式SQL语句中常量可以出现的任何位置,SQL语句中的这种变量称为宿主变量。INFORMIX-ESQL/C程序通过宿主变量在C语句和SQL语句中传递数据。一般情况下,在宿主变量前加“$”符来标识。如:
$ update book set book_price = $fNewPrice;
1
错误!未指定书签。
在定义宿主变量时也需要在定义语句前用“$”符来标识,如: $ int iNumber; $ char name[10]; $ struct student {
另外,宿主变量可以像C语言变量一样用在C语言表达式中,如: $ char dbname[11]; gets( dbname, 80 ); $ database $dbname;
int no; char name[10];
} stu;
1.3 头文件
INFORMIX-ESQL/C提供了许多头文件,其中最常用的是sqlca.h,它用于确定SQL语句的返回值和SQL语句执行后的其他信息,在ESQL/C程序中是必须包含的,包含方法是“$include sqlca”。另外,如果自定义的头文件中包含SQL语句或宿主变量的定义,也必须用同样的方法进行说明,如:$include filename。如果源文件在某个路径下,应将其用引号括起来,如:
#include
$include \
1.4 错误诊断
在INFORMIX-ESQL/C程序中执行一条SQL语句时,数据库服务器会返回几种信息,反映SQL语句的执行情况,包括:
? 该SQL语句的完成状况; ? 有关性能的信息;
2