TRAÛ LÔØI BAØI TAÄP ORACLE
CHÖÔNG 21 LAÄP TRÌNH ORACLE OCI VÔÙI C++ 1. Oracle OCI laø gì? Laäp trình vaø truy xuaát cô sôû döõ lieäu Oracle baèng OCI coù nhöõng öu vaø khuyeát ñieåm gì so vôùi OO4O vaø ODBC. Laäp trình truy xuaát cô sôû döõ lieäu Oracle baèng caùc haøm trong thö vieän OCI nhanh hôn OO4O vaø ODBC (caùc giao tieáp OO4O vaø ODBC haàu heát ñeàu goïi ñeán caùc haøm OCI) nhöng maõ leänh phöùc taïp vaø raát khoù baûo trì (Xem theâm lyù thuyeát). 2. Moät chöông trình OCI caàn phaûi coù nhöõng thö vieän gì khi bieân dòch vaø thöïc thi? Moät chöông trình OCI vieát baèng C++ sau khi bieân dòch ra taäp tin thöïc thi .EXE caàn phaûi coù theâm thö vieän caùc file DLL hoã trôï thö vieän OCI keøm theo (nhöõng thö vieän naøy ñöôïc caøi ñaët chung vôùi phaàn meàm Oracle neáu baïn choïn Option hoã trôï OCI trong quaù trình caøi ñaët). 3. Handle vaø Descriptor laø gì? Thö vieän OCI söû duïng chuùng nhö theá naøo? Xem lyù thuyeát. 4. Keát noái vôùi cô sôû döõ lieäu Oracle baèng caùc haøm trong thö vieän OCI ñöôïc thöïc hieän nhö theá naøo? cho ví duï. Keát noái vaø laøm vieäc vôùi cô sôû döõ lieäu Oracle thoâng qua caùc haøm trong thö vieän OCI thöôøng thöïc hieän nhöõng thao taùc sau:
Caáp phaùt caùc handle vaø Descriptor caàn thieát.
Keát noái vôùi moät cô sôû döõ lieäu baèng haøm OCILogon (hoaëc nhieàu cô sôû döõ lieäu baèng haøm OCIServerAttach).
Môû cursor vaø thöïc thi leänh SQL.
Ñoùng cursor.
Ngaét keát noái vôùi cô sôû döõ lieäu.
TRAÛ LÔØI BAØI TAÄP ORACLE
Giaûi phoùng Handle vaø caùc Decscriptor ñaõ caáp phaùt.
Ví duï: //Con troû ñeán caùc caáu truùc handle
static OCIEnv *envhp; static OCIError *errhp; static OCIServer *srvhp;
//Chieàu daøi caùc bieán chuoãi int namelen=5; int passwdlen=5; int dbnamelen=10;
//Keát noái vôùi cô sôû döõ lieäu
OCILogon(envhp, errhp, &srvhp, ”scott”, namelen,”tiger”, passwdlen, ”ExampleDB”,dbnamelen);
5. Ñieàu khieån leänh SQL hay khoái leänh PL/SQL ñöôïc thöïc hieän nhö theá naøo trong caùc chöông trình OCI? cho ví duï. Haõy goïi haøm OCIStmtExecute() ñeå thöïc thi leänh SQL cuõng nhö caùc khoâí leänh PL/SQL cuûa Oracle (xem theâm lyù thuyeát).