(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