Tibero

Size: px
Start display at page:

Download "Tibero"

Transcription

1 Tibero Driver 연결가이드 Copyright 2013 TIBERO Co., Ltd. All Rights Reserved.

2 Copyright Notice Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 우 ) Restricted Rights Legend All TIBERO Software (Tibero ) and documents are protected by copyright laws and international convention. TIBERO software and documents are made available under the terms of the TIBERO License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TIBERO Co., Ltd. 이소프트웨어 (Tibero ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TIBERO Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TIBERO의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero is a registered trademark of TIBERO Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tibero 는 TIBERO Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. 안내서정보안내서제목 : Tibero Driver 연결가이드발행일 : 소프트웨어버전 : Tibero 5 안내서버전 : 2.1.1

3 내용목차 안내서에대하여... vii 제1장 ODBC 연결 ODBC 개념 Tibero ODBC 설치및구성 ODBC 설치파일 ODBC 드라이버등록 ODBC 연결 Windows 64bit에 32bit ODBC 설치 ODBC Manager 설치 문제해결 로그발생 예제 연결예제 타입관련예제 제2장 OLE DB 연결 OLE DB 개념 OLE DB의역할 OLE DB 내부구조 OLE DB 기능 Tibero OLE DB Provider 설치및구성 OLE DB 설치파일 OLE DB Provider 등록 OLE DB 연결 Windows 64bit에 32bit OLE DB 설치 Tibero OLE DB 연동 ADO(ActiveX Data Objects) ADO.NET Enterprise Library 연동 OLE DB 전환 Oracle OLE DB 문제해결 로그발생 에러메시지처리 연동할때문제점 예제 ASP ASP.NET C# 제3장 JDBC 연결 Tibero iii

4 3.1. JDBC 개념 Tibero JDBC JDBC 드라이버 드라이버연동 JDBC 전환 Oracle JDBC 문제해결 로그발생 예제 기본예제 타입관련예제 제4장 tbesql 연결 tbesql 개념 tbesql 기본동작 tbesql 사용 관련파일 프리컴파일 컴파일및링크 문제해결 로그발생 단계별대처방안 에러코드 예제 makefile 예제 iv Tibero Driver 연결가이드

5 그림목차 [ 그림 1.1] ODBC... 1 [ 그림 1.2] ODBC 버전확인... 3 [ 그림 1.3] ODBC 등록확인... 5 [ 그림 1.4] ODBC 데이스소스추가... 6 [ 그림 1.5] IP, PORT 방식... 6 [ 그림 1.6] SID 방식... 7 [ 그림 1.7] tbdsn.tbr... 7 [ 그림 1.8] ODBC 접속테스트... 8 [ 그림 1.9] 32bit용 ODBC 데이터원본관리자실행및확인... 9 [ 그림 1.10] ODBC(=tbCLI) 환경변수적용 [ 그림 2.1] UDA Architecture [ 그림 2.2] OLE DB 내부구조 [ 그림 2.3] OLE DB 등록팝업 [ 그림 2.4] udl 파일생성 [ 그림 2.5] OLE DB 등록확인 [ 그림 2.6] OLE DB 직접연결방식 [ 그림 2.7] OLE DB DSN 이용방식 [ 그림 2.8] OLE DB 연결테스트 [ 그림 2.9] 32bit용 OLE DB 등록확인 [ 그림 2.10] Visual Studio 에 Tibero DLL 참조추가 [ 그림 3.1] TYPE [ 그림 3.2] TYPE [ 그림 3.3] TYPE [ 그림 3.4] TYPE [ 그림 4.1] tbesql 기본동작 [ 그림 4.2] 프리컴파일소스생성 Tibero v

6

7 안내서에대하여 안내서의대상 ODBC, OLE DB, JDBC, ESQL 와같은다양한인터페이스를통해 Tibero 로연결하기위한각 Driver 연동 방법을소개한다. 안내서의전제조건 본안내서는 Driver 연결과정을설명한안내서이다. 따라서본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 RDBMS 의이해 운영체제및시스템환경의이해 UNIX 계열 (LINUX 포함 ) 의기본지식 안내서의제한조건 본안내서는 Tibero 를실무에적용하거나운용하는데필요한모든사항을포함하지않는다. 안내서에대하여 vii

8 안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 viii Tibero Driver 연결가이드

9 제 1 장 ODBC 연결 본장에서는 ODBC 에대한개념과 Tibero ODBC 의설치및구성에대해서설명한다 ODBC 개념 ODBC(Open DataBase Connectivity) 는모든 DBMS에독립적인데이터베이스애플리케이션을작성하기위한 API(Application Programming Interface) 의집합으로특정한 DBMS를사용하는사람이 ODBC 드라이버를통하여다른 DBMS를사용할수있게한다. 따라서 DBMS에연결하기위해 ODBC 드라이버관리자 (ODBC Driver Manager) 를호출하여사용하려는드라이버를호출하고그드라이버는 SQL(Structured Query Language) 을사용하여 DBMS와교신하게된다. 즉, ODBC는사용자와각데이터베이스엔진사이를연결해사용자가공통된인터페이스로각각의다른데이터베이스엔진에접근하게하여원하는데이터를참조할수있도록한다. [ 그림 1.1] ODBC Tibero ODBC Tibero ODBC 는 2.x, 3.x 버전을모두지원하며 ODBC 표준 61 개함수중아래 2 개함수를지원하지않 는다. 실제로함수는있으나사용을할경우 not implemented 에러가발생한다. 함수 SQLBrowseConnect 설명 연결문자열을찾아내기위해 iterative 한방법을제공하는 API 이다. 제 1 장 ODBC 연결 1

10 함수 SQLSetScrollOptions 설명 3.x 에서 SQLSetStmtAttr 로대체한다. ODBC 표준관련링크 API에대한관련정보는 tbcli Tibero가제공하는 Call Level Interface(CLI) 로사용자의애플리케이션프로그램과 Tibero간의 SQL 인터페이스역할을수행한다. tbcli는 ODBC(Open Database Connectivity) 및 X/Open Call Level Interface Standard를기초로개발되었으며 Tibero ODBC=tbCLI로인식해도무방하다 Tibero ODBC 설치및구성 본절에서는 ODBC의설치파일과드라이버등록및연결하는방법에대해서설명한다. 기본적으로 32bit 클라이언트 OS 환경에서는 32bit ODBC 설치, 64bit 클라이언트 OS 환경에서는 64bit ODBC 설치방법을설명한다. 64bit 클라이언트 OS 환경에서 32bit ODBC를설치하는방법은 Windows 64bit에 32bit ODBC 설치 를별도로참고한다 ODBC 설치파일 클라이언트인스톨러나 ODBC 인스톨러의경우 GUI 환경으로설치및등록을자동으로진행할수있다. 만약수동으로진행하려면 Tibero 서버가설치된환경에서설치하고자하는클라이언트컴퓨터환경에맞게설치파일을가져온다. 다음은서버의운영체제별바이너리위치에대한설명이다. Unix 계열서버 구분 Windows 32bit Windows 64bit 바이너리위치 $TB_HOME/client/win32 $TB_HOME/client/win64 Windows 계열서버 32bit 바이너리 Tibero 버전 Tibero 4 SP1 및이전버전 Tibero 5 이상 구분 Windows 32bit Windows 64bit Windows 32bit Windows 64bit 위치 %TB_HOME%\client\lib %TB_HOME%\client\win64 %TB_HOME%\bin %TB_HOME%\client\win64 2 Tibero Driver 연결가이드

11 64bit 바이너리 Tibero 버전 Tibero 4 SP1 및이전버전 Tibero 5 이상 구분 Windows 32bit Windows 64bit Windows 32bit Windows 64bit 위치 %TB_HOME%\client\win32 %TB_HOME%\client\lib %TB_HOME%\client\win32 %TB_HOME%\bin 다음은배포되는바이러리파일명이다. 해당파일은 Tibero 5 기준이며다른버전의경우 exe 파일명이일 부다를수있다. 구분 Windows 32bit Windows 64bit 바이너리파일명 libtbcli.dll, libtbcli.lib, tbodbc_driver_installer_5_32.exe libtbcli.dll, libtbcli.lib, tbodbc_driver_installer_5_64.exe libtbcli.dll 파일에서오른쪽마우스버튼을클릭한뒤 [ 속성 ] > [ 자세히 ] 의 Product version 을확인한다. [ 그림 1.2] ODBC 버전확인 제 1 장 ODBC 연결 3

12 ODBC 드라이버등록 ODBC 드라이버등록순서는다음과같다. 1. Tibero ODBC의 bit 선택 Tibero ODBC의 32bit 또는 64bit 선택은설치하는클라이언트 OS 환경에맞추기보다는 Tibero ODBC 를사용하는실제어플리케이션의 bit에맞춘다. 2. 바이너리복사 Tibero 버전에따라 ODBC 바이너리를복사하는위치가다르다. 버전에맞게 ODBC 바이너리를위치한다. Tibero 4 SP1 및이전버전 %WINDIR%\system32( 예 : c:\windows\system32) Tibero 5 이상임의의위치로가능하다. 단, 드라이버를등록할경우해당경로로지정이필요하다. ( 예 : c:\tibero\odbc) 3. 드라이버등록 command 창을열어 ODBC 바이너리가위치한곳으로이동한후명령어를실행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 등록방법 tbodbc_driver_installer_5_xx.exe -i <driver path> 항목 <driver path> 설명 ODBC 바이너리디렉터리이다. 등록예 C:\TmaxSoft\win64>tbodbc_driver_installer_5_64.exe -i c:\tmaxsoft\win64 4. 드라이버등록확인 [ 시작 ] > [ 제어판 ] > [ 관리도구 ] > [ 데이터원본 (ODBC)] > [ 드라이버 ] 에서 Tibero 드라이버가등록된것 을확인한다. 4 Tibero Driver 연결가이드

13 [ 그림 1.3] ODBC 등록확인 ODBC 연결 Tibero ODBC 를사용하는애플리케이션에서연결문자열 (Connection String) 을사용하는방식과 ODBC 관리자에 DSN(Data Source Name) 을등록하는방식에대해서설명한다. 연결문자열을사용하는방식 버전에따라서일부문자열이다르다. ODBC 함수중에서 SQLDriverConnect를사용할경우아래와같은정보가필요하다. 실제사용할때는한줄로입력하며 Tibero 5에서 DB 항목의경우는 DB NAME에해당하는정보를입력한다. Tibero 4 SP1 DRIVER={Tibero 4 ODBC Driver};SERVER= ;PORT=8629; Tibero 5 UID=dbtech;PWD=dbtech; DRIVER={Tibero 5 ODBC Driver};SERVER= ;PORT=8629;DB=t5; UID=dbtech;PWD=dbtech; 제 1 장 ODBC 연결 5

14 DSN 을등록하는방식 ODBC 함수중에서 SQLConnect를사용할때 DSN 정보가필요하므로 [ 제어판 ] > [ 관리도구 ] > [ 데이터원본 (ODBC)] > [ 시스템 DSN] 에데이터소스를추가한다. [ 그림 1.4] ODBC 데이스소스추가 접속방법은 IP, PORT 방식또는 SID 방식이있다. IP, PORT 방식을이용한접속 Tibero 클라이언트또는서버의설치없이 ODBC Driver를등록한이후에바로사용할수있다. [ 그림 1.5] IP, PORT 방식 6 Tibero Driver 연결가이드

15 SID 방식을이용한접속 Tibero 클라이언트또는서버가설치된경우사용할수있으며클라이언트설정파일인 tbdsn.tbr 파일 (Tibero 4 이전버전의경우 tbnet_alias.tbr 파일 ) 에 SID 이름이등록되어있어야한다. [ 그림 1.6] SID 방식 [ 그림 1.7] tbdsn.tbr 제 1 장 ODBC 연결 7

16 DSN 등록후 [Test] 버튼을클릭하여정상적으로접속이되는지확인한다. 만약실패할경우 Tibero 서버 의기동, 방화벽차단, 접속정보등을확인한다. [ 그림 1.8] ODBC 접속테스트 Windows 64bit 에 32bit ODBC 설치 Windows 64bit 환경에 32bit Tibero ODBC 를설치할경우 "%WINDIR%\SysWOW64" 폴더의 32bit 용명령 어를이용한다. 다음은 Windows 64bit에 32bit ODBC 설치하는과정이다. 1. 바이너리복사 Tibero 버전에따라 ODBC 바이너리를복사하는위치가다르다. 버전에맞게 ODBC 바이너리를위치한다. Tibero 4 SP1 및이전버전 %WINDIR%\SysWOW64( 예 : c:\windows\syswow64) Tibero 5 이상임의의위치로가능하다. 단, 드라이버를등록할경우해당경로로지정이필요하다. ( 예 : c:\tibero\win32) 2. 드라이버등록 command 창을열어 ODBC 바이너리가위치한곳으로이동한후명령어를실행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 8 Tibero Driver 연결가이드

17 등록방법 tbodbc_driver_installer_5_32.exe -i <driver path> 항목 <driver path> 설명 32bit ODBC 바이너리디렉터리이다. 등록예 C:\TmaxSoft\win32>tbodbc_driver_installer_5_32.exe -i c:\tmaxsoft\win32 3. 드라이버등록확인 command 창을열어 "%WINDIR%\SysWOW64" 폴더로이동한후 32bit용 odbcad32.exe 명령어를실행한다. [ 그림 1.9] 32bit용 ODBC 데이터원본관리자실행및확인 참고 Windows 64bit 환경일경우 [ 시작 ] > [ 제어판 ] > [ 관리도구 ] > [ 데이터원본 (ODBC)] 의 64bit 용 odb cad32.exe 를이용한다. 제 1 장 ODBC 연결 9

18 4. ODBC 연결 ODBC 연결에대한자세한내용은 ODBC 연결 을참고한다. 주의 Windows 64bit 환경에 32bit Tibero ODBC 를설치할경우 ODBC 연결은 32bit 용 ODBC 데이터원본 관리자를이용해야한다 ODBC Manager 설치 UNIX 계열의경우 ODBC Manager가존재하지않는다. 이런경우 iodbc 또는 UNIX ODBC를별도로설치한다. 본절에서는 iodbc manager 설치및연동하는과정을설명한다. 다음은 ODBC Manager 설치과정에대한설명이다. 1. Driver Manager 설치 2. profile 설정 3. ODBC 환경파일설정및확인 각과정에대한상세한설명은해당절의내용을참고한다. Driver Manager 설치 다음은 Driver Manager를설치하는과정에대한설명이다. 1. 다운로드 다음은 libiodbc tar.gz 소스파일을다운받아서버에설치한결과이다. $ tar -xvzf libiodbc tar.gz libiodbc / libiodbc /admin/ libiodbc /admin/gtk-2.0.m4 libiodbc /admin/gtk.m4 libiodbc /admin/libtool.m4 libiodbc /admin/ltoptions.m4 libiodbc /admin/ltsugar.m4 libiodbc /admin/ltversion.m4 libiodbc /admin/lt~obsolete.m4 libiodbc /admin/makefile.am libiodbc /admin/makefile.in 10 Tibero Driver 연결가이드

19 libiodbc /admin/libiodbc.pc.in libiodbc /admin/libiodbc.spec.in libiodbc /admin/config.guess libiodbc /admin/config.sub libiodbc /admin/depcomp libiodbc /admin/install-sh libiodbc /admin/ltmain.sh libiodbc /admin/missing libiodbc /admin/mkinstalldirs libiodbc /debian/ libiodbc /debian/changelog 참고 tar 옵션의 xvzf 가적용되지않을경우먼저 gunzip 으로압축을해제한후 tar -xvf 옵션으로해제한다. 2. iodbc 설치 tar.gz 파일을가지고설치를진행하면아래와같은순서를따른다. 설치전사전환경점검에서 prefix를설정하지않으면기본적으로 /usr/local 아래에설치되기때문에특정디렉터리를지정하여설치한다. '$HOME/iodbc' 디렉터리에설치전사전환경점검을한다../configure --prefix=$home/iodbc --disable-gui 점검한결과문제가없으면컴파일한다../make 컴파일된파일을설치한다../make install 참고 컴파일및설치작업을다시수행하려면 make clean 이후에진행한다. 3. 설치확인설치된서버에원하는 bit로설치가되었는지확인한다. 특정 OS에따라 64bit 서버에 32bit로설치되는경우가있으므로 file 명령어를이용하여확인이필요하다. 만약 ODBC Manager가 64bit로설치됐다면내부적으로사용하는 Tibero ODBC 역시 64bit여야한다. $ cd $HOME/iodbc/bin $ file iodbctest iodbctest: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped 제 1 장 ODBC 연결 11

20 [ 참고 ] AIX 서버가 64bit일경우에도 iodbc 바이너리가 32bit로설치된다. 따라서아래와같은순서로설치를진행한다. 1. 설치전사전환경점검을한다. export CFLAGS=-maix64 export LDFLAGS="-maix64 -brtl"./configure --prefix=$home/iodbc --disable-gui 2. 점검한결과문제가없으면컴파일한다. export OBJECT_MODE=64./make 3. 컴파일된파일을설치한다../make install 4. file 명령어를사용하여 AIX 서버에서몇 bit 로빌드되었는지확인한다. 32bit 인경우 $ file iodbctest iodbctest: executable (RISC System/6000) or object module not stripped 64bit 인경우 $ file iodbctest iodbctest: 64-bit XCOFF executable or object module not stripped profile 설정 profile 내에아래와같은내용을추가한다. IODBC_HOME 의경우 iodbc manager 를설치한위치로설정 한다. # iodbc setting export IODBC_HOME=$HOME/iodbc export LD_LIBRARY_PATH=$IODBC_HOME/lib:$LD_LIBRARY_PATH export PATH=$IODBC_HOME/bin:$PATHh" 주의 OS 에맞게환경변수 LD_LIBRARY_PATH(Linux), LIBPATH(AIX), SHLIB_PATH(HP) 를설정한다. 12 Tibero Driver 연결가이드

21 ODBC 환경파일설정및확인 ODBC Driver Manager의환경파일에 Tibero ODBC Driver를등록하는방법이다. 연결테스트전에 Tibero 클라이언트또는서버의설치및관련환경설정이되어야한다. 1. 환경파일위치및이름설정 $HOME/.odbc.ini( 개인설정 ) 또는 /etc/odbc.ini( 공통설정 ) 로설정가능하다. 우선순위는 $HOME/.odbc.ini 가높다. ODBC 환경파일설정방법 [ODBC Data Sources] <ODBC Data Sources> = Tibero5 ODBC driver [ODBC] Trace = 1 TraceFile = /home/tibero/iodbc/tmp/odbc.trace [<ODBC Data Sources 세부설정 >] Driver = <Tibero ODBC Driver 파일 > Description = Tibero5 ODBC Datasource SID = <tbdsn.tbr 파일에설정한 alias 정보 > User = dbtech Password = dbtech [ODBC Data Sources] 항목 <ODBC Data Sources> 설명 Datasource 이름으로 Oracle Gateway 설정파일에해당내용이들어간다. [<ODBC Data Sources 세부설정 >] <ODBC Data Sources 세부설정 > 에는 Datasource 이름을설정한다. 추후 Oracle Gateway 설정파일에해당내용이들어간다. 다음은 ODBC Data Sources의세부항목에대한설명이다. 항목 Driver SID User Password 설명 ODBC Manager에서로드하는 Tibero ODBC Driver 파일이다. 해당파일존재여부및권한에대해서확인이필요하다. Tibero 클라이언트또는서버의 tbdsn.tbr 파일에설정한 Alias 정보이다. 사용자를의미한다. 테스트및링크생성의경우별도로사용자를가져가므로크게의미는없다. 사용자패스워드를의미한다. 테스트및링크생성의경우별도로사용자를가져가므로크게의미는없다. 제 1 장 ODBC 연결 13

22 ODBC 환경파일설정예 [ODBC Data Sources] tibero5 = Tibero5 ODBC driver [ODBC] Trace = 1 TraceFile = /home/tibero/iodbc/tmp/odbc.trace [tibero5] Driver Description SID User Password = /home/tibero/tibero5/client/lib/libtbodbc.so = Tibero5 ODBC Datasource = tibero = dbtech = dbtech 2. 연결테스트 '$IODBC_HOME/bin' 폴더에있는 iodbctest를이용하여연결테스트를수행한다. 테스트에문제가발생하는경우 ODBC 환경파일이름및위치와설정을확인한다. 다음은 iodbctest를이용한연결테스트설정방법이다. iodbctest "DSN=<dsn>;UID=<user>;PWD=<pwd>" 항목 DSN UID, PWD 설명 ODBC 환경파일에서설정한 ODBC Datasources 이름이다. 테스트할접속계정및패스워드이다. 다음은 iodbctest 를이용한연결테스트사용예이다. $ iodbctest "DSN=tibero5;UID=dbtech;PWD=dbtech" iodbc Demonstration program This program shows an interactive SQL processor Driver Manager: Driver: (libtbodbc.so) SQL>select * from dept; DEPTNO DEPTNAME MGRNO LOCNO Administration Marketing Purchasing Human Resources Tibero Driver 연결가이드

23 1.4. 문제해결 특정문제가발생했을때해결하는방법을설명한다 로그발생 Tibero ODBC(=tbCLI) 에서는특정환경변수를적용하여로그를발생시키거나글자깨짐등의문제를해결할수있다. 로그를발생하는환경변수의경우일부성능이느려질수있으므로문제가있을때일시적으로만사용한다. 아래처럼환경변수를적용한후에애플리케이션을재기동한다. [ 그림 1.10] ODBC(=tbCLI) 환경변수적용 다음은자주사용하는환경변수에대한설명이다. 환경변수명 TBCLI_LOG_LVL TBCLI_LOG_DIR 설명로그를출력하게하는환경변수이다. trace 값을설정하면로그가출력된다. 로그를생성하는디렉터리를설정한다. 설정하지않을경우아래와같은경로에로그가생성된다. Windows 계열 : C:\tbcli_ 날짜시간.log Unix 계열 : /tmp/tbcli_ 날짜시간.log 제 1 장 ODBC 연결 15

24 환경변수명 설명 Windows 7 은 C:\ 디렉터리에파일을생성할때관리자권한이필요하므로 해당경로에로그를생성하려면애플리케이션을관리자권한으로실행한다. TB_NLS_LANG 클라이언트의캐릭터셋을설정하는부분으로기본은 MSWIN949( 한글 ) 로 설정되어있다. 보통은 DB 캐릭터셋과일치시키거나부분집합으로설정하 며설정할수있는값은 DB 캐릭터셋과동일하다. 참고 다른환경변수에대해서는제품매뉴얼 "Tibero 관리자안내서 " 의 "Appendix D. 클라이언트환경 변수 " 를참고한다 예제 본절에서는 ODBC 를이용하여연결하는기본적인형태의예제와특수한타입의예제를설명한다 연결예제 다음은 ODBC 를이용한 Windows 환경의연결예제이다. define _DIRECT_ 를주석여부에따라 SQLDriverConnect 와 SQLConnect 중하나를사용해서접속한다. #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <sql.h> #include <sqlext.h> /* #include "stdafx.h" */ #define ROWSET_SIZE 20 #define _DIRECT_ int main(int argc, char* argv[]) { SQLRETURN rc = SQL_SUCCESS; SQLUINTEGER len; SQLHANDLE henv, hdbc, hstmt; SQLCHAR *sql = (SQLCHAR *)"SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL"; char buf[128]; /* Env Handle */ SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); 16 Tibero Driver 연결가이드

25 SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); /* Tibero Connect */ #ifdef _DIRECT_ // IP, PORT rc = SQLDriverConnect(hdbc, (SQLHWND)NULL, //(SQLCHAR *) "DRIVER={Tibero 4 ODBC Driver};\ SERVER= ;PORT=9629;UID=tibero;PWD=tmax;", (SQLCHAR *) "DRIVER={Tibero 5 ODBC Driver};\ SERVER= ;PORT=9629;DB=t5;UID=dbtech;PWD=dbtech;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT); #else // Data Source Name rc = SQLConnect(hdbc, (SQLCHAR *)"t5", SQL_NTS, /* Data Source Name or DB NAME */ (SQLCHAR *)"dbtech", SQL_NTS, /* User */ (SQLCHAR *)"dbtech", SQL_NTS); /* Password */ #endif if (rc!= SQL_SUCCESS) { fprintf(stderr, "Connection failed!!!"); exit(1); } /* Statements Handle */ SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); printf("query: %s\n", sql); /* Execute Query */ rc = SQLExecDirect(hstmt, sql, SQL_NTS); if (rc!= SQL_SUCCESS) { fprintf(stderr, "SQLExecDirect failed!!!"); exit(1); } 제 1 장 ODBC 연결 17

