Jakub Vrána - Embedded SQL v Oracle

(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

zpět na nadřazenou stránku