嵌入式的SQL程序设计

--嵌入式SQL程序设计

--SQL2005管理员大全

--嵌入SQL语句的应用程序叫做宿主程序,书写该程序的语言称为宿主语言。

--宿主语言可以是C、 C++、JAVA等。嵌入的SQL语句与交互式SQL在语法上类似

--但是嵌入式SQL在个别语句上有所扩充

--嵌入的SQL语句主要有两种类型:执行性SQL语句和说明性SQL语句。执行性SQL语句可用来

--定义 数据、查询和操纵数据库中的数据,每一执行性语句真正对数据库进行操作。说明性语句

--用来说明 通信域和SQL语句中用到的变量。说明性语句不生成执行代码

--在C语言中使用嵌入式SQL

--SQLSERVER提供对C的嵌入式语言的支持,在用于C语言的嵌入式SQL( 以下简称ESQL/C)

--大部分语法都来源于TSQL语法,只是在某些细节上略有不同。

--在ESQL/C中,关键字和SQL语句都是不区分大小写的,但是对于游标、连接和动态SQL语句

--的定 义却是区分大小写的,例如,以下定义的两个游标是完全不同的

DECLARE RED_CURSOR CURSOR

DECLARE red_CURSOR CURSOR

--1、连接到SQLSERVER

--在ESQL/C中,连接到SQLSERVER用connect to语句,语法如下:

CONNECT TO servername.databasename AS connection_name USER LOGIN.PASSWORD

--当只有一个连接时,可以不指定连接的名称,但是如果应用程序使用了两个或以上的连接

--,必 须为每个连接指定不同的名称。当用connect to定义了连接后,所有的后续操作都将

--在当前连接上 进行,如果想使用另外一个连接,就要用SET CONNECTION来改变当前的连接,语法如下:

SET CONNECTION connection_name

--关闭与数据的连接用DISCONNECT,可以关闭当前连接或关闭所有连接,语法如下

DISCONNECT connection_name | ALL | CURRENT

--例子:连接机器red上数据库名为book和test的SQLSERVER数据库,数据库用户名为sa

--密码为空 ,然后分别关闭他们

EXEC SQL CONNECT TO red.book AS con1 USER sa;

EXEC SQL CONNECT TO red.test AS con2 USER sa;

EXEC SQL DISCONNECT CON1

EXEC SQL DISCONNECT CON2

--2、使用宿主变量

--宿主变量作为标准的C变量在ESQL/C中定义,使用宿主变量可以在SQL语句中 指定输入参数或接收输出参数

--定义宿主变量的语句写在BEGIN DECLARE SECTION和END DECLARE SECTION语句之间

EXEC SQL BEGIN DECLARE SECTION

INT CompanyID

CHAR CompanyName[30]

EXEC SQL END DECLARE SECTION

--使用宿主变量时,要在宿主变量前加一个冒号作为引用宿主变量的标志

"WHERE CompanyID=:CompanID"

--注意:如果从数据库中传给宿主变量的值是NULL,那么宿主变量将会把NULL值转换为-1处理,例如 :虽然给

--宿主变量Address赋予了NULL值,以下SQL语句还是不会返回Address为NULL值的记录

EXEC SQL SELECT FROM Company

WHERE Address=:ADDRESS




转载请注明:http://www.xcqg58.com/lsqy/lsqy/8.html