26 /* Bind Result */ SQLBindCol(hstmt, 1, SQL_C_CHAR, (SQLCHAR *)buf, 128, (long *)&len); printf("result: ", buf); /* Fetch Result */ while(sqlfetch(hstmt)!= SQL_NO_DATA) { printf("%s\n", buf); } /* Release Handle and Close Connection */ SQLFreeStmt(hstmt, SQL_DROP); SQLDisconnect(hdbc); SQLFreeConnect(hdbc); SQLFreeEnv(henv); return 0; } UNIX 계열에서테스트하고싶다면 Tibero 클라이언트또는서버가설치된환경에서위의샘플소스를아래와같이삭제, 추가, 컴파일및링크한다. 아래의경우는 Linux 64bit일때예제이다. 삭제 #include <windows.h> #include <sql.h> #include <sqlext.h> 추가 #include <sqlcli.h> 컴파일및링크 cc -m64 -O -I$TB_HOME/client/include -L$TB_HOME/client/lib -c test.c cc -m64 -O -I$TB_HOME/client/include -o test.bin -L$TB_HOME/client/lib -ltbcli \ -lclialloc test.o 참고 컴파일및링크옵션의경우 OS 에따라일부다를수있다. 강조된부분의경우는동일하고나머지 부분은원래사용하던컴파일및링크옵션을사용한다. 18 Tibero Driver 연결가이드

