Posted on 2006-03-08 19:54
天涯浪子 阅读(1249)
评论(0) 编辑 收藏 引用
前面介绍的变量只能进行单个数据的操作,若所用的SQL语句的输出结果有许多时,这时候就
可以用数组变量来存取.
1.注意事项:
(1)Pro*C只支持一维数组,但char类型除外,它可以支持二维数组.
(2)Pro*C不支持数组指针.
(3)Pro*C所支持的最大维数是32767.
2.数组变量的声明也声明成宿主变量的形式.如:
EXEC SQL BEGIN DECLARE SECTION
char pwd[50];
char v_name[100];
EXEC SQL END DECLARE SECTION
3.如何在SQL语句中使用数组变量?
只需要给出:和变量名称,不要个下标.通过SQL语句查出的数据会自动排列.
EXEC SQL BEGIN DECLARE SECTION;
char pwd[ 30 ] ;
char v_l_name[ 100 ] ;
short ind_l_name ;
EXEC SQL END DECLARE SECTION;
................................
................................
EXEC SQL select last_name
INTO :v_l_name :ind_l_name
from emp
where id=1 ;
以下的例子是错误的 :
for(int i=0;i<100;i++)
{
EXEC SQL select last_name
INTO :v_l_name[i] :ind_l_name[i]
from emp
where id=1 ;
}
4.指示变量也可以定义成数组,但元素数应大于或等于数组变量数.如下例子:
EXEC SQL BEGIN DECLARE SECTION;
int emp_number[100];
short ind_emp_number[100];//此处的指示变量数不能少于数组变量数.
char emp_name[100][15];
EXEC SQL END DECLARE SECTION;