(referát na seminář Oracle 2 - 25. 10. 2001)
Embedded SQL - umožňuje snadno přistupovat k databázi z cizího programovacího jazyka s využitím nativní funkcí
Pro*C/C++ - preprocessor pro práci s databází Oracle z C/C++
Příklad:
1: int vrat_vek(void) {
2: EXEC SQL BEGIN DECLARE SECTION;
3: int vek;
4: int id;
5: VARCHAR user[20];
6: VARCHAR passwd[20];
7: EXEC SQL END DECLARE SECTION;
8: user.arr = "db_user"; user.len = 7;
9 passwd.arr = "db_passwd"; user.len = 9;
10: EXEC SQL CONNECT :user IDENTIFIED BY :passwd;
11: id = 10;
12: EXEC SQL SELECT vek INTO :vek FROM lide WHERE id = :id;
13: EXEC SQL DISCONNECT;
14: printf("Cloveku s id %d je %d let.", id, vek);
15: return vek;
16: }
Hodnoty NULL:
:prom:indikátor
SELECT jmeno, vek INTO :struct INDICATOR :struct_ind
indikátor obsahuje -1 pokud NULL, >0 skutečná délka řetězce
Ošetřování chyb:
EXEC SQL INCLUDE SQLCA; nebo #include <sqlca.h>
SQLSTATE, SQLCODE, SQLCA, ORACA
EXEC SQL WHENEVER condition action;
condition: SQLWARNING, SQLERROR, NOT FOUND
action: CONTINUE, DO, DO BREAK, DO CONTINUE, GOTO, STOP
Praxe:
Přiklady dodané Oraclem lze nalézt v $ORACLE_HOME/precomp/demo/proc/
Prekompilace se spustí pomocí proc INAME=filename.pc
Kompilace se spustí pomocí gcc -I $ORACLE_HOME/precomp/public/ filename.c