오라클 OCI 클래스

2004년에 만들어 썼던 OCI 클래스입니다. OCI는 Oracle Call Interface의 약자(방금전까지 C가 Common인지, C언어의 C인지 해깔렸다는 ㅡㅡ;)이구요.

별도의 ODBC, OLEDB 등과 같은 MS의 데이터연결을 위한 설정 없이 오라클 서버에 연결하여 쿼리를 날릴 수 있구요. OCI를 이용한 데이터 처리는 속도면에서 그 어떤 방법보다 빠릅니다.

오라클 예제 소스를 보고 클래스화한 것이구요. 메모리릭은 아직 발견하지 못했구요. 아래는 예제 코드입니다.

#include "OCIw.h"

int main() {
    COCIw OCI;
    OCI.OpenDB("oragis", "scott", "tiger");

    OCI.ExecuteDML("INSERT INTO TEST2 (NAME, AGE) VALUES ('김형준', 29)");
    OCI.ExecuteDML("INSERT INTO TEST2 (NAME, AGE) VALUES ('홍길동', 27)");

    OCI.Query("SELECT * FROM TEST2");
    OCI.DisplayRecords();

    OCI.CloseDB();

    return 0;
}

OCIw.h 파일에 선언된 COCIw 클래스가 주인공입니다. 자유롭게 사용하시길….. 버그나 개선점은 댓글로……

원하는 수의 배수로 맞춰주는 코드

어떤 수 x가 있다고 할때, x가 자신보다 크면서 원하는 수의 최소 배수인 수를 구하는 간단한 코드. 활용처는… 예를들어, 비트맵의 가로크기를 8의 배수나 4의 배수로 맞출때 요긴하겠네요.

size_t x = 1;
size_t align_ = 8;
cout << ((x + (align_-1)) & ~(align_-1));

x는 어떤 수, align_은 맞추고자하는 배수. 결과는 콘솔로 출력되겠죠..

[출처] Applied C++