27 AutoCommit 예제 ODBC 의 Autocommit 관련기본설정은 ON 이다. 애플리케이션에서 OFF 로처리하기위해서는아래와같 이처리한다. #include <windows.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sql.h> #include <sqlext.h> //#include <sqlcli.h> int main() { SQLRETURN rc; SQLHANDLE henv, hdbc, hstmt; SQLCHAR sregno[10], sregname[25]; SQLINTEGER sqlnts=sql_nts; /* Env Handle */ SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); // Set Connection Attribute //SQLSetConnectAttr(hdbc,5,(void*)SQL_LOGIN_TIMEOUT,0); /* Tibero Connect */ rc = SQLConnect(hdbc, (SQLCHAR *)"t5", SQL_NTS, /* Data Source Name or DB NAME */ (SQLCHAR *)"dbtech", SQL_NTS, /* User */ (SQLCHAR *)"dbtech", SQL_NTS); /* Password */ if (rc!= SQL_SUCCESS) { printf("connection failed!!! : %d", rc); exit(1); } /* Set AutoCommit ON/OFF */ rc = SQLSetConnectAttr(hdbc,SQL_ATTR_AUTOCOMMIT,(SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0); //rc = SQLSetConnectAttr(hdbc,SQL_ATTR_AUTOCOMMIT,(SQLPOINTER)SQL_AUTOCOMMIT_ON, 0); if (rc!= 0) return NULL; 제 1 장 ODBC 연결 19

28 /* Statements Handle */ SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); /* Execute Query - INSERT */ rc = SQLExecDirect(hstmt,(SQLCHAR *)"INSERT INTO reg VALUES(100,'Seoul')",SQL_NTS); if (rc!= SQL_SUCCESS) { printf("insert Failed!!!"); exit(1); } /* Commit */ // rc = SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT); /* Execute Query - SELECT */ rc = SQLExecDirect(hstmt,(SQLCHAR*)"SELECT * FROM reg",sql_nts); if (rc!= SQL_SUCCESS) { printf(stderr, "Select Failed!!!"); exit(1); } // Fetch printf("%10s%25s\n","regno","regname"); printf("%10s%25s\n","=====","========================"); while( SQLFetch(hstmt)!= SQL_NO_DATA ) { SQLGetData(hstmt,1,SQL_C_CHAR,sRegNo,10,&sqlnts); SQLGetData(hstmt,2,SQL_C_CHAR,sRegName,25,&sqlnts); printf("%10s%25s\n", sregno,sregname); } // while end printf("%10s%25s\n","=====","========================"); /* Release Handle and Close Connection */ SQLFreeStmt(hstmt, SQL_DROP); SQLDisconnect(hdbc); SQLFreeConnect(hdbc); SQLFreeEnv(henv); return 0; } 20 Tibero Driver 연결가이드

29 타입관련예제 다음은 CLOB 을이용한특수한타입의예제이다. // $gcc test_clob.c -I$TB_HOME/client/include -L$TB_HOME/client/lib -ltbcli #include <stdio.h> #include <assert.h> #include "sqlcli.h" SQLRETURN _rc = SQL_SUCCESS; SQLHANDLE _henv = SQL_NULL_HANDLE; SQLHANDLE _hdbc = SQL_NULL_HANDLE; SQLHANDLE _hstmt = SQL_NULL_HANDLE; SQLCHAR *DSN = NULL; SQLCHAR *UID = NULL; SQLCHAR *PWD = NULL; int main(int argc, char **argv) { SQLINTEGER lob_loc = 0; SQLLEN ind = 0; SQLINTEGER byte_len = 0; SQLBIGINT lob_len = 0; _rc = SQLAllocEnv(&_henv); _rc = SQLAllocConnect(_henv, &_hdbc); DSN = (SQLCHAR *)argv[1]; UID = (SQLCHAR *)argv[2]; PWD = (SQLCHAR *)argv[3]; _rc = SQLConnect(_hdbc, DSN, SQL_NTS, UID, SQL_NTS, PWD, SQL_NTS); _rc = SQLAllocStmt(_hdbc, &_hstmt); _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"CREATE TABLE T(C1 CLOB)", SQL_NTS); _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"DELETE FROM T", SQL_NTS); _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"INSERT INTO T VALUES (NULL)", SQL_NTS); _rc = SQLEndTran(SQL_HANDLE_DBC, _hdbc, SQL_COMMIT); _rc = SQLFreeStmt(_hstmt, SQL_RESET_PARAMS); /* Case 1 */ _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"SELECT * FROM T", SQL_NTS); _rc = SQLFetch(_hstmt); 제 1 장 ODBC 연결 21

30 /* must be return SQL_SUCCESS with SQL_NULL_DATA indicator value * at first invocation */ _rc = SQLGetData(_hstmt, 1, SQL_C_CHAR, NULL, 0, &ind); /* c1컬럼 (clob) 이 null인지확인. null이면 indicator가 SQL_NULL_DATA */ if (ind == SQL_NULL_DATA) { printf("lob : null\n"); } /* must be return SQL_NO_DATA at second invocation*/ _rc = SQLGetData(_hstmt, 1, SQL_C_CHAR, NULL, 0, &ind); assert(_rc == SQL_NO_DATA); _rc = SQLCloseCursor(_hstmt); _rc = SQLFreeStmt(_hstmt, SQL_DROP); /* */ /* Case 2 : lob locator사용 */ ind = 0; _rc = SQLAllocStmt(_hdbc, &_hstmt); _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"DELETE FROM T", SQL_NTS); _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"INSERT INTO T VALUES ('aaa')", SQL_NTS _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"SELECT * FROM T", SQL_NTS); _rc = SQLBindCol(_hstmt, 1, SQL_C_CLOB_LOCATOR, (SQLPOINTER)&lob_loc, 0, &ind); _rc = SQLFetch(_hstmt); // c1이 null이아니면 lob_loc이여기서채워짐 /* 해당 lob 데이터가 NULL인지확인 */ if (ind == SQL_NULL_DATA) { printf("lob : null\n"); } else { _rc = SQLLobGetLength(_hstmt, lob_loc, &lob_len, NULL); printf("lob len : %lld\n", lob_len); } _rc = SQLExecDirect(_hstmt, (SQLCHAR *)"DROP TABLE T", SQL_NTS); _rc = SQLDisconnect(_hdbc); _rc = SQLFreeConnect(_hdbc); _rc = SQLFreeEnv(_henv); } return 0; 22 Tibero Driver 연결가이드

31 제 2 장 OLE DB 연결 본장에서는 OLE DB 에대한개념과기능, Tibero OLE DB Provider 설치및구성에대해서설명한다 OLE DB 개념 ODBC는응용프로그램이데이터베이스를일정한방식으로액세스하는방법을제공하였다. 언어, 테이블구조, 내부정보등에관계없이데이터베이스를액세스하는공통의추상적인 API를제공했지만 IT기술이발전함에따라새로운방식으로 DB기반응용프로그램을설계하고구축하는상황에 ODBC는부적합하게되어 OLE DB라는새로운개방형 DB 연결방식이생겨났다. OLE DB는 Microsoft UDA(Universal Data Access) 의개념을구체화한프로그래밍인터페이스모델이다. UDA는단일 COM 기반프로그래밍인터페이스를사용하여관계형, 비관계형, 계층형등과같은모든유형의데이터를액세스할수있는기능을제공한다. Tibero OLE DB Provider는현재 Windows 운영체제만을지원한다. Tibero OLE DB Provider는 ADO 또는 OLE DB 기반애플리케이션이 Tibero 데이터베이스에접근하는환경의성능및안정성을보장한다. Tibero OLE DB Provider가최신 OLE DB 및 ADO 스펙과호환하므로 ADO, OLE DB 개발자는 Tibero 환경으로의애플리케이션마이그레이션작업을쉽고간단하게수행할수있다. 또 Tibero OLE DB Provider는 PSM 저장프로시저, LOB 등 Tibero 환경이제공하는기능을활용하는것을가능하게하며 Microsoft OLE DB.NET data provider를통해.net 환경을완벽하게지원한다. OLE DB.NET을사용하는경우모든종류의.NET 프로그래밍언어를사용하여 Tibero 데이터베이스에접근할수있다 OLE DB 의역할 기본적으로분산되어있는데이터들에대한통합된 view를제공하는역할을한다. 아래그램처럼 UDA 기술은 ADO와 OLEDB를사용하여 SQL 데이터뿐만아니라비 SQL적인데이터 ( 메일, 텍스트, 디렉터리서비스등 ) 에도접근가능하고 OLE DB가기존의 ODBC를이용한데이터연결도사용할수있게되어있다. OLE DB를통한접근은기존의 ODBC가부족했던점을보완하여접근속도또한많은향상을가져왔다. 제 2 장 OLE DB 연결 23

32 [ 그림 2.1] UDA Architecture ( 출처 ) 마이크로소프트 OLE DB 내부구조 OLE DB 내부구조및각항목에해당하는설명은아래와같다. Data Source OLE DB provider 초기화및환경구축을하고접속정보를받아한개이상의연결 (Session) 을생성한다. Session 하나의연결단위로일반적으로한개이상의명령문 (Command) 을생성하고, 직접적으로한개이상의결과테이블 (Rowset) 을생성한다. Command SQL 문장실행의단위로 SELECT 문일경우한개이상의 Rowset을생성한다. Rowset 쿼리에의해서버로부터가져온데이터들의집합으로순방향, 역방향, 특정위치 row 접근을지원한다. 24 Tibero Driver 연결가이드

