SQL/tibero 티베로 & oracle 오라클

C# 티베로 접속하는 방법 (Tibero.DataAccess.dll 다운로드/사용법)

삐뚤어진 개발자 2023. 5. 31.

개발을 할때, 구글링이 없으면 진행이 안될만큼.. 구글링의 의존도는 높은데..

티베로 디비는 자료가 많이 없는 것 같아 개발이 힘듭니다.

 

ODBC를 드라이버를 설치해서 접속하는 방법도 있던데, 그 방법의 문제는 클라이언트 PC에 모두 ODBC를 설정해줘야 한다는 아주 불편함이 있습니다.

 

티베로가 오라클을.. 본떠서(?) 만들었기 때문에, 오라클 DB와 connection도 거의 똑같습니다.

저희 팀장님 말씀으론 오라클이 2018년 쯤부터 Oracle.DataAccess.dll 을 제공했다고, 그전엔 OLE 드라이버로 커넥션 했다고 합니다.. 

(제가 찾아봤을 땐, 최소한 2012년~13년 부터는 해당 dll을 제공했습니다.)

 

클라이언트 pc 마다 모두 OLE드라이버 설치를 해줬어야 하니.. 엄청 번거로웠을꺼에요.

업계 특성상 클라이언트 pc가 정해져 있기 때문에, 가능했었을 겁니다.

 

중간에서 db 커넥션을 담당하는 서버를 개발하고, 그 서버를 클라이언트를 연결하는 구조로 갔어야.. 번거로움이 덜했을겁니다.. 머리가 안좋으면 몸이 고생한다는 말이.. 괜히 나온게 아닙니다.

 

각설하고, 클라이언트에서 odbc 설정없이, dll 만으로 티베로 DB 연결하는 방법을 소개하겠습니다.

 

 

 

Tibero.DataAccess.dll 파일 찾기

Oracle.DataAccess.dll -> Tibero.DataAccess.dll

앞 단어만 바뀌었습니다.

 

Tibero.DataAccess.dll 이 파일을 찾는 것도 일이었습니다.

구글링에서는 Tibero.DataAccess.dll 이 파일의 위치를 정확히 알려준 포스팅은 없더라구요.

 

결과적으로는 티베로 DB를 설치하셔야 합니다. (데모버전이라도)

아래의 링크에서 다운받고 설치할 수 있습니다. (회원가입이 필요할 거에요)

https://technet.tmaxsoft.com/ko/front/main/main.do

 

설치하면 아래와 같은 주소에서 파일을 찾을 수 있습니다.

C:\TmaxData\tibero6\bin 

 

 

Visual Studio 비주얼 스튜디오에서 dll 추가

비주얼 스튜디오에서 참조를 추가하는 방법은.. 쉽습니다.

아래와 같이 솔루션탐색기에서 프로젝트 우클릭 > 추가 > 참조

 

 

아래와 같이 참조 해주시면 됩니다.

 

추가된 dll에서 함수 사용하기.

프로시져 많이 사용하시죠?

아래는 Tibero.DataAccess.dll에서 제공하는 함수로 작성한 프로시저 호출 방법입니다.

커넥션 스트링도 찾아보니 자료가 찾기 힘들더라구요. ip, port, DB 명 등 알맞게 변경해서 사용하시면 됩니다.

 

아래의 코드로 테스트 한번 돌려보시고 사용하셔 보면 되겠습니다.

            //Tibero CONNECTION
            string strConn = "Data Source=(INSTANCE=(HOST=192.168.1.10)(PORT=8621)(DB_NAME=db_NM));User Id=DB_user;Password= 1234;Enlist=true;Pooling=false;Min Pool Size=1;Max Pool Size=50;Decr Pool Size=1;Incr Pool Size=1;Validate Connection=true;Promotable Transaction=Local";
            TiberoConnection conn = new TiberoConnection(strConn);
            conn.Open();

            
            TiberoCommand cmd = new TiberoCommand();
            TiberoDataAdapter adapter = new TiberoDataAdapter();
            DataSet ds = new DataSet();

            cmd.CommandText = "프로시져_NAME";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("파라미터_명1", TiberoDbType.Varchar2).Value = "값";
			// OUT PARAM
            cmd.Parameters.Add("파라미터_명2", TiberoDbType.RefCursor).Direction = ParameterDirection.Output;
            cmd.Connection = conn;

            adapter = new TiberoDataAdapter(cmd);
            adapter.Fill(ds);

            DataTable  dt = new DataTable();
            dt = ds.Tables[0];
            
            foreach (DataRow dr in dt.Rows)
            {
                string tt = dr["테이블 컬럼명"].ToString();
            }

            conn.Dispose();
            conn.Close();

 

궁금한 점이나, 하다가 안되는 오류가 있으면 댓글 남겨주세요~

 

 

 

긴글 읽어 주셔서 감사합니다.

더 궁금하신 사항은 댓글로 문의해주시면 빠르게 답변드리겠습니다.

 

 

댓글