Posted on 2006-03-07 20:36
天涯浪子 閱讀(1308)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
(二)C++高級(jí)部分——Pro*C部分
1.宿主變量是一種Pro*C語言變量,用于在應(yīng)用程序中和oracle數(shù)據(jù)庫之間傳遞數(shù)據(jù),Pro*C程序中,
既可在SQL語句中引用,也可在C語句中引用的變量稱為SQL變量.
2.宿主變量一般定義在語句EXEC SQL BEGIN DECLARE SECTION和EXEC SQL
END DECLARE SECTION之間.
3.宿主變量的數(shù)據(jù)類型
數(shù)據(jù)類型 描述
char 單字符
char[n] N個(gè)定長字符數(shù)組
int 整數(shù)
short 短整數(shù)
long 長整數(shù)
float 單精度浮點(diǎn)數(shù)
double 雙精度浮點(diǎn)數(shù)
VARCHAR[n] 變長字符串
4.宿主變量的使用
若宿主變量在SQL語句中使用時(shí),應(yīng)在宿主變量前面加冒號(hào)(:).
輸入===>將應(yīng)用程序的數(shù)據(jù)傳遞到數(shù)據(jù)庫中.
int salary,emp_number;
cin>>salary;cin>>emp_number;
EXEC SQL update emp set sal=:salary where
empno=:emp_number;
輸出===>將數(shù)據(jù)庫中的數(shù)據(jù)傳遞到應(yīng)用程序中.
float v_salary;
char v_job;
EXEC SQL select sal,job INTO:v_salary,:v_job from emp
where empno=888;
cout<<v_salary<<v_job;
5.使用宿主變量的注意事項(xiàng):
(1)最好在begin 和end之間聲明宿主變量
(2)在DDL語句中不能使用宿主變量.下面的例子是錯(cuò)誤的:
char v_name[30];
cin>>v_name;
EXEC SQL DROP TABLE:v_name;