33 [ 그림 2.2] OLE DB 내부구조 OLE DB 기능 OLE DB 의몇가지특징적인기능들에대해서살펴본다. Updatable Cursor 쿼리의결과테이블의데이터를직접수정하여서버에반영시키는기능이다. 기본적으로 rowid를추가로쿼리에첨부하여보내고 rowid를붙일수없는쿼리는 Updatable Cursor가될수없다. 추가, 삭제, 수정모두내부적으로 rowid를이용한 DML로작성되어서버로보내진다. Updatable Cursor의기능들은다음과같다. 새로운 Row 추가 : 추가된 row는결과테이블에저장되지않는다. 기존 Row를삭제 : 삭제된 row는삭제되었다고표시만해놓는다. 기존 Row의데이터를수정 : 수정된데이터는바로조회가가능하다. 다음은 Updatable Cursor 의사용예제 (PHP) 이다. $conn = new COM("ADODB.Connection"); $conn->open("provider=tbprov.tbprov.5; Data Source=t5; User ID=dbtecj; Password=dbtech;Updatable Cursor=True; ); $rs = new COM("ADODB.Recordset"); $rs->cursorlocation = aduseserver; $rs->open("for_member", $conn, adopenkeyset, adlockpessimistic, adcmdtable); $rs->movenext(); $rs->fields(" ")->value = $rs->fields("password")->value = "tmax123"; 제 2 장 OLE DB 연결 25

34 $rs->fields("name")->value = TESTUSER ; $rs->update(); $rs->close(); Schema Rowset DB의스키마정보 ( 테이블, 프로시저등 ) 를테이블형태로알려주는기능으로대부분내부적으로 DB의 static view를조회하여해당정보들을추출한다. DB접근이필요없는경우 OLE DB단에서해당스키마정보를저장하고있다가추출하고 Power Builder, Report Designer 등의툴로 Schema Rowset을통하여각종테이블, 뷰, 인덱스등의정보를가져와활용한다. Schema Rowset이지원하는항목들은다음과같다. TABLES VIEWS COLUMNS INDEXES PRIMARY_KEYS PROCEDURES PROCEDURE_PARAMETERS PROVIDER_TYPES CATALOGS( 빈결과물리턴 ) 지원되지않지만필요한 Schema 종류일경우요청에의해지속적으로추가한다. 다음은 Schema Rowset 의사용예제 (PHP) 이다. $conn = new COM("ADODB.Connection"); $conn->open( Provider=tbprov.Tbprov.5; ); $arr[0] = ""; $arr[1] = "dbtech"; $arr[2] = "EMP"; $rs = new COM("ADODB.Recordset"); $rs->cursorlocation = aduseclient; $rs = $conn->openschema(adschemaprimarykeys, $arr); Connection Pooling 동일한계정으로반복연결을할경우기존의연결을닫지않고저장해두었다가재사용하는기능이다. 연 결하는데드는시간을절약하는효과가있다. 26 Tibero Driver 연결가이드

35 Connection Pooling의설정방법은다음과같다. 연결문자열에 OLE DB Services 항목을추가한다. OLE DB Services=-1 : 풀링을사용한다. OLE DB Services=-2 : 풀링을사용하지않는다. PHP의경우무조건사용하도록설정된다 Tibero OLE DB Provider 설치및구성 Tibero OLE DB의경우내부적으로 Tibero ODBC를사용하므로 OLE DB를설치한다면앞장의 ODBC 내용을참조하여미리설치를한다. 만약 32bit OLE DB를사용한다면 32bit ODBC를설치하고 64bit OLE DB를사용한다면 64bit ODBC를설치한다. 본절에서는 OLE DB의설치파일과 OLE DB Provider 등록및연결하는방법에대해서설명한다. 기본적으로 32bit 클라이언트 OS 환경에서 32bit OLE DB 설치, 64bit 클라이언트 OS 환경에서 64bit OLE DB 설치방법을설명하며, 64bit 클라이언트 OS환경에서 32bit OLE DB를설치하는방법은 Windows 64bit에 32bit OLE DB 설치 를참고한다 OLE DB 설치파일 클라이언트인스톨러나 OLEDB 인스톨러의경우 GUI 환경으로설치및등록을자동으로진행할수있다. 만약수동으로진행하려면 Tibero 서버가설치된환경에서설치하고자하는클라이언트에맞게설치파일을가져온다. 바이너리위치에관한자세한내용은 ODBC 설치파일 " 를참고한다. 다음은바이너리파일에대한설명이다. 파일명 tbprov5.dll msdtb5.dll Tibero.DbAccess.dll EntLibContrib.Da ta.tibero.dll 설명 OraOLEDB의데이터타입 spec을맞춘바이너리로 Provider를등록할때사용한다. MSDAORA의데이터타입 spec을맞춘바이너리로 Provider를등록할때사용한다..Net 환경에서의지원을위해추가된바이너리로.NET을연동할때사용한다. MS Enterprise Library 지원을위해추가된바이너리로 MS Enterprise Library 를연동할때사용한다. 참고 1. Tibero 5 r67771 이전버전의경우 tbprov.dll, msdtb.dll 파일을사용한다. 2. 확장자가 pdb(program Database) 인경우는디버깅작업을위해서사용하는파일이다. 릴리즈버전에따라포함되어있지않는경우도있다. 제 2 장 OLE DB 연결 27

36 OLE DB Provider 등록 OLE DB Provider 등록순서는다음과같다. 1. 바이너리복사 Tibero 버전에따라 OLE DB 바이너리를복사하는위치가다르다. 버전에맞게 OLE DB 바이너리를위치한다. Tibero 4 SP1 및이전버전 %WINDIR%\system32( 예 : c:\windows\system32) Tibero 5 이상임의의위치로가능하다. 단, 미리설치된 ODBC 바이너리가있는디렉터리에위치해야한다. 2. Provider 등록및해제 등록 command 창을열어 OLE DB 바이너리를위치한곳으로이동한후명령어를실행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 등록방법 regsvr32 <dllname> 항목 <dllname> 설명 등록할 dll 파일명을입력한다. Tibero 4 SP1 또는 Tibero 5 r67770 이전 tbprov.dll : OraOLEDB의데이터타입 spec msdtb.dll : MSDAORA의데이터타입 spec Tibero 5 r67770 이후 tbprov5.dll : OraOLEDB의데이터타입 spec msdtb5.dll : MSDAORA의데이터타입 spec 등록예 c:\tmaxsoft\win64>regsvr32 tbprov5.dll c:\tmaxsoft\win64>regsvr32 msdtb5.dll 28 Tibero Driver 연결가이드

37 등록을하면아래와같은팝업창이나타난다. [ 그림 2.3] OLE DB 등록팝업 해제 Provider 해제가필요한경우아래와같이수행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 해제방법 regsvr32 /u <dllname> 항목 <dllname> 설명 기존에이미등록이된 dll 파일중에서해제할 dll 파일명을입력한다. Tibero 4 SP1 또는 Tibero 5 r67770 이전 tbprov.dll : OraOLEDB의데이터타입 spec msdtb.dll : MSDAORA의데이터타입 spec Tibero 5 r67770 이후 tbprov5.dll : OraOLEDB의데이터타입 spec msdtb5.dll : MSDAORA의데이터타입 spec 해제예 c:\tmaxsoft\win64>regsvr32 /u tbprov5.dll c:\tmaxsoft\win64>regsvr32 /u msdtb5.dll 제 2 장 OLE DB 연결 29

38 3. Provider 등록확인 바탕화면에 tibero.udl 파일을새로생성한다. [ 그림 2.4] udl 파일생성 생성한 tibero.udl 파일을더블클릭한후 [Provider] 탭을선택하면 Tibero OLE DB Provider 를확인할 수있다. [ 그림 2.5] OLE DB 등록확인 30 Tibero Driver 연결가이드

39 OLE DB 연결 Tibero OLE DB 를사용하는애플리케이션에서연결문자열 (Connection String) 을사용하는방식과 Provider 테스트방식에대해서설명한다. 연결문자열을사용하는방식 사용방법 Provider=< 공급자이름 >;Data Source=< 데이터원본이름 >;User ID=< 접속사용자 ID>; Password=< 접속패스워드 >;Updatable Cursor=<Updateable Cursor 사용여부 >; OLE DB Services=<Connection Pooling 사용여부 > 항목 < 공급자이름 > 설명 Tibero 버전및리비전에따라공급자이름이조금씩다르다. Tibero 4 SP1 또는 Tibero 5 r67770 이전 tbprov.tbprov 또는 tbprov.tbprov.1 : OraOLEDB의데이터타입 spec tbprov.msdtb 또는 tbprov.msdtb.1 : MSDAORA의데이터타입 spec Tibero 5 r67770 이후 (Tibero 4, Tibero 5 용 OLE DB를같은클라이언트에서동시에사용하기위해서는해당리비전이후를사용한다 ) tbprov.tbprov 또는 tbprov.tbprov.5 : OraOLEDB의데이터타입 spec tbprov.msdtb 또는 tbprov.msdtb.5 : MSDAORA의데이터타입 spec < 데이터원본이름 > 데이터원본이름에는아래와같은항목이있다. 단, Tibero 버전에따라일부 다른정보가들어가기도한다. ODBC 데이터원본관리자에등록된이름 Tibero 4 SP1 : ip, port( 예 : ,8629) Tibero 5 : ip, port, dbname( 예 : ,8629,t5) < 접속사용자 ID> < 접속패스워드 > Tibero 서버에접속할사용자이름이다. Tibero 서버에접속할패스워드이다. <Updateable Cursor 사용 Updatable Cursor 사용여부를설정한다. ( 기본값 : False) 여부 > True : 사용한다. False: 사용하지않는다. <Connection Pooling 사 용여부 > Connection Pooling 기능사용여부를설정한다. ( 기본값 : -1) -1 : 사용한다. 제 2 장 OLE DB 연결 31

40 항목 설명 -2 : 사용하지않는다. 사용예 Provider=tbprov.Tbprov.5;Data Source=t5;User ID=dbtech;Password=dbtech; Updatable Cursor=True;OLE DB Services=-2 Provider 테스트 앞절에서만든 tibero.udl 파일로연결테스트를할수있으며아래와같이 2가지방식으로가능하다. IP, PORT 등의정보를이용한직접연결방식데이터원본에 IP, PORT, DB NAME 순으로설정하여접속한다. ( 예 : ,8629,t5) 만약 Tibero 4 SP1 및이전버전의경우 DB NAME 정보없이 IP, PORT만으로접속이가능하다. ( 예 : ,8629) [ 그림 2.6] OLE DB 직접연결방식 ODBC 원본관리자의 DSN 또는 tbdsn.tbr의 Alias를이용한방식데이터원본에 ODBC 원본관리자의 DSN 또는 "$TB_HOME/client/config/tbdsn.tbr" 의 Alias를이용하여 Tibero에접속이가능하다. 해당 Alias 정보를찾는방법은 [ODBC 원본관리자 ] > [tbdsn.tbr의 Alias] 순서대로찾는다. 32 Tibero Driver 연결가이드

41 [ 그림 2.7] OLE DB DSN 이용방식 참고 ODBC 원본관리자등록방법은 ODBC 연결 의 "DSN 을등록하는방식 " 을참고한다. 아래와같이테스트버튼을눌러서정상접속되는지확인한다. [ 그림 2.8] OLE DB 연결테스트 제 2 장 OLE DB 연결 33

42 Windows 64bit 에 32bit OLE DB 설치 32bit ODBC가미리설치된후진행해야한다. 1. 바이너리복사 Tibero 버전에따라 OLE DB 바이너리를복사하는위치가다르다. 버전에맞게 OLE DB 바이너리를위치한다. Tibero 4 SP1 및이전버전 %WINDIR%\SysWOW64 ( 예 : c:\windows\syswow64) Tibero 5 이상임의의위치로가능하다. 단, 미리설치된 32bit ODBC 바이너리가있는디렉터리에위치해야한다. 2. Provider 등록및해제 등록 command 창을열어 "%WINDIR%\SysWOW64" 폴더로이동한후명령어를실행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 등록방법 regsvr32.exe <dllname> 항목 <dllname> 설명 등록할 32bit dll 파일의위치를절대경로로입력한다. Tibero 4 SP1 또는 Tibero 5 r67770 이전 tbprov.dll : OraOLEDB의데이터타입 spec msdtb.dll : MSDAORA의데이터타입 spec Tibero 5 r67770 이후 tbprov5.dll : OraOLEDB의데이터타입 spec msdtb5.dll : MSDAORA의데이터타입 spec 등록예 c:\windows\system32>cd %WINDIR%\SysWOW64 c:\windows\syswow64>regsvr32.exe c:\tmaxsoft\win32\tbprov5.dll c:\windows\syswow64>regsvr32.exe c:\tmaxsoft\win32\msdtb5.dll 34 Tibero Driver 연결가이드

43 해제 command 창을열어 "%WINDIR%\SysWOW64" 폴더로이동한후명령어를실행한다. 만약 Windows 7 이상일경우 command 창을관리자권한으로실행한다. 해제방법 regsvr32.exe /u <dllname> 항목 <dllname> 설명 해제할 32bit dll 파일의위치를절대경로로입력한다. Tibero 4 SP1 또는 Tibero 5 r67770 이전 tbprov.dll : OraOLEDB의데이터타입 spec msdtb.dll : MSDAORA의데이터타입 spec Tibero 5 r67770 이후 tbprov5.dll : OraOLEDB의데이터타입 spec msdtb5.dll : MSDAORA의데이터타입 spec 해제예 c:\windows\system32>cd %WINDIR%\SysWOW64 c:\windows\syswow64>regsvr32.exe /u c:\tmaxsoft\win32\tbprov5.dll c:\windows\syswow64>regsvr32.exe /u c:\tmaxsoft\win32\msdtb5.dll 3. Provider 등록확인 Provider 등록확인은아래와같은순서로진행한다. a. C:\ 디렉터리에 tibero.udl 파일을생성한다. b. command 창을열고 rundll32.exe 명령어를실행한다. 명령어를실제사용할때는한줄로입력한다. 사용방법 C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\common Files\System\Ole DB\oledb32.dll",OpenDSLFile <udl 파일 > 항목 <udl 파일 > 설명 C:\ 디렉터리에생성한 udl 파일의경로및파일명을입력한다. 사용예 제 2 장 OLE DB 연결 35

44 C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\tibero.udl c. Provider 가등록된것을확인한다. [ 그림 2.9] 32bit 용 OLE DB 등록확인 4. OLE DB 연결 OLE DB 연결에대한자세한내용은 OLE DB 연결 을참고한다 Tibero OLE DB 연동 OLE DB 를사용하는인터페이스에대하여연동하는방법을설명한다. 해당인터페이스를사용하는서버에미리 Tibero OLE DB 가설치되어야한다 ADO(ActiveX Data Objects) Microsoft사에서개발한데이터베이스연동용인터페이스로 ADO 컴포넌트를사용해데이터페이스에접근후여러작업을할수있다. 데이터베이스에접근하기위한 COM 객체들의모음이다. 사용자의프로그래밍언어와 OLE DB사이를연결하는계층이다. 36 Tibero Driver 연결가이드

45 Windows 운영체제를설치할때자동으로설치된다. ASP, PHP, VB 등의환경에서사용가능하다. 사용자가복잡한 OLE DB API 대신 ADO의단순화된 API로용이하게개발이가능하다. 각종 Script 언어와연동되어있으므로다양한환경에서의개발이가능하다. 다음은 ADO 에서사용하는주요객체이다. Connection 데이터베이스를연결할때사용하는객체이다. Set conn=server.createobject( ADODB.Connection ); Recordset 조회쿼리를보내그쿼리결과를받을때사용한다. Set rs = Server.CreateObject( ADODB.Recordset ) rs.open select * from emp,conn Command 이객체만데이터베이스연결, 명령, 쿼리실행등이가능하고주로프로시저실행이나매개변수가포함된쿼리를실행할때사용한다. Set Cmd = Server.CreateObject("ADODB.Command") with Cmd.ActiveConnection = objconn.commandtype = adcmdstoredproc.commandtext = "ADD" End with Set Cmd = Nothing Transaction 트랜잭션을처리할때사용트랜잭션은 Connection객체의.BeginTrans와.CommitTrans 메소드호출사이에존재한다. myconnection.begintrans While Not myrecordset.eof mcounter = mcounter + 1 myrecordset.update myrecordset.movenext Wend myconnection.committrans myrecordset.close myconnection.close 제 2 장 OLE DB 연결 37

46 Property ADO 객체의동적인속성을가지고있다. set prop=server.createobject("adodb.property") for each prop in rs.properties response.write("attr:" & prop.attributes & "<br>") response.write("name:" & prop.name & "<br>") response.write("value:" & prop.value & "<br>") next Field ADO Field 객체는 Recordset 객체의컬럼에대한정보를가지고있다. set f=server.createobject("adodb.field") for each f in rs.fields response.write("attr:" & f.attributes & "<br>") response.write("name:" & f.name & "<br>") response.write("value:" & f.value & "<br>") Next Parameter Stored Procedure 또는쿼리에서사용되는파라미터의정보를제공한다. ( 파라미터타입 : input,output, input/output, return) set comm=server.createobject("adodb.command") set para=server.createobject("adodb.parameter") para.type=advarchar para.size=20 para.direction=adparaminput para.value=username comm.parameters.append para Error 실행할때발생한에러를 Errors collection 에저장한다. for each objerr in objconn.errors response.write("<p>") response.write("description: ") response.write(objerr.description & "<br>") response.write("help context: ") response.write(objerr.helpcontext & "<br>") response.write("help file: ") response.write(objerr.helpfile & "<br>") 38 Tibero Driver 연결가이드

47 response.write("native error: ") response.write(objerr.nativeerror & "<br>") response.write("error number: ") response.write(objerr.number & "<br>") response.write("error source: ") response.write(objerr.source & "<br>") response.write("sql state: ") response.write(objerr.sqlstate & "<br>") response.write("</p>") next Record Recordset, directory, file에서하나의행 (row) 을가리킨다. countfields=rec.fields.count Cursor Location 다음은 Cursor 서비스위치를가르키는속성값이며 Connection 또는 Recordset 단위로설정가능하다. 속성값 adusenode 설명 OBSOLETE( 하위호환을위해서만존재한다 ) Value 1 aduseserver 사용자가 row 를이동할때마다 OLE DB 로부터조금씩데이터를가져오는방식으 로 row 를일부만가져올경우 ( 전체메모리사용량이적음 ) 에유리하고접속을끊 은후에는데이터를가져올수없다. Updatable Cursor 가지원된다. Value 2( 기본값 ) aduseclient OLE DB 로부터전체데이터를가져와 ADO 단에서저장해두었다가 ADO 함수를 통하여 row 를이동할때바로꺼내어쓰는방식으로이미필요한데이터를가져온 상태이므로접속을끊어도데이터에접근이가능하다. Updatable Cursor 는지원되지않는다. Value 3 사용예제 (ado_query.vbs) 다음은 ADO 를사용하는 VBScript 예제이다. 제 2 장 OLE DB 연결 39

48 Dim conn, rs, sql Set conn = CreateObject("ADODB.Connection") conn.open "Provider=tbprov.Tbprov.5;Data Source=t5;User ID=dbtech;Password=dbtech;" conn.cursorlocation = aduseclient 'aduseserver = 2, aduseclient = 3 Set rs = CreateObject("ADODB.RecordSet") sql = "select sysdate from dual" rs.open sql, conn While Not rs.eof WScript.Echo rs("sysdate") rs.movenext Wend rs.close() Set rs = Nothing Set conn = Nothing ADO.NET ADO.NET은.NET 개발자에게데이터액세스서비스를노출하는클래스집합이며.NET 응용프로그램은 ADO.NET을통해데이터소스에연결하여데이터를검색, 조작및업데이트할수있다. 기존의 ADO와비교할때 ADO.Net은확장성과상호운영성이개선된 ADO이다. XML을보편적인데이터전송형식으로사용한다. C#, C++, VB.NET을지원한다. 다음은 ADO.NET 에서사용하는주요객체이다. 객체 Connection Command DataReader DataAdapter DataSet 설명가장먼저사용되는개체로데이터원본에대한기본적인연결을제공한다. 데이터베이스에수행하는명령 ("select * from emp") 을대표한다. OLE DB인경우 OleDbCommand이다. 데이터원본으로부터 forward only, read only 등의데이터를빠르고손쉽게얻을수있는개체이다. 단순히데이터를읽는경우라면이개체가가장좋은성능을낸다. OLE DB인경우 OleDbDataReader이다. 데이터원본에대한다양한작업 ( 갱신, DataSet 채우기 ) 을수행하는법용적인클래스이다. OLE DB인경우 OleDbDataAdapter이다. 응용프로그램안에서하나의단위로참조되는관련된테이블들의집합을대표한다. 예를들어 Customers, Orders, Products의모든고객들과그들이주문한제품 40 Tibero Driver 연결가이드

49 객체 설명 들은하나의 DataSet 에담기는것이가능하고이개체를이용하여원하는데이터 를각테이블로부터빨리가져와서버와연결이끊어진상태에서데이터를변경하 고한번의명령으로변경된것들을데이터베이스서버에저장할수있다. 네임스페이스의사용 C# 에서사용한다는가정하에공급자에따른네임스페이스사용법이다 ADO.NET 클래스들이있는 System.Data NameSpace 에참조를정의한다. using System.Data; OLE DB.NET 공급자를위한 using 문이다. using System.Data.OleDb; Tibero.Net 공급자를위한 using 문이다 using Tibero.DbAccess; SQL Server.Net 공급자를위한 using 문이다. using System.Data.SqlClient; Oracle 전용 Data Provider for.net 의경우 using 문이다. using System.Data.OracleClient; 사용예제 (test_oledb.cs) 다음은 ADO.NET 를사용하는 C# 예제이다. class Class1 { static void Main(string[] args) { Class1 c1 = new Class1(args); } public Class1(string[] args) { OleDbConnection conn = new OleDbConnection("Provider=tbprov.Tbprov; ); conn.open(); OleDbCommand cmd = new OleDbCommand(); cmd.connection = conn; cmd.commandtext = "select * from test order by a"; 제 2 장 OLE DB 연결 41

50 OleDbDataAdapter oda = new OleDbDataAdapter(cmd); DataSet dset = new DataSet(); oda.fill(dset); DataTable table = dset.tables[0]; DataRow[] rows = table.select(); Console.WriteLine(rows[0][ c1"].tostring()); } } conn.close(); Enterprise Library 연동 Enterprise Library 는 MS 에서제공하는오픈소스프레임워크이다. Enterprise Library 에대한자세한내용 은 을참고한다. Tibero OLE DB 및 Enterprise Library가설치되었다면연동순서는아래와같다. 1. 프로젝트내에 Tibero DLL 파일추가 Visual Studio의프로젝트내에서 [Add Reference] > [Browse] 탭에서 Tibero.DbAccess.dll, EntLibCon trib.data.tibero.dll을선택한다. [ 그림 2.10] Visual Studio 에 Tibero DLL 참조추가 2. 소스내에네임스페이스추가 필요할경우소스내에아래와같이네임스페이스를추가한다. using Tibero.DbAccess; using EntLibContrib.Data.Tibero; 42 Tibero Driver 연결가이드

51 3. 관련설정추가 Enterprise Library 의설정파일에 Tibero OLE DB 에관련내용을설정한다. 아내내용중에설정정보 중에 <providermappings>, <connectionstrings> 부분을참조한다. <configuration> <configsections> <section name="dataconfiguration" type="microsoft.practices.enterpriselibrary.data... 생략 " /> </configsections> <dataconfiguration defaultdatabase="tibero"> <providermappings> <add databasetype= "EntLibContrib.Data.Tibero.TiberoDatabase,EntLibContrib.Data.Tibero, Version= ,Culture=neutral, PublicKeyToken=null" name="tibero.dbaccess" /> </providermappings> </dataconfiguration> <connectionstrings> <add name="tibero" connectionstring="provider=tbprov.tbprov.5;data Source=t5 ;User ID=dbtech;Password=dbtech;Pooling=True ;Max Pool Size=50;Min Pool Size=2;Connection Lifetime=0" providername="tibero.dbaccess" /> </connectionstrings> </configuration> 참고 1. <add databasetype="entlibcontrib.data~" 부분은한줄로작성한다. 2. <connectionstrings> 부분은고객사상황에맞게적용한다 OLE DB 전환 본절에서는 Oracle OLE DB 를전환하는내용과예제를설명한다 Oracle OLE DB 오브젝트를변경할때다음을참고한다. Oracle OracleConnection Tibero OleDbConnectionTbr 제 2 장 OLE DB 연결 43

52 Oracle OracleCommand OracleDataReader OracleDataAdapter OracleDbType OracleParameter OracleCommandBuilder OracleTransaction OracleLob Tibero OleDbCommandTbr OleDbDataReader OleDbDataAdapterTbr OleDbTypeTbr OleDbParameterTbr OleDbCommandBuilderTbr OleDbTransaction OleDbYpeTbr.LongVarChar(CLOB 대응 ) 또는 OleDbTypeTbr.LongVarBina ry(blob 대응 ) 사용방법은 reader 에서읽은후 GetString 으로읽어들인다. ( 예 : if (reader.read()) { string clob = reader.getstring(0);.. }) 소스변경예제 다음은 Cursor에관련된예제이다. 예제1 Oracle selectcmd.parameters.add("rs_lst", OracleDbType.RefCursor).Direction \ = ParameterDirection.Output; Tibero OleDbCommandTbr selectcmd = new OleDbCommandTbr(); selectcmd.connection = oconn; selectcmd.commandtype = CommandType.StoredProcedure; selectcmd.commandtext = "PKG.Get_List"; selectcmd.parameters.add("rs_lst", OleDbTypeTbr.Cursor).Direction \ = ParameterDirection.Output; 예제2 Oracle OracleParameter a = new OracleParameter("i_fromdate", fromdate); a.direction = ParameterDirection.Input; 44 Tibero Driver 연결가이드

53 a.oracletype = OracleType.VarChar; OracleParameter b = new OracleParameter ("o_rc", DBNull.Value); b.direction = ParameterDirection.Output; b.oracletype = OracleType.RefCursor; selectcmd.parameters.add(a); selectcmd.parameters.add(b); Tibero OleDbParameterTbr a = new OleDbParameterTbr("i_fromdate", fromdate); a.direction = ParameterDirection.Input; a.oledbtype = OleDbTypeTbr.VarChar; OleDbParameterTbr b = new OleDbParameterTbr("o_rc", DBNull.Value); b.direction = ParameterDirection.Output; b.oledbtype = OleDbTypeTbr.Cursor; selectcmd.parameters.add(a); selectcmd.parameters.add(b); Named Parameter 기능 (.NET Tibero OLE DB provider 에서지원 ) Tibero 에서 Named Parameter 기능을사용한예제이다. OleDbCommandTbr ocmd = new OleDbCommandTbr(); ocmd.connection = oconn; ocmd.commandtype = CommandType.Text; ocmd.commandtext = "insert into aaa(aa,bb) values (:aa,:bb)"; ocmd.parameters.add(new OleDbParameterTbr("bb", "bb")); ocmd.parameters.add(new OleDbParameterTbr("aa", "aa")); 2.5. 문제해결 특정문제가발생했을때해결하는방법을설명한다 로그발생 문제가발생할경우 Tibero OLE DB 에서특정환경변수를적용하여로그를발생한다. 로그를발생시키는 환경변수의경우일부성능이느려질수있다. 따라서문제가있을때일시적으로만사용한다. 참고로 제 2 장 OLE DB 연결 45

54 Tibero OLE DB 경우는내부적으로 Tibero ODBC 를사용하므로 ODBC 환경변수를적용하여발생한로 그, OLE DB 로그를함께발생시킨다. 환경변수명 TB_OLEDB_LOG 설명 로그를출력하게하는환경변수이다. 아래와같은값을설정가능하다. (3 또는 4를주로설정한다 ) 1 : API 주요함수 2 : 1 + API 비주요함수 3 : 2 + 내부함수 4 : 동적메모리할당및해제 TB_OLEDB_LOG_DIR 로그를생성하는디렉터리를설정한다. 설정하지않을경우 "C:\tboledb_ 날 짜시간.log" 경로에로그가생성된다. Windows 7 의경우 C:\ 디렉터리에파일을생성하려면관리자권한이필요 하다. 따라서해당경로에로그를생성하려면애플리케이션을관리자권한 으로실행한다. FORCED_USE_WCHAR 1 로설정할경우 Tibero OLE DB 에서 varchar,char 를 wchar 로강제바인드 시킨다. (Tibero5 r70330 이후 ) 에러메시지처리 수행중발생할수있는에러메시지에대해서설명한다. Current cursor is not updatable(tberr 2135) 설명 대응방법 Updatable Cursor가비활성화상태인경우또는불가능한쿼리 (view를정의한쿼리에 join문이있는경우 ) 인경우발생한다. Updatable Cursor가비활성화상태인경우연결문자열에 Updatable Cursor=True를추가하고, Updatable Cursor가불가능한쿼리인경우대체할수있는쿼리를작성하거나직접 DML을작성하여수정한다 연동할때문제점 연동할때발생할수있는문제점에대해서설명한다. 46 Tibero Driver 연결가이드

55 UTF8 글자깨짐현상 [Application] <> [Enterprise Library] <> [Tibero OLE DB] <> [Tibero Server(UTF8)] 와같은구조 ( 중간에 다른프레임워크가들어갈수도있음 ) 에서발생할수있는문제점이다. 설명 대응방법 DB에저장된 UTF8 데이터를애플리케이션에서화면에 ASCII로 ( 영문 Windows의기본캐릭터셋 ) 출력하면서깨지는것으로보통 char, varchar은 char로 nchar, nvarchar은 wchar로바인드하기때문에발생한다. 아래의방법중하나를선택한다. 컬럼타입 char, varchar 을 nchar, nvarchar 로변환한다. Tibero OLE DB 에서 char, varchar 를 wchar 로강제바인드시키는환경변수를다음과 같이설정한다. (Tibero5 r70330 이후 ) FORCED_USE_WCHAR= 예제 본절에서는 OLE DB 를이용한예제를설명한다 ASP 조회 다음은간단한조회예제이다. Language=VBScript %> <%Option Explicit%> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <table style="font-size:10pt" border="1"> <% Dim Con, Rs Set Con = Server.CreateObject ("ADODB.Connection") // 아래코드실제사용시에는한줄로사용할것 Con.Open "Provider=tbprov.Tbprov.5;Password=dbtech;Persist Security Info=True 제 2 장 OLE DB 연결 47

56 ;User ID=dbtech;Data Source=t5" Set Rs = Con.Execute ("Select * From user_objects") while not Rs.eof %> <TR> <TD><%=Rs("OBJECT_NAME")%></TD> <TD><%=Rs("OBJECT_ID")%></TD> <TD><%=Rs("OBJECT_TYPE")%></TD> <TD><%=Rs("OBJECT_TYPE_NO")%></TD> <TD><%=Rs("CREATED")%></TD> <TD><%=Rs("STATUS")%></TD> <TD><%=Rs("TEMPORARY")%></TD> </TR> <% rs.movenext wend Set Rs = Nothing Con.Close Set Con = Nothing %> </table> </BODY> </HTML> Procedure 호출및 LOB 처리 다음은 Procedure 및 LOB 관련예제이다. 테스트오브젝트생성 CREATE TABLE NOTICE(seq number, contents clob); CREATE TABLE NOTICE3(seq number, contents blob); CREATE or REPLACE PROCEDURE UPDATE_NOTICE ( V_SEQ IN number, V_CONTENTS IN CLOB ) AS loba clob BEGIN insert into notice(seq, CONTENTS) values(v_seq, EMPTY_CLOB()); 48 Tibero Driver 연결가이드

57 select contents into loba from notice where seq=v_seq; dbms_lob.write(loba,length(v_contents),1,v_contents); COMMIT; END; / Procedure 사용 CodePage=51949 Language="VBScript"%> <% Set objconn = server.createobject("adodb.connection") 'objconn.open "Provider=tbprov.Tbprov.5;Data Source=t5;User ID=dbtech; 'Password=dbtech;" objconn.open "Provider=MSDASQL;DSN=t5;UID=dbtech;PWD=dbtech;" Set cmd= Server.CreateObject("ADODB.Command") contents = "aaaaaaaaaaaaaaaaaaaaaa" with cmd set.activeconnection = objconn.commandtype = 4.CommandText = 1, 201, 1, = = contents.execute end with Set cmd = Nothing objconn.close response.write("sql : " & Sql & "<br>") %> CLOB 조회 <% Dim Con, Rs, strqry Set Con = Server.CreateObject ("ADODB.Connection") Con.Open "Provider=MSDASQL;DSN=t5;UID=dbtech;PWD=dbtech;" Set Rs = Server.CreateObject("ADODB.Recordset") 제 2 장 OLE DB 연결 49

58 Function CLOBRead(pLen, seq) Dim K Dim strmok Dim strlast Dim strreturn Dim Res strmok = int(clng(plen) / 2000) strlast = int(strmok + 1) Set Res = Server.CreateObject("ADODB.Recordset") For K = 1 To strlast squery = "" squery = squery & " SELECT DBMS_LOB.SUBSTR(CONTENTS, 2000, 2000 * (" & K & " - 1) + 1) MEMO FROM NOTICE where seq=" & seq & vbcrlf Res.Open squery, Con strreturn = strreturn & Res("memo") Res.Close Next Set Res = Nothing CLOBRead = strreturn End Function strqry = "SELECT DBMS_LOB.GETLENGTH(contents) CONTENT_LENGTH FROM NOTICE WHERE seq=4" Rs.Open strqry, Con, 3 content = CLOBRead(Rs.Fields("CONTENT_LENGTH"), 4) %> <%=content%> <% Set Rs = Nothing Con.Close Set Con = Nothing %> BLOB 등록 <% Function ReadByteArray(strFileName) 50 Tibero Driver 연결가이드

59 Const adtypebinary = 1 Dim bin Set bin = CreateObject("ADODB.Stream") bin.type = adtypebinary bin.open bin.loadfromfile strfilename ReadByteArray = bin.read End Function Set objconn = server.createobject("adodb.connection") Set cm = Server.Createobject("ADODB.Command") // 아래코드실제사용시에는한줄로사용할것 objconn.open "Provider=tbprov.Tbprov.5;Data Source=t5 ;User ID=dbtech;Password=dbtech;" strqry = "INSERT INTO NOTICE3 (SEQ, CONTENTS) VALUES (?,?)" response.write("strqry : " & strqry & "<br>") Dim seq notice3테이블에입력할 seq필드값 seq=44 cm.activeconnection = objconn cm.commandtext = strqry cm.parameters.append 3, 1, Len(seq), seq) Dim fileuri fileuri = "D:\tibero\binary\tibero5-bin-5.0-windows opt-tested.tar.gz" 'ReadByteArray( 파일이위치한절대경로 ) cm.parameters.append 205, 1,LenB(ReadByteArray(fileURI)),ReadByteArray(fileURI)) 'cm.commandtype = 1 <<= 사용금지 cm.execute Set cmd = Nothing objconn2.close Set objconn2 = Nothing %> ASP.NET 조회 다음은간단한조회예제이다. (Windows 2008 Server IIS 확인 ) Import Namespace="System.Data.OleDb" %> <script runat="server"> 제 2 장 OLE DB 연결 51

60 sub Page_Load dim dbconn,sql,dbcomm,dbread // 아래코드실제사용시에는한줄로사용할것 dbconn=new OleDbConnection("Provider=tbprov.Tbprov.5;User ID=dbtech; Password=dbtech;Data Source=t5;Updatable Cursor=True;") dbconn.open() sql="select sysdate FROM dual" dbcomm=new OleDbCommand(sql,dbconn) dbread=dbcomm.executereader() SystemDate.DataSource=dbread SystemDate.DataBind() dbread.close() dbconn.close() end sub </script> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:repeater id="systemdate" runat="server"> <HeaderTemplate> <table border="1" width="30%"> <tr bgcolor="#b0c4de"> <th>date</th> </tr> </HeaderTemplate> <ItemTemplate> <tr bgcolor="#f0f0f0"> <td><%#container.dataitem("sysdate")%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:repeater> </form> </body> </html> 52 Tibero Driver 연결가이드

61 C# 조회 다음은간단한조회예제이다. 예제1 using System; using System.Data; using System.Data.OleDb; using System.Xml.Serialization; public class MainClass { public static void Main () { string straccessconn = "Provider=tbprov.Tbprov.5; Data Source=t5;User ID=dbtech;Password=dbtech"; Console.WriteLine("Connection..."); string straccessselect = "SELECT * FROM test3"; DataSet mydataset = new DataSet(); OleDbConnection myaccessconn = null; try { myaccessconn = new OleDbConnection(strAccessConn); } catch(exception ex) { Console.WriteLine("Error: Failed to create a database connection. \n{0}", ex.message); return; } try { OleDbCommand myaccesscommand = new OleDbCommand(strAccessSelect,myAccessConn); OleDbDataAdapter mydataadapter = new OleDbDataAdapter(myAccessCommand); myaccessconn.open(); mydataadapter.fill(mydataset,"test3"); 제 2 장 OLE DB 연결 53

62 } catch (Exception ex) { Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.message); return; } finally { myaccessconn.close(); } DataTableCollection dta = mydataset.tables; foreach (DataTable dt in dta) { Console.WriteLine("Found data table {0}", dt.tablename); } Console.WriteLine("{0} tables in data set", mydataset.tables.count); Console.WriteLine("{0} tables in data set", dta.count); Console.WriteLine("{0} rows in Categories table", mydataset.tables["test3"].rows.count); Console.WriteLine("{0} columns in Categories table", mydataset.tables["test3"].columns.count); DataColumnCollection drc = mydataset.tables["test3"].columns; int i = 0; foreach (DataColumn dc in drc) { Console.WriteLine("Column name[{0}] is {1}, of type {2}",i++, dc.columnname, dc.datatype); } DataRowCollection dra = mydataset.tables["test3"].rows; foreach (DataRow dr in dra) { Console.WriteLine("CategoryName[{0}] is {1}", dr[0], dr[1]); } } } 54 Tibero Driver 연결가이드

