宿主结构体变量¶
声明宿主结构体变量¶
宿主结构体包括输入宿主结构体和输出宿主结构体。输入宿主结构体用于将应用程序的数据传递到数据库中。当使用输入宿主结构时,必须 首先给输入宿主结构体的成员赋值。输出宿主结构体用于接收数据库数据。通过在SELECT,DML和FETCH的INTO子句中使用输出宿主结构体, 可以将数据库中的数据传递到应用程序中。宿主结构体变量是指与SQL语句交互的结构体变量,它也是宿主变量的一种,所以必须在 DECLARE段中说明。
声明一个宿主数组变量必须符合如下准则:
必须在DECLARE段明确说明;
不得与SQL保留字同名;
必须使用C 数据类型来声明宿主结构体变量;
必须确保神通数据库数据类型和C 数据类型的正确的对应关系。
下面给出了声明宿主结构体变量的实例:
EXEC SQL BEGIN DECLARE SECTION;
struct {
int id;
char name[10];
float grade;
}stu_struct;
struct stu_struct {
int id;
char name[10];
float grade;
}*pstu_struct;
EXEC SQL END DECLARE SECTION;
注解
结构体成员的数据类型以及顺序必须与内嵌SQL语句中列的数据类型和顺序匹配。 不能使用嵌套宿主结构。 不能使用C联合(union)作为宿主结构,也不能在宿主结构中嵌套联合。
使用宿主数组变量¶
使用一个宿主数组变量必须符合如下准则:
必须先声明后使用;
在SQL语句里必须以冒号(:)作前缀;
在C语句中不得以冒号作前缀;
可以在SELECT,DML,和FETCH的INTO子句中使用;
可以定义指针宿主结构体,当使用指针宿主结构体时必须定义结构名,并且必须为结构变量分配内存空间;
可以定义结构体数组变量。
当使用输入数组结构时,必须首先给输入宿主结构的成员赋值。