Posted on 2006-03-07 23:56
天涯浪子 閱讀(1779)
評論(1) 編輯 收藏 引用
1.指示變量用于處理數據庫的NULL值,監督和管理與其相關聯的宿主變量,是短整型變量(short).
2.一個指示變量只管理一個宿主變量,指示變量緊跟在宿主變量后面.
3.語法結構有兩種方式:
(1):host_variable INDICATOR :indicator_varible
(2):host_variable : indicator_variable//習慣上常用此種方法
4.指示變量的作用:
主要用在輸出,即當宿主變量用于接收數據庫的返回數據時.通過在宿主變量后用指示變量,
檢測是否返回了NULL.
-1:表示數據庫表列的值為NULL
=0:將原值原封不動的賦給宿主變量.
>0:將數據庫表列的值截斷后賦給宿主變量,指示變量值為該列值的原始長度.
5.指示變量的例子如下:
習慣上一般在聲明宿主變量的時候在其前面加v_,在聲明指示變量時候在其前面加ind_.
#include <iostream>
using namespace std;
EXEC SQL INCLUDE SQLCA;
//聲明宿主變量
EXEC SQL BEGIN DECLARE SECTION;
char pwd[ 30 ] ;
char v_l_name[ 100 ] ;
short ind_l_name ;
EXEC SQL END DECLARE SECTION;
int main(){
EXEC SQL WHENEVER SQLERROR STOP ;//說明對sqlerror的處理方式
//連接數據庫
cout<<"enter username and passwd>";
cin>>pwd ;
EXEC SQL CONNECT :pwd;
cout<<"connect db using "<< pwd<<" ok."<<endl;
EXEC SQL select last_name
into :v_l_name :ind_l_name
from emp
where id=1 ;
//通過指示變量來判斷宿主變量的值是否為NULL,并進行輸出處理.
if( ind_l_name == -1 ){
cout<<"-- NULL --" << endl;
}else if( ind_l_name > 0 ){
cout<< v_l_name <<"..."<< endl;
}else{
cout<<"last name=>" << v_l_name << endl;
}
//完成SQL語句并釋放內存.
EXEC SQL COMMIT WORK RELEASE ;
return 0 ;
}