Pro*C

■ProCのコンパイル
ProCプログラム
 ↓プリコンパイル
Cプログラム
 ↓コンパイル
オブジェクト・モジュール
 ↓リンク(Oracleランタイムライブラリ:SQLLIB)
ぜ孫團皀献紂璽


■データベースへの接続例
.罅璽供写勝▲僖好錙璽浜僂諒竸宣言
VARCHAR username[20];
VARCHAR password[40];

▲罅璽供写勝▲僖好錙璽匹離札奪
strncpy((char *) username.arr, "SCOTT", 20);
username.len = strlen((char *) username.arr);
strncpy((char *) password.arr, "TIGER", 40);
password.len = strlen((char *) password.arr);

エラーハンドラの設定
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");

ぅ如璽織戞璽垢悗寮楝
EXEC SQL CONNECT :username IDENTIFIED BY :password;



■問合せ例
.如璽審頁射儿渋ぢ里寮觚
struct {
 VARCHAR emp_name[UNAME_LEN];
 float salary;
 float commission;
} emprec;

対応するインジケータ変数構造体の宣言
struct {
 short emp_name_ind;
 short sal_ind;
 short comm_ind;
} emprec_ind;

SELECT実行
EXEC SQL SELECT ename, sal, NVL(comm, 0)
     INTO :emprec INDICATOR :emprec_ind
     FROM EMP
     WHERE EMPNO = :emp_number;



■ProCで使用可能な主なC言語データ型(Oracle独自定義のもの)
(源型
CHAR: 固定長文字列(65535 バイト以下)
VARCHAR: 可変長文字列(65533 バイト以下)
VARCHAR2: 可変長文字列(65535 バイト以下)
STRING: NULL で終了する可変長文字列

⊃値型
NUMBER: 100をベースとして表された10 進数
INTEGER: 符号付き整数
FLOAT: 実数
LONG: 固定長文字列(2**31-1 バイトまで)

その他
ROWID: バイナリ値(外部の長さはシステムに依存)
DATE: 固定長の日付/ 時刻値(7 バイト)


■ホスト変数に使用できるC言語のデータ型
(源型
char[n]
VARCHAR[n]

⊃値型
int
short
long
float
double


■インジケータ変数が示す意味
 0:SELECTは、正常終了
 -1:SELECTで、NULL が戻される。
2006年06月27日(火) 23:27:26 Modified by alivealive




スマートフォン版で見る

×

この広告は60日間更新がないwikiに表示されております。