63 예제 2 using System; using System.Data; using System.Data.OleDb; class TableAnalysis { static void Main(string[] args) { //data source=name // 아래코드실제사용시에는한줄로사용할것 string sql = "Provider=tbprov.Tbprov.5;User ID=dbtech;Password=dbtech; Data Source=t5;Persist Security Info=True"; //location=ip,port //string sql = "Provider=tbprov.Tbprov.5;Password=dbtech; User ID=dbtech;Location= ,8629,t5;Persist Security Info=True"; OleDbConnection conn = new OleDbConnection(sql); try { conn.open(); // 데이터베이스연결 OleDbCommand cmd = new OleDbCommand(); cmd.commandtext = "select * from all_tables"; // 테이블 cmd.commandtype = CommandType.Text; // 검색명령을쿼리형태로 cmd.connection = conn; //select * from all_tables 결과 OleDbDataReader read = cmd.executereader(); Console.WriteLine("***** ALL_TABLES 테이블 *****"); for (int i = 0; i < read.fieldcount; i++) { Console.WriteLine(" 필드명 : {0} \n", read.getname(i)); } Console.WriteLine(" 총필드개수는 " + read.fieldcount); read.close(); } catch (Exception ex) { Console.WriteLine(" 에러발생 {0}", ex.message); } finally { if (conn!= null) { 제 2 장 OLE DB 연결 55

64 } } } } conn.close(); // 데이터베이스연결해제 Console.WriteLine(" 데이터베이스연결해제.."); REFCURSOR 다음은 SYS_REFCURSOR 를사용하는예제소스이다. 테스트오브젝트생성 CREATE OR REPLACE PACKAGE pkg003 IS PROCEDURE get_forms(curs out SYS_REFCURSOR); END; CREATE OR REPLACE PACKAGE BODY pkg003 IS -- procedure implementation PROCEDURE get_forms(curs out SYS_REFCURSOR) IS BEGIN open curs FOR select sysdate FROM dual; END; END; 예제소스 string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["tibero5_oledb"].ConnectionString; OleDbConnectionTbr myconnection = new OleDbConnectionTbr(connectionString); DataTable dt = new DataTable(); System.Data.OleDb.OleDbDataReader reader = null; try{ myconnection.open(); OleDbCommandTbr cmd = new OleDbCommandTbr(); cmd.connection = myconnection; cmd.commandtext = "pkg003.get_forms"; cmd.commandtype = CommandType.StoredProcedure; cmd.parameters.add("curs", OleDbTypeTbr.Cursor).Direction 56 Tibero Driver 연결가이드

