Posted on 2006-03-08 19:54
天涯浪子 閱讀(1288)
評(píng)論(0) 編輯 收藏 引用
前面介紹的變量只能進(jìn)行單個(gè)數(shù)據(jù)的操作,若所用的SQL語句的輸出結(jié)果有許多時(shí),這時(shí)候就
可以用數(shù)組變量來存取.
1.注意事項(xiàng):
(1)Pro*C只支持一維數(shù)組,但char類型除外,它可以支持二維數(shù)組.
(2)Pro*C不支持?jǐn)?shù)組指針.
(3)Pro*C所支持的最大維數(shù)是32767.
2.數(shù)組變量的聲明也聲明成宿主變量的形式.如:
EXEC SQL BEGIN DECLARE SECTION
char pwd[50];
char v_name[100];
EXEC SQL END DECLARE SECTION
3.如何在SQL語句中使用數(shù)組變量?
只需要給出:和變量名稱,不要個(gè)下標(biāo).通過SQL語句查出的數(shù)據(jù)會(huì)自動(dòng)排列.
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 ;
以下的例子是錯(cuò)誤的 :
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.指示變量也可以定義成數(shù)組,但元素?cái)?shù)應(yīng)大于或等于數(shù)組變量數(shù).如下例子:
EXEC SQL BEGIN DECLARE SECTION;
int emp_number[100];
short ind_emp_number[100];//此處的指示變量數(shù)不能少于數(shù)組變量數(shù).
char emp_name[100][15];
EXEC SQL END DECLARE SECTION;