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 Test