指示变量

Posted on 2006-03-07 23:58 天涯浪子 阅读(913) 评论(0)  编辑 收藏 引用 所属分类: (二)C++高级部分——Pro*C部分



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 ;
}


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


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

Copyright © 天涯浪子