65 = ParameterDirection.Output; reader = cmd.executereader(); mydatagrid.datasource = reader; mydatagrid.databind(); } catch (Exception) { } finally { reader.close(); myconnection.close(); } 제 2 장 OLE DB 연결 57

66

67 제 3 장 JDBC 연결 본장에서는 JDBC 에대한개념과 Tibero JDBC 의드라이버연동에대해서설명한다 JDBC 개념 Java Database Connectivity의약자로서 Java로만들어진클래스와인터페이스로이루어진 API이다. DBMS의종류와관련없는독립적인프로그래밍을가능하게해주며 JDBC는 java.sql, javax.sql 두개의패키지에포함된다. java.sql은데이터베이스에접근하고데이터를검색하거나업데이트하는핵심 JDBC API를제공한다. javax.sql은 JDBC 클라이언트가서버측의데이터소스를접근할수있게하는 API를제공한다. JDBC Driver Types Type 1 : JDBC-ODBC Bridge Driver ODBC 같이다른 Data Access API와매핑하는형태의 JDBC API를구현한것이다. 이것은 Native Client Library에종속적으로되는경우가많아이식성에제약이있다. Sun의 JDBC-ODBC Bridge Driver가이에속하지만 JDBC 3.0의지원이나멀티쓰레딩을사용할수없는등의여러가지제약을지닌다. [ 그림 3.1] TYPE1 Type 2 : Native-API Driver Native Code와 Java Code가혼합되어구현이되어있다. 주로 Interface만 Java인경우가많고접근하는데이터소스에따라각기다른 Native Client Library가필요하다. 그래서이것을 Thick Driver 라고도한다. Native Code로인하여이식성에제한이있다. [ 그림 3.2] TYPE2 제 3 장 JDBC 연결 59

68 Type 3 : Net-Protocol Driver 데이터베이스에독립적인프로토콜을이용하는미들웨어서버와통신하고순수자바클라이언트를사용하는드라이버로미들웨어서버는클라이언트의요청을데이터소스에독립적인프로토콜로변환하여사용한다. 이경우드라이버가직접데이터베이스를제어하지않고미들웨어를통하여제어하기때문에유연성을지닌다. [ 그림 3.3] TYPE3 Type 4 : Native-Protocol Driver 모두자바로구현되어있어플랫폼에제한을받지않으며별도의클라이언트소프트웨어가없이표준자바소켓을이용하여데이터소스와직접통신한다. 보통 Thin Driver라고한다. [ 그림 3.4] TYPE Tibero JDBC 본절에서는 JDBC 드라이버설명과연동하는방법에대해서설명한다. 참고 Tibero 에서는현재 Type 4 만지원한다 JDBC 드라이버 JDBC 드라이버는 "$TB_HOME/client/lib/jar" 경로에존재한다. 다음은드라이버파일에대한설명이다. 파일명규칙 tibero[db_major_version]-jdbc-[jdk_version]-[debug].jar 60 Tibero Driver 연결가이드

69 항목 [DB_MAJOR_VERSION] [JDK_VERSION] [DEBUG] 설명 Tibero 제품의메인버전를표시한다. JDBC 드라이버가동작하는 JDK 버전을표시한다. 기본형의경우생략한다. 문제가발생할때로그를발생하는 JDBC 파일 ( 디버그용도 ) 인지알려준다. 사용예 파일명 tibero5-jdbc.jar tibero5-jdbc-dbg.jar tibero5-jdbc-14.jar tibero5-jdbc-14-dbg.jar 설명 JDK( 또는 JRE) 1.6 이상에서수행가능한드라이버파일 ( 기본형 ) 이다. JDK( 또는 JRE) 1.6 이상에서수행가능한 JDBC 파일 ( 디버그용도 ) 이다. JDK( 또는 JRE) 1.4 이상에서수행가능한드라이버파일 (JRE 버전문제가발생할경우주로사용 ) 이다. JDK( 또는 JRE) 1.4 이상에서수행가능한 JDBC 파일 ( 디버그용도 ) 이다. 버전확인 주로 JDBC 리비전정보가필요할때아래와같은방법으로확인할수있다. 형식 java -jar [driver_name] 항목 [driver_name] 설명 JDBC 드라이버파일명이다. 사용예 $ java -jar tibero5-jdbc.jar Tibero JDBC Driver 5.0 (Rev.71713M) Tibero, Co. Copyright(C) All rights reserved 드라이버연동 Tibero JDBC를가지고서버와연동할때연동할때다음의클래스를사용한다. Connection을맺을때사용하는클래스이름 : com.tmax.tibero.jdbc.tbdriver 데이터소스를사용할때클래스이름 : com.tmax.tibero.jdbc.ext.tbconnectionpooldatasource XA 데이터소스를사용할때클래스이름 : com.tmax.tibero.jdbc.ext.tbxadatasource 제 3 장 JDBC 연결 61

