前面介绍的变量只能进行单个数据的操作,若所用的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;

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


posts - 15, comments - 31, trackbacks - 0, articles - 13

Copyright © 天涯浪子