Oracle Pro*C a vic konektu do databaze

Libor Chocholaty chocholaty na gncz.cz
Pátek Prosinec 8 12:33:34 CET 2000


Diky za radu, jeste bych mel dalsi vec. Jak se pracuje v ESQL s typem NUMBER.
Dostanu ho z databaze jako char[21] (tusim), ale nevim co s tim dal. Celkem
to potrebuju, signed long je mi kratky. Procetl jsem si Programminf guide jak
pro Embeded SQL tak i pro OCI, ale nebyl jsem to schopen realizovat. Maji byt
nejake fukce OCI... pro praci s typem number, ale predpoklada to nekolik
handleru, o kterych se v dokumentaci k OCI pise, ale v prikladech je to
delano uplne jinak. Budu vdecny, za radu, jak na to.

Jeste jednou diky, Libor Chocholaty


Ludek Rasek wrote:

> Libor Chocholaty wrote:
> >
> > Dobry den,
> > jak na to? Precetl jsem uz celkem dost dokumentace, ale nenasel jsem nic
> > co by alespon naznacovalo, ze to jde. Nechci "fork" bombu :-) Potrebuji
> > to v jednom procesu.
> asi takhle deklarovat ...
>  EXEC SQL DECLARE DB_DATA DATABASE;
>  EXEC SQL DECLARE DB_LOG  DATABASE;
>
> ...pak takhle pouzit
> EXEC SQL AT DB_DATA          // tady je jmeno db
>  DECLARE curname CURSOR FOR
>  SELECT * FROM table_name
>
> ... a takhle zavrit (pokud chcete commitovat, tak to udelejte predtim)
> EXEC SQL AT DB_LOG ROLLBACK RELEASE
>
> ... a pokud to chcete pouzit spolecne s OCI (treba pro bloby), tak pri
> alokaci service contextu
> musite predat jmeno db konexe (v prikladu DB_DATA) do funkce
> SQLSvcCtxGet:
> SQLSvcCtxGet( (dvoid *)SQL_SINGLE_RCTX, (text *)"DB_DATA",
> (sb4)strlen("DB_DATA"), (OCISvcCtx **)&svchp )
>
> A jeste upozorneni - davejte pozor na deadlock napr. radek po
> nezakomitovanem insertu je zamceny a pokud k nemu pristoupite ze druhe
> konexe, kde se vzal, tu se vzal deadlock:-).
>
> Ludek



Další informace o konferenci Databases