70 데이터베이스 URL 데이터베이스 URL은 Single 노드구성과 TAC 노드구성으로나누어설명한다. Single 노드구성 1개의 Tibero 서버로구성된경우이다. 사용방법 항목 <ip> <port> <db_name> 설명접속하려는 Tibero 서버 IP 주소이다. 접속하려는 Tibero 서버포트번호이다. 접속하려는 Tibero 서버 DB 이름이다. 사용예 TAC 노드구성 2 개로구성된 TAC 서버일경우이다. 사용방법 (failover=on)(load_balance=on) (address_list=(address=(host=<node1_ip>)(port=<node1_port>)) (address=(host=<node2_ip>)(port=<node2_port>)) )(DATABASE_NAME=<db_name>)) 항목 failover load_balance <node1_ip> <node1_port> <node2_ip> <node2_port> <db_name> 설명연결이끊어진경우자동으로복구해주는기능 (on 또는 off 설정 ) 으로순차적방식으로새로운서버에접속하며현재는데이터베이스와의연결만복구한다. 사용자 Connection을여러서버로분산시키는기능 (on 또는 off 설정 ) 으로 Dedicate 방식 (= 전용방식 ) 으로구성할경우해당기능을 off 한다. 1번노드에대한접속정보이다. (IP 주소, 포트번호 ) 2번노드에대한접속정보이다. (IP 주소, 포트번호 ) 접속하려는 TAC 의 DB 이름이다. 62 Tibero Driver 연결가이드

71 사용예 (failover=on)(load_balance=on) (address_list=(address=(host= )(port=8629)) (address=(host= )(port=8629)) )(DATABASE_NAME=t5)) 3.3. JDBC 전환 본절에서는 Oracle JDBC 를전환하는내용을설명한다 Oracle JDBC 클래스를변경할때다음을참고한다. Oracle oracle.jdbc.driver.oracletypes.cursor oracle.sql.blob oracle.sql.clob oracle.jdbc.driver.oracleresultset oracle.jdbc.oraclecallablestatement Tibero com.tmax.tibero.tbtypes.cursor com.tmax.tibero.jdbc.tbblob com.tmax.tibero.jdbc.tbclob com.tmax.tibero.jdbc.tbresultset com.tmax.tibero.jdbc.tbcallablestatement 3.4. 문제해결 특정문제가발생했을때해결하는방법을설명한다 로그발생 Tibero JDBC를사용하여특정문제가발생했을때추가적인로그를발생하여확인하는방법이다. 로그가추가적으로발생하는부분으로일부성능이느려질수있다. 따라서문제가있을때일시적으로만사용한다. 로그발생은다음과같은순서로적용한다. 1. 드라이버교체기존에사용하던 JDBC 드라이버파일을 tibero5-jdbc-dbg.jar와같은디버그용도파일로교체한다. 2. 클라이언트프로그램재기동 제 3 장 JDBC 연결 63

72 디버그용도파일을가지고동작할수있도록프로그램을재기동한다. 3. 로그파일위치확인 ( 해당폴더확인 ) Unix 계열 : /home/ 사용자이름 Windows 계열 : C:\Documents and Settings\ 사용자이름 4. 로그파일이름확인 tbjdbc-{yymmdd}-{hhmmss}-{s}-{random}.log 형식으로파일이생성된다 예제 본절에서는 JDBC 를이용하여연결하는기본적인형태의예제와특수한타입의예제를설명한다 기본예제 다음은 JDBC 를이용한연결예제이다. import java.sql.connection; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import com.tmax.tibero.jdbc.ext.tbdatasource; public class TiberoJDBC { public static void main(string[] args) throws SQLException { TbDataSource tds = new TbDataSource(); tds.setuser("dbtech"); tds.setpassword("dbtech"); Connection conn = tds.getconnection(); Statement stmt = conn.createstatement(); String query = "select table_name from user_tables where rownum < 10 " ; ResultSet rs = stmt.executequery(query); String stname=null; int irows = 1; while ( rs.next() ) { 64 Tibero Driver 연결가이드

73 } stname = rs.getstring("table_name"); System.out.println("row[" + irows + "] : " + stname); irows++; } } rs.close(); stmt.close(); conn.close(); 타입관련예제 NVARCHAR 처리 com.tmax.tibero.jdbc.tbpreparedstatement에 NCharset을지원하기위해다음과같은 API를제공한다. setncharacterstream() setnclob() setnstring() 다음은 NVARCHAR 처리의예제이다. ds = (DataSource)ctx.lookup("tibero"); conn = ds.getconnection(); ins_pstmt = (TbPreparedStatement)conn.prepareStatement(ins_query); ins_pstmt.setstring(1, "test"); ins_pstmt.setnstring(2, "multinational character"); ARRAY 동일한타입의 Primitive 값이 Array 인경우에만지원이가능하다. 테스트오브젝트생성 CREATE OR REPLACE PACKAGE TYPE_PKG AS TYPE "TY_CHOICE_IDX_ARR" IS VARRAY(20000) OF CLOB; END; / CREATE OR REPLACE PROCEDURE TB_ARRAY_TEST ( 제 3 장 JDBC 연결 65

74 ) I_INPT_EXPC_DIV IN VARCHAR2,... O_CHOICE_PACKET OUT TYPE_PKG.TY_CHOICE_IDX_ARR /* TYPE */ IS... L_DATA TMP_CLOB_RTN CLOB; TYPE_PKG.TY_CHOICE_IDX_ARR; BEGIN -- init L_DATA := TYPE_PKG.TY_CHOICE_IDX_ARR(); TYPE AAA_SET IS TABLE OF CBT_CAT%ROWTYPE; AAA AAA_SET;... FOR I IN AAA.FIRST.. AAA.LAST LOOP -- CLOB return function T_CHOICE_IDX_LIST := FN_CHOICE_LIST_ADD_01(); O_CHOICE_IDX_LIST := O_CHOICE_IDX_LIST T_DELIM_PIPE T_CHOICE_IDX_LIST; END LOOP; L_DATA.EXTEND; L_DATA(L_DATA.COUNT) := O_CHOICE_IDX_LIST 'FALSE' 'string test' O_CHOICE_PACKET := L_DATA; END; / 예제소스 ( 소스전체는아님 ) CallableStatement cstmt = null; Array packetarray = null; callablesql = "begin? :=TB_ARRAY_TEST(?,?,?,?,?); end;"; try{ cstmt = (CallableStatement)con.prepareCall(callableSql); cstmt.setstring(1, domaincd.trim()); cstmt.setstring(2, tsno.trim()); cstmt.setdouble(3, Double.parseDouble(verNo.trim())); cstmt.setstring(4, inptexpcdiv); cstmt.setstring (5, choicegrpno); //out parameter cstmt.registeroutparameter(6, TbTypes.ARRAY, "TYPE_PKG.TY_CHOICE_IDX_ARR" ); 66 Tibero Driver 연결가이드

75 cstmt.execute(); packetarray = cstmt.getarray(6); // Get the ARRAY object if(packetarray == null){ throw new BCException("no data"); } Object o = packetarray.getarray(); clobs = (Clob[])o; choicegrppacketlist = new ArrayList(clobs.length); Clob clob = null; String packet = null; long cloblength = 0; for( int i = 0 ; i < clobs.length; i++ ){ clob = clobs[i]; cloblength = clob.length(); packet = clob.getsubstring(1, (int)cloblength); choicegrppacketlist.add(jdbccodeconvertor.tokor(packet)); } }catch(sqlexception sqle){ sqle.printstacktrace(); }finally{ if( cstmt!= null ){ try{ cstmt.close(); }catch(sqlexception sqle) { logger.error("callablestatement close Error!"); sqle.printstacktrace(); } } } 제 3 장 JDBC 연결 67

76

77 제 4 장 tbesql 연결 본장에서는 tbesql 에대한개념과사용방법에대해서설명한다 tbesql 개념 ESQL(Embedded SQL : 내장 SQL) 은프로그래밍언어의연산능력과 SQL의데이터베이스 (Database) 를조작하는능력을결합하기위한방법이며 ANSI 및 ISO 표준으로정의되어있다. tbesql은 ESQL의사용을위해 Tibero가제공하는인터페이스이며 C와 COBOL을제공한다 tbesql 기본동작 tbesql에서는프리컴파일, 컴파일및링크과정을거친다. 처리가완료된실행파일을가지고실행하게되면 Tibero 서버에접속하게되는것이다. 참고로 tbesql은내부적으로 tbcli(=odbc) 인터페이스를사용한다. 따라서 tbcli(=odbc) 관련환경변수가모두적용가능하다. [ 그림 4.1] tbesql 기본동작 제 4 장 tbesql 연결 69

단계

단계 (ODBC, OLEDB, JDBC) 본문서에서는 ODBC, OLEDB, JDBC 와같은다양한인터페이스를통해 Tibero RDBMS 로연결하기위한각 Driver 연동방법을소개한다 Contents 1. ODBC 연결가이드... 2 1.1. ODBC 란... 2 1.2. TIBERO ODBC DRIVER 연동... 3 1.2.1. Tibero ODBC Driver

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인 스마일서브 CLOUD_Virtual 워드프레스 설치 (WORDPRESS INSTALL) 스마일서브 가상화사업본부 Update. 2012. 09. 04. 본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 1

More information

C++Builder ADO Programming (5) - ADO Transaction, Errors

C++Builder ADO Programming (5) - ADO Transaction, Errors C++Builder ADO Programming (5) - ADO Transaction, Errors Collections, Connection Events 지난번 강의에서 우리의 레밍은 TADOConnection의 여러 가지 속성들과 메소드들을 익히고 그것을 사용해서 SQL 문도 실행시키고 저장 프로시저도 호출해 보았다. 그것은 그것 나름대로의 한 방법이며

More information

마리오와 소닉 리우 올림픽™

마리오와 소닉 리우 올림픽™ 마리오와 소닉 리우 올림픽 1 사용하기 전에 준비하기 2 유저 콘텐츠에 대하여 3 인터넷으로 이용 가능한 기능 4 보호자 여러분께 5 amiibo란 시작하기 전에 6 게임 소개 7 게임 시작 방법 8 조작 방법 9 데이터 저장과 삭제 통신으로 더욱 즐기기 10 대전 모드 11 포켓 마라톤 12 기록 기타 13 사용 곡명과 작곡자 소개 14 플레이 정보 송신

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 14 5 5 5 5 6 6 6 7 7 7 8 8 8 9 9 10 10 11 11 12 12 12 12 12 13 13 14 15 16 17 18 18 19 19 20 20 20 21 21 21 22 22 22 22 23 24 24 24 24 25 27 27 28 29 29 29 29 30 30 31 31 31 32 1 1 1 1 1 1 1

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2 5 장 SQL 응용 데이터베이스실험실 1 [ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL 5.2.1 T-SQL 문법 5.3 JAVA 프로그래밍 2 5.1 데이터베이스프로그래밍개념 프로그래밍 이라고하면프로그램소스를설계하고, 작성하고, 디버깅하는과정을말한다. 프로그램 혹은소프트웨어는컴퓨터에서주어진작업을하는명령어나열을말한다. 데이터베이스프로그래밍은명확한정의는없지만데이터베이스에데이터를정의하고,

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

단계

단계 TIBERO-WAS 연동 Guide 본문서에서는 Tibero RDBMS 에서제공하는 JDBC 통한 JEUS, WEBLOGIC 등다양한 WAS (Web Application Server) 제품과의연동방법을알아본다. Contents 1. Connection Pool 방식... 2 2. JEUS 연동... 3 2.1. JEUSMain.xml 설정 (Thin 방식

More information

LG-LU6200_ICS_UG_V1.0_ indd

LG-LU6200_ICS_UG_V1.0_ indd 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 삼성SDS 하이패스 USB 드라이버 설치 매뉴얼 삼성SDS(주) 목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 8에서 설치...9 2. 드라이버

More information

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

제목을 입력하세요.

제목을 입력하세요. 1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

More information

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++, Level 1은객관식사지선다형으로출제예정 1. 다음은 POST(Post of Sales Terminal) 시스템의한콜레보레이션다이어그램이다. POST 객체의 enteritem(upc, qty) 와 Sale 객체의 makellineitem(spec,qty) 를 Java 또는 C ++, C # 언어로구현하시오. 각메소드구현과관련하여각객체내에필요한선언이있으면선언하시오.

More information

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정 W2K8 R2 RemoteApp 및 Web Access 설치 및 구성 Step-By-Step 가이드 Microsoft Korea 이 동 철 부장 2009. 10 페이지 1 / 60 목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host)

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

ODS-FM1

ODS-FM1 OPTICAL DISC ARCHIVE FILE MANAGER ODS-FM1 INSTALLATION GUIDE [Korean] 1st Edition (Revised 4) 상표 Microsoft, Windows 및 Internet Explorer는 미국 및 / 또는 다른 국가에서 Microsoft Corporation 의 등록 상표입 Intel 및 Intel Core

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾ P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

Microsoft Word - Installation and User Manual_CMD V2.2_.doc CARDMATIC CMD INSTALLATION MANUAL 씨앤에이씨스템(C&A SYSTEM Co., Ltd.) 본사 : 서울특별시 용산구 신계동 24-1(금양빌딩 2층) TEL. (02)718-2386( 代 ) FAX. (02) 701-2966 공장/연구소 : 경기도 고양시 일산동구 백석동 1141-2 유니테크빌 324호 TEL. (031)907-1386

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 )

인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 ) Publisher: International Organization for Migration 17, route des Morillons 1211 Geneva 19 Switzerland Tel: +41.22.717 91 11 Fax: +41.22.798 61 50 E-mail: hq@iom.int Internet: http://www.iom.int ISBN 978

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install the PDI on CentOS 2013.04 G L O B E P O I N T 1 Ⅰ linux 구성 II Pentaho Install 2013, Globepoint Inc. All Rights Reserved. 2 I. Linux 구성 2013, Globepoint Inc. All Rights Reserved. 3 IP 설정 1. 설정파일

More information

°ø°³¼ÒÇÁÆ®-8È£

°ø°³¼ÒÇÁÆ®-8È£ 2007. 08 No.8 IT World 운영체제 미들웨어 데이터베이스 웹프로그래밍까지 표준화된공개SW 컴퓨팅환경이지원합니다. 글로벌표준의공개SW 환경은 핵심애플리케이션뿐만아니라다양한플랫폼에서도활용됩니다. 2 2007. 08No.8 Contents Special Editorial 04 Best Practice 08 12 16 20 24 26 Insight 32

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

라즈베리파이 프로그래밍_130912(최종).indd

라즈베리파이 프로그래밍_130912(최종).indd 파이썬으로 시작하는 라즈베리 파이 프로그래밍 Programming the Raspberry Pi Getting Started with Python Programming the Raspberry Pi: Getting Started with Python, 1st Edition. Korean Language Edition Copyright 2013 by McGraw-Hill

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

最即時的Sybase ASE Server資料庫診斷工具

最即時的Sybase ASE Server資料庫診斷工具 TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser

More information

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

VOL.76.2008/2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph 인터그래프코리아(주)뉴스레터 통권 제76회 비매품 News Letters Information Systems for the plant Lifecycle Proccess Power & Marine Intergraph 2008 Contents Intergraph 2008 SmartPlant Materials Customer Status 인터그래프(주) 파트너사

More information

Microsoft PowerPoint - 07-C#-13-ADO.ppt [호환 모드]

Microsoft PowerPoint - 07-C#-13-ADO.ppt [호환 모드] 데이터베이스기초 ADO.NET MS Access 데이터베이스만들기 DataAdapter 클래스예 Connection, Command 클래스예 DataReader 클래스예레코드추가예레코드수정예레코드삭제예 순천향대학교컴퓨터학부이상정 1 데이터베이스기초 순천향대학교컴퓨터학부이상정 2 데이터베이스용어 필드 (field) 가장작은단위의의미있는데이터표현 교수이름, 학번등

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오. 메 뉴 다음 사항을 꼭 확인하세요! --------------------------------- 2p 안전을 위한 주의 사항 --------------------------------- 3p 구성품 --------------------------------- 4p 각 부분의 명칭 --------------------------------- 5p 제품의 규격

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

컴퓨터관리2번째시간

컴퓨터관리2번째시간 Company 컴퓨터 관리 참고 자료 PC 운영체제 POST 기능 :, ROM BIOS ( : [F8]) 1. Windows XP Windows XP 사용자 계정 :,,, 강화된 디지털 미디어 지원 기능 : (Windows Movie Maker), CD (Windows Media Player), Windows 홈 네트워크 기능 :, 강화된 시스템 관리 :,

More information

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2 유영테크닉스( 주) 사용자 설명서 HDD014/034 IDE & SATA Hard Drive Duplicator 유 영 테 크 닉 스 ( 주) (032)670-7880 www.yooyoung-tech.com 목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy...

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 RecurDyn 의 Co-simulation 와 하드웨어인터페이스적용 2016.11.16 User day 김진수, 서준원 펑션베이솔루션그룹 Index 1. Co-simulation 이란? Interface 방식 Co-simulation 개념 2. RecurDyn 과 Co-simulation 이가능한분야별소프트웨어 Dynamics과 Control 1) RecurDyn

More information

Citrix Workload Balancing 2.1 설치 가이드

Citrix Workload Balancing 2.1 설치 가이드 Citrix Workload Balancing 2.1 설치 가이드 2011-7 펴냄 버전 1.0 Citrix Workload Balancing 2.1 설치 가이드 Copyright 2011 Citrix 판권 소유. 버전: Workload Balancing 2.1 Citrix, Inc. 851 West Cypress Creek Road Fort Lauderdale,

More information

BSC Discussion 1

BSC Discussion 1 Copyright 2006 by Human Consulting Group INC. All Rights Reserved. No Part of This Publication May Be Reproduced, Stored in a Retrieval System, or Transmitted in Any Form or by Any Means Electronic, Mechanical,

More information

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = insert into member(code, name, id, pwd, age) values (; int id = 10; sql = sql + id +, ;// 항목사이에 Statement 객체와 PreparedStatement 객체 Connection 객체 - Connection 객체가생성되면데이터베이스에접근이가능해진다. - Connection 객체는자바와데이터베이스의접속된상태의객체를말한다. 데이터베이스에 DML작업을위해서는반드시접속을먼저해야한다. 그리고, 작업후에는반드시접속을해제한다. - Connection 객체를생성할때두개의문자열이필요하다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web Browser Web Server ( ) MS Explorer 5.0 WEB Server MS-SQL HTML Image Multimedia IIS Application Web Server ASP ASP platform Admin Web Based ASP Platform Manager Any Platform ASP : Application Service

More information

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수 사용 설명서 TeraStation Pro II TS-HTGL/R5 패키지 내용물: 본체 (TeraStation) 이더넷 케이블 전원 케이블 TeraNavigator 설치 CD 사용 설명서 (이 설명서) 제품 보증서 www.buffalotech.com 소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

Assign an IP Address and Access the Video Stream - Installation Guide

Assign an IP Address and Access the Video Stream - Installation Guide 설치 안내서 IP 주소 할당 및 비디오 스트림에 액세스 책임 본 문서는 최대한 주의를 기울여 작성되었습니다. 잘못되거나 누락된 정보가 있는 경우 엑시스 지사로 알려 주시기 바랍니다. Axis Communications AB는 기술적 또는 인쇄상의 오류에 대해 책 임을 지지 않으며 사전 통지 없이 제품 및 설명서를 변경할 수 있습니다. Axis Communications

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

Xcovery 사용설명서

Xcovery 사용설명서 ㄱ 센티리온 프리미엄 사용설명서 목 차 Chapter 1 프로그램 소개 및 기본개념 1) 시스템 복구 2) 시스템백업 3) 시스템 백업 및 시스템 복구 활용하기 4) 폴더보호 Chapter 2 프로그램 설치하기 1) 프로그램 설치 방법 2) Centillion 설치 소프트웨어 사용권 계약서 3) 제품 인증 키 입력 4) Centillion 폴더보호 5) Windows

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx (보험TM) 소개서 2015.12 대표전화 : 070 ) 7405 1700 팩스 : 02 ) 6012 1784 홈 페이지 : http://www.itfact.co.kr 목 차 01. Framework 02. Application 03. 회사 소개 01. Framework 1) Architecture Server Framework Client Framework

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

11111111111111111111111111111111111111111111111111111111111111111111111111111

11111111111111111111111111111111111111111111111111111111111111111111111111111 서울시 금천구 가산동 448 대륭테크노타운 3차 301호 전화 : (02)838-0760 팩스 : (02)838-0782 메일 : support@gyrosoft.co.kr www.gyrosoft.co.kr www.gyro3d.com 매뉴얼 버전 : 1.00 (발행 2008.6.1) 이 설명서의 어느 부분도 자이로소프트(주)의 승인 없이 일부 또는 전부를 복제하여

More information

1

1 04단원 컴퓨터 소프트웨어 1. 프로그래밍 언어 2. 시스템 소프트웨어 1/10 1. 프로그래밍 언어 1) 프로그래밍 언어 구분 각종 프로그래밍 언어에 대해 알아보는 시간을 갖도록 하겠습니다. 우리가 흔히 접하는 소프트웨어 들은 프로그래밍 언어로 만들어지는데, 프로그래밍 언어는 크게 2가지로 나눌 수 있습니다. 1 저급어 : 0과 1로 구성되어 있어, 컴퓨터가

More information

Tekla Structures 설치

Tekla Structures 설치 Tekla Structures 2016 설치 4 월 2016 2016 Trimble Solutions Corporation 목차 1 Tekla Structures 설치... 3 1.1 Tekla Structures 설치 기본 요건... 5 1.2 Tekla Structures 설치 폴더... 6 2 Tekla Structures 설치... 9 2.1 Tekla

More information

Amazon EBS (Elastic Block Storage) Amazon EC2 Local Instance Store (Ephemeral Volumes) Amazon S3 (Simple Storage Service) / Glacier Elastic File Syste (EFS) Storage Gateway AWS Import/Export 1 Instance

More information

: Symantec Backup Exec System Recovery 8:............................................................................. 3..............................

: Symantec Backup Exec System Recovery 8:............................................................................. 3.............................. W H I T : E PA P E R : C U S TO M I Z E Confidence in a connected world. Symantec Backup Exec System Recovery 8: : Symantec Backup Exec System Recovery 8:.............................................................................

More information

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현 02 Web Application Hosting in the AWS Cloud www.wisen.co.kr Wisely Combine the Network platforms Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

DR-M140 사용 설명서

DR-M140 사용 설명서 사용 설명서 본 스캐너를 사용하기 전에 이 설명서를 읽으십시 오. 이 설명서를 다 읽은 후에는 이후에 참조할 수 있 도록 안전한 곳에 보관하십시오. 보증과 A/S 이 제품에는 보증서가 있습니다. 보증서는 구매처에서 받을 수 있습니다. 구매한 날짜 구매처 등의 기 입을 확인한 후 내용을 정확히 읽고 잘 보관하십시오. 보증기간 보증기간은 구매한 날로부터 1년 입니다.

More information

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - 14주차 강의자료 Java 로만드는 Monster 잡기게임예제이해 2014. 12. 2 게임화면및게임방법 기사초기위치 : (0,0) 아이템 10 개랜덤생성 몬스터 10 놈랜덤생성 Frame 하단에기사위치와기사파워출력방향키로기사이동아이템과몬스터는고정종료버튼클릭하면종료 Project 구성 GameMain.java GUI 환경설정, Main Method 게임객체램덤위치에생성 Event

More information

슬라이드 1

슬라이드 1 강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

05Àå

05Àå CHAPTER 05 NT,, XP,. NT NTFS, XP. D,,. XP x NT,,, ( x, x ). NT/ /XP,.. PC NT NT. + Guide to Software: Understanding and Installing Windows 2000 and Windows NT + SOFTWARE Guide to Software 3/e SOFTWARE

More information

Hardware Manual TSP100

Hardware Manual TSP100 Trademark acknowledgments TSP: Star Micronics., Ltd. Notice All rights reserved. Reproduction of any part of this manual in any form whatsoever, without STAR s express permission is forbidden. The contents

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx 과목명: 웹프로그래밍응용 교재: 모던웹을 위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch19. node.js 기본 2014년 1학기 Professor Seung-Hoon Choi 19 node.js 기본 이 책에서는 서버 구현 시 node.js 를 사용함 자바스크립트로 서버를 개발 다른서버구현기술 ASP.NET, ASP.NET

More information

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장... Active Directory Upgrade from W2K3 to W2K8 R2 5/10/2010 Microsoft Dong Chul Lee Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

스마트월드캠퍼스 교육교제

스마트월드캠퍼스 교육교제 LG Smart TV SDK 활용법 Contents 1. Using LG Smart TV SDK 2. Testing & Publishing 3. UX Guideline Using LG Smart TV SDK LG Smart TV SDK 구성 Open API IDE* App 구현을 위한 LG Smart TV 인터페이스 제공 Media playback, TV 제어,

More information

User's Guide Manual

User's Guide Manual 1. 롯데 통합구매 시스템 사용자 매뉴얼 (공급사용) 2006.01-1 - 문서 이력(Revision History) Date Version Description Author(s) 2006/01 V1.0 사용자 매뉴얼 - 공급사용 롯데CFD 주) 이 사용자 안내서의 내용과 롯데 통합구매 시스템은 저작권법과 컴퓨터 프로그램 보호법으로 보호 받고 있으며, 롯데CFD의

More information

Mars OS 1.0.2 System Administration Guide

Mars OS 1.0.2 System Administration Guide Mars OS 1.0.2 시스템 관리 가이드 NetApp, Inc. www.netapp.com/kr 부품 번호:215-09731_A0 2015년 2월 4일 수요일 2 목차 목차 Mars OS 정보 12 Mars OS의 기능 13 고성능 13 업계 최고의 스토리지 효율성 13 시스템 모니터링 13 비휘발성 메모리를 사용하여 안정성 및 성능 향상 13 클러스터링

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information