Microsoft Word - ODBC
|
|
- 인서 양
- 6 years ago
- Views:
Transcription
1 ALTIBASE Application Development ODBC User s Manual Release 5.3.3
2 ALTIBASE Application Development ODBC User s Manual Release Copyright c 2001~2009 ALTIBASE Corp. All Rights Reserved. 본문서의저작권은 알티베이스에있습니다. 이문서에대하여당사의동의없이무단으로복제또는전용할수없습니다. 알티베이스 서울시구로구구로동 대륭포스트타워 Ⅱ 10 층전화 : 팩스 : support@altibase.com homepage:
3 목차 서문... i 이매뉴얼에대하여... ii 1. ODBC 소개... 1 ODBC의개요... 2 ODBC 사용방법... 4 ODBC 연동... 8 기본프로그래밍순서 ODBC 함수종류 ODBC 함수 SQLAllocConnect SQLAllocEnv SQLAllocHandle SQLAllocStmt SQLBindCol SQLBindParameter SQLCloseCursor SQLColAttribute SQLColumns SQLConnect SQLDescribeCol SQLDescribeParam SQLDisconnect SQLDriverConnect SQLEndTran SQLError SQLExecDirect SQLExecute SQLFetch 목차 I
4 SQLFetchScroll SQLForeignKeys SQLFreeConnect SQLFreeEnv SQLFreeHandle SQLFreeStmt SQLGetConnectAttr SQLGetData SQLGetDescField SQLGetDescRec SQLGetDiagField SQLGetDiagRec SQLGetEnvAttr SQLGetFunctions SQLGetInfo SQLGetPlan SQLGetStmtAttr SQLGetTypeInfo SQLMoreResult SQLNativeSql SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLRowCount SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr SQLSpecialColumns SQLStatistics II ALTIBASE5 ODBC User s Manual
5 SQLTablePrivileges SQLTables SQLTransact LOB 인터페이스 LOB data types LOB Function Overview SQLBindFileToCol SQLBindFileToParam SQLGetLobLength SQLGetLob SQLPutLob SQLFreeLob A. 부록 : Sample Code 프로그래밍시각단계에서주의할점 ODBC 프로그램기본예제 메타정보검색프로그램예제 프로시저테스트프로그램예제 B. 부록 : 데이터형 SQL 데이터형 C 데이터형 SQL 데이터형을 C 데이터형으로변환하기 C 데이터형을 SQL 데이터형으로변환하기 C. 부록 : ODBC 오류코드 ODBC 오류 명령문상태전이 상태전이테이블 D. 부록 : ODBC 적합성 인터페이스적합성레벨 E. 부록 : 업그레이드 데이터타입 기타변경사항 찾아보기 목차 III
6
7 서문 서문 i
8 이매뉴얼에대하여 이매뉴얼은 ODBC 사용법에대해설명한다. 대상사용자 이매뉴얼은다음과같은알티베이스사용자를대상으로작성되었다. 데이터베이스관리자 성능관리자 데이터베이스사용자 응용프로그램개발자 기술지원부 다음과같은배경지식을가지고이매뉴얼을읽는것이좋다. 컴퓨터, 운영체제및운영체제유틸리티운용에필요한기본지식 관계형데이터베이스사용경험또는데이터베이스개념에대한이해 컴퓨터프로그래밍경험 데이터베이스서버관리, 운영체제관리또는네트워크관리경험 소프트웨어환경 이매뉴얼은데이터베이스서버로알티베이스버전 을사용한다는가정하에작성되었다. 이매뉴얼의구성 이매뉴얼은다음과같이구성되어있다. 제 1 장 ODBC 소개이장은 ODBC 의배경, 사용법, 프로그래밍순서등에대해간략히설명한다. 그리고 ODBC 함수를요약해서설명한다. 제 2 장 ODBC 함수이장은 ODBC 함수들에대해구문, 인자, 결과값, 예제등으로나눠서자세히설명한다. 제 3 장 LOB 인터페이스이장은 LOB 데이터를사용하는데필요한함수및데이터타입을설명한다. A. 부록 : Sample Code ii ALTIBASE5 ODBC User s Manual
9 본매뉴얼에서전반적으로사용된예에대한전체코드리스트를나타낸다. B. 부록 : 데이터형알티베이스데이터베이스의데이터타입과 SQL 데이터타입, C 데이터타입의종류와각타입간의변경가능유무에대해서설명한다. C. 부록 : ODBC 오류코드 ODBC 사용중발생하는오류를 SQLSTATE 별로분류하여설명한다. D. 부록 : ODBC 적합성현재알티베이스 ODBC 에서지원하는함수들과앞으로지원예정인함수들, 그리고지원되지않는함수들에대하여 ODBC 함수적합성에입각하여설명한다. E. 부록 : 업그레이드알티베이스를업그레이드하면서이전버전에서사용하던 ODBC 응용프로그램들을사용할수있도록추가되었거나재정의된데이터타입과기타변경사항들에대해설명한다. 문서화규칙 이절에서는이매뉴얼에서사용하는규칙에대해설명한다. 이규칙을이해하면이매뉴얼과설명서세트의다른매뉴얼에서정보를쉽게찾을수있다. 여기서설명하는규칙은다음과같다. 구문다이어그램 샘플코드규칙 구문다이어그램 이매뉴얼에서는다음구성요소로구축된다이어그램을사용하여, 명령문의구문을설명한다. 구성요소 예약어 의미 명령문이시작한다. 완전한명령문이아닌구문요소는화살표로시작한다. 명령문이다음라인에계속된다. 완전한명령문이아닌구문요소는이기호로종료한다. 명령문이이전라인으로부터계속된다. 완전한명령문이아닌구문요소는이기호로시작한다. ; 명령문이종료한다. 서문 iii
10 SELECT 필수항목 선택적항목 NOT ADD 선택사항이있는필수항목. 한항목만제공해야한다. DROP 선택사항이있는선택적항목 ASC DESC ASC 선택적항목. 여러항목이허용된다. 각반복앞부분에콤마가와야한다. DESC, 샘플코드규칙 코드예제는 SQL, Stored Procedure, isql 또는다른명령라인구문들을예를들어설명한다. 아래테이블은코드예제에서사용된인쇄규칙에대해설명한다. 규칙 의미 예제 [ ] 선택항목을표시 VARCHAR [(size)] [[FIXED ] VARIABLE] 필수항목표시. 반드시하나이상을선택해야되는표시 ENABLE DISABLE COMPILE 선택또는필수항목표시의인자구분표시... 그이전인자의반복표시예제코드들의생략되는것을표시 ENABLE DISABLE COMPILE [ ENABLE DISABLE COMPILE ] SQL> SELECT ename FROM employee; ENAME SWNO HJNO HSCHOI... iv ALTIBASE5 ODBC User s Manual
11 그밖에기호 기울임꼴 소문자 대문자 위에서보여진기호이외에기호들 구문요소에서사용자가지정해야하는변수, 특수한값을제공해야만하는위치지정자사용자가제공하는프로그램의요소들, 예를들어테이블이름, 칼럼이름, 파일이름등 시스템에서제공하는요소들또는구문에나타나는키워드 20 rows selected. EXEC :p1 := 1; acc NUMBER(11,2); SELECT * FROM table_name; CONNECT userid/password; SELECT ename FROM employee; DESC SYSTEM_.SYS_INDICES_; 관련자료 자세한정보를위하여다음문서목록을참조하기바란다. ALTIBASE Installation User s Manual ALTIBASE Administrator s Manual ALTIBASE Replication User s Manual ALTIBASE Precompiler User s Manual ALTIBASE ODBC User s Manual ALTIBASE Application Program Interface User s Manual ALTIBASE isql User s Manual ALTIBASE Tools Utilities User s Manual ALTIBASE Error Message Reference 온라인매뉴얼 알티베이스테크니컬센터 ( 에서국문및영문매뉴얼 (PDF, HTML) 을받을수있다. 알티베이스는여러분의의견을환영합니다. 이매뉴얼에대한여러분의의견을보내주시기바랍니다. 사용자의의견은다음버전의매뉴얼을작성하는데많은도움이됩니다. 보내실때에는아래내용과함께기술지원센터 (support@altibase.com) 로보내주시기바랍니다. 사용중인매뉴얼의이름과버전 매뉴얼에대한의견 사용자의성함, 주소, 전화번호 서문 v
12 이외에도알티베이스기술지원설명서의오류와누락된부분및기타기술적인문제들에대해서이주소로보내주시면정성껏처리하겠습니다. 기술적인부분과관련하여즉각적인도움이필요한경우에는기술지원센터로연락하시기바랍니다. 여러분의의견에항상감사드립니다. vi ALTIBASE5 ODBC User s Manual
13 1. ODBC 소개 ODBC 는호출가능한 SQL 프로그래밍인터페이스이다. 호출가능한 SQL 인터페이스는데이터베이스접근용애플리케이션프로그램인터페이스로써, 함수를호출하여 SQL 문을실행한다. ODBC 소개 1
14 ODBC 의개요 ODBC 는데이터베이스에접근하기위한표준개방형응용프로그램인터페이스이다. 애플리케이션이데이터베이스서버와연결하여 SQL 작업을처리할수있도록호출수준의인터페이스를제공한다. 데이터베이스에접근하기위해서는 ODBC 소프트웨어외에, 접근하려는데이터베이스에서제공하는별도의모듈이나드라이버가필요하다. ODBC 배경 ODBC 는 SQL Access Group (SAG) 에의해만들어졌으며, 1992 년 9 월에처음나왔다. 처음엔마이크로소프트가윈도우용 ODBC 제품을공급했지만, 현재는유닉스, OS/2 및매킨토시등을위한버전들이생겨났다. ODBC 는표준 SQL 호출수준의인터페이스에근간을두고밀접하게맞추어져있다. ODBC 는프로그램들이데이터베이스의독점적인인터페이스를몰라도데이터베이스에접근하기위한 SQL 요청을사용할수있게한다. ODBC 는 SQL 요청을받아서, 그것을개개의데이터베이스시스템들이이해할수있는요청으로변환한다. ODBC 와 C/C++ Precompiler 의차이점 C/C++ Precompiler 인터페이스를사용하는애플리케이션은 SQL 문을코드로변환하기위한전처리기 (precompiler) 가필요하다. 그러나 ODBC 애플리케이션은전처리가필요없는대신 SQL 문을실행하는표준함수를사용한다. ODBC 의장점은표준함수를제공하는다른데이터베이스제품군에대해서도사용이가능하다는것이다. 즉, ODBC 를사용하면특정데이터베이스제품에독립적인애플리케이션개발이가능하다. ODBC 함수분류 ODBC 의 API 는애플리케이션작성에필요한환경정의, 연결관리, SQL 문처리, 트랜잭션처리등에관련된기능을제공하는함수들로구성된다. 각함수들은제공하는기능에따라다음과같은그룹으로구분할수있다. 환경 / 연결관리 2 ALTIBASE5 ODBC User s Manual
15 SQL 처리 속성처리 메타정보처리 환경 / 연결관리 데이터베이스서버연결에필요한환경설정과연결에관련된기능등을제공하는 API 로구성된다. 또한모든작업이종료된후할당된메모리등을해제한다. SQL 처리 SQL 처리를위한명령문할당과준비, 실행요청과결과값처리기능등을제공하는 API 로구성된다. 속성처리 SQL 처리를위한환경설정, 연결설정, 명령문속성설정기능등을제공하는 API 로구성된다. 메타정보처리 테이블정의, 열정의등메타정보검색을위한기능등을제공하는 API 로구성된다. ODBC 소개 3
16 ODBC 사용방법 본절에서는 ODBC 를이용한애플리케이션작성에필요한사전지식을살펴본다. 기본사용법 ODBC 애플리케이션프로그램은아래 [ 그림 1-1] 과같이전형적으로크게세단계로구성된다. 초기설정 트랜잭션처리 종료 위의세가지외에도진단메세지처리와같은작업등이있는데, 이러한작업은애플리케이션전반에걸쳐발생한다. SQLAllocEnv() SQLAllocConnect() SQLConnect() SQLAllocStmt() 초기설정 (Handle 할당, 초기화 ) Transaction 처리 SQLFreeStmt() SQLDisconnect() SQLFreeConnect() SQLFreeEnv() 종료 ( 할당된 Handle 해제 ) [ 그림 1-1] ODBC 애플리케이션단계 4 ALTIBASE5 ODBC User s Manual
17 초기설정 초기화는환경및연결핸들을할당하고초기화한다. 각단계에서다음단계로의전환은적절한핸들을전달함으로써이전단계의실행결과에관한정보를전달하는것으로이루어진다. ODBC 에서제공하는핸들의종류는다음과같다. 환경핸들 환경핸들은애플리케이션상태에대한전체적인환경을참조한다. 환경핸들은연결핸들이할당되기전에할당되어야하며, 하나의애플리케이션내에서여러개의환경핸들을할당할수있다. 연결핸들 연결핸들은 ODBC 가관리하는연결과관련된정보를참조한다. 이정보에는일반적인상태정보, 트랜잭션상태, 진단정보가포함된다. 애플리케이션은각연결에대한연결핸들을할당하여 Altibase 서버로의연결을시도하게된다. 명령문핸들 명령문핸들은 ODBC 가관리하는 SQL 문에대한정보를참조한다. 명령문핸들은연결핸들과연관이있다. 명령문을실행하기위해명령문핸들을할당한다. 하나의연결에최대 1024 개의명령문을할당할수있다. 트랜잭션처리 [ 그림 1-2] 는일반적인함수호출순서를보여준다. ODBC 소개 5
18 명령문준비 SQLPrepare() SQLBindParameter() 명령문직접실행 SQLExecDirect() 명령문실행 SQLExecute() 결과검색 (SELECT) SQLNumResultCols() SQLDescribeCol() SQLColAttribute() SQLBindCol() SQLFetch() 결과검색 (INSERT, UPDATE, DELETE) SQLRowCount() [ 그림 1-2] 함수호출순서 종료 애플리케이션에서할당되었던핸들을단절하고, 할당되었던메모리를회수한후애플리케이션을종료한다. 진단메세지처리 진단이란애플리케이션내에서생성된경고나오류상태를처리하는것을말한다. 애플리케이션의결과값 결과값 설명 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_NO_DATA_FOUND SQL_ERROR 함수가성공적으로완료 경고및기타정보와함께실행이성공적으로완료 함수가성공적이지만관련자료가없다 함수가실패 6 ALTIBASE5 ODBC User s Manual
19 SQL_INVALID_HANDLE 입력핸들이유효하지않아함수실패 SQL_SUCCESS, SQL_NO_DATA_FOUND, SQL_INVALID_HANDLE 을제외하고는진단메세지를생성한다. 진단메세지를확인하려면 SQLGetDiagRec() 및 SQLGetDiagField() 를호출하여확인할수있다. 진단메세지 진단메세지는 5 자 ( 바이트 ) 로된영어 / 숫자의스트링이다. 여기에서상위 2 자는클래스, 하위 3 자는하위클래스를나타낸다. 알티베이스가제공하는진단메세지는 X/Open SQL CAE 가정의하는표준을준수한다. 주의사항 ALTIBASE 클라이언트라이브러리는신호처리를하지않는다. 따라서외부원인에의해네트워크접속이종료된경우, SIGPIPE 신호를받아진행중인응용프로그램이강제로종료될수있다. 이러한강제종료를막기위해서는 SIGPIPE 신호를사용자애플리케이션에서처리해야한다. 그러나 SIGPIPE 신호처리를하기위해 ALTIBASE 클라이언트라이브러리의함수를호출하면프로그램이멈출수있기때문에사용하면안된다. 하지만신호처리가끝난후에는 ALTIBASE 클라이언트라이브러리의함수를호출하는것이가능하다. ODBC 소개 7
20 ODBC 연동 본절에서는 Unix, Windows 에서 ODBC 를연동하는방법에대해서기술한다. 시스템별 ODBC 연동 Unix 모든 API 의사용법은동일하다. 그러나서버에연결할때 (SQLDriverConnect) 연결스트링에서차이가있다. DSN=host_ip;PORT_NO=20300;UID=SYS;PWD=MANAGER;CONNT YPE=1;NLS_USE=US7ASCII ALTIBASE ODBC 라이브러리가설치된 Unix-ODBC 또는 iodbc 의공용라이브러리이름은기본적으로 libodbcinst.so (HP 의경우확장자가 sl) 이다. 그러나라이브러리파일명을직접설정할경우에는환경변수 UNIX_ODBC_INST_LIB_NAME 에설정하면된다. 예제 ) iodbc 의경우환경변수설정을변경한다. export UNIX_ODBC_INST_LIB_NAME=libiodbcinst.so Unix-ODBC Unix ODBC Manager 는연동을위해별도의설정이필요하지않다. iodbc ALTIBASE Unix 용 ODBC 드라이버를 iodbc Manager 와연동하기위해서는다음과같은환경변수를설정해야한다. export UNIX_ODBC_INST_LIB_NAME=libiodbcinst.so 필요에따라서다음과같은환경설정을한다. export LD_PRELOAD=/lib/libdemangle.so 추가적으로운영체제가 AIX 일경우 iodbc Manager 와연동이실패하면, 다음사항을확인하여추가작업을해야한다. iodbc 라이브러리가설치된경로로이동하여 iodbcinst.a 아카이브파일에서 iodbcinst.so. 파일을추출한다. $> ar -x libiodbcinst.a 파일확장자를 so.2 에서 so 로변경한다. $> mv libiodbcinst.so.2 libiodbcinst.so iodbc 공유라이브러리탐색경로를 LIBPATH 환경변수에설 8 ALTIBASE5 ODBC User s Manual
21 정한다. 예 ) 공유라이브러리경로가 /usr/local/lib 인경우 : export LIBPATH=/usr/local/lib:$LIBPATH Windows ODBC 설치후 " 설정 -> 관리도구 -> 데이터원본 " 에서등록한데이터원본이름을 DSN=datasource_name 으로설정한다. ODBC 소개 9
22 기본프로그래밍순서 STEP 1 : CONNECT SQLAllocHandle(ENV) SQLSetEnvAttr SQLAllocHandle(DBC) SQLDriverConnect SQLSetConnectAttr STEP 2 : INITIALIZE SQLAllocHandle(STMT) SQLSetStmtAttr STEP 3 : EXECUTE Catalog function or SQLBindParameter SQLExecDirect Statement Type? (1) Select or Catalog STEP 4a: FETCH RESULTS SQLNumResultCols SQLDescribeCol SQLBindCol SQLFetch SQLGetData (2)Update/Delete/Insert STEP 4b: FETCH ROW COUNT SQLRowCount (3) Other STEP 5 : TRANSACT SQLEndTran STEP 6 : DISCONNECT SQLFreeHandle(STMT) SQLDisconnect SQLFreeHandle(DBC) SQLFreeHandle(ENV) 10 ALTIBASE5 ODBC User s Manual
23 단계 1 Connect to the Database 어떤애플리케이션에건첫번째단계는데이터베이스에연결하는것이다. 이단계에서필요한함수는다음그림과같다. STEP 1: CONNECT SQLAllocHandle() SQLSetEnvAttr() SQLAllocHandle() SQLDriverConnect() SQLSetConnectAttr() 데이터베이스에연결하는첫번째작업은 SQLAllocHandle() 을이용하여환경핸들을할당하는것이다. 애플리케이션은 SQLSetEnvAttr() 을호출하여현재환경에대한환경속성을설정한다. 다음으로애플리케이션은 SQLAllocHandle() 로연결핸들을할당하고 SQLDriverConnect() 을호출하여데이터소스에연결한다. 그런다음애플리케이션은 SQLSetConnectAttr() 을이용하여연결속성값을설정한다. 단계 2 Initialize the Application 두번째단계는다음그림에설명된것처럼애플리케이션을초기화하는것이다. 정확한작업은애플리케이션마다다르다. STEP 2: INITIALIZE SQLAllocStmt() SQLSetStmtAttr() 애플리케이션은 SQLAllocStmt() 로명령문핸들을할당하고, 대부분의애플리케이션들은 SQLSetStmtAttr() 로커서종류와같은상태요인을지정한다. 단계 3 Build and Execute an SQL Statement 세번째단계는다음그림에보이는것처럼 SQL ODBC 소개 11
24 명령문 (statement) 을만들고실행하는것이다. 이단계의처리형태는매우다양하다. 애플리케이션은사용자가입력한 SQL 문에기초하여 SQL 문을만들거나실행한다. STEP 3: EXECUTE Catalog function or SQLBindParameter() SQLExecDirect() SQL 문이만들어지고인자들이바인드되면, 명령문 (statement) 은 SQLExecDirect 를실행한다. 만약명령문 (statement) 이여러번실행되려면, SQLPrepare() 로준비되고, SQLExecute 로실행되어진다. 만약 SQL 문이인자들을포함하면, 애플리케이션은 SQLBindParameter() 를호출하여각인자들을애플리케이션변수에바인드시킨다. 인자를바인딩하기전에 SQLPrepare() 를실행해야하며, 바인딩후에 SQLExecute() 을실행할수있다. 애플리케이션은 SQL 문실행을보류하고카탈로그정보를포함한결과집합을리턴하는함수를호출할수도있다. 애플리케이션의다음취할행동은 SQL 문의실행형태에달려있다. SQL 문의종류다음취할행동 SELECT 또는카탈로그함수단계 4a: 결과를가져온다. UPDATE, DELETE 또는단계 4b: 행의개수를가져온다. INSERT 그밖의 SQL 문 단계 3: SQL 문을만들고실행한다. 또는단계 5: 트랜잭션을반영 (commit) 한다. 단계 4a Fetch the Results STEP 4a: FETCH RESULTS SQLNumResultCols() SQLDescribeCol() SQLBindCol() SQLFetch() SQLCloseCursor() 12 ALTIBASE5 ODBC User s Manual
25 다음단계는다음그림처럼결과를 fetch 하는것이다. 만약단계 3 에서실행된명령문 (statement) 이 SELECT 문이나카탈로그함수라면, 애플리케이션은먼저결과집합의칼럼수를알아보기위해 SQLNumResultCols() 를호출한다. 애플리케이션은이미결과집합열의개수를알고있다면이단계는필요없다. 그다음, 애플리케이션은 SQLDescribeCol() 로각결과집합열의이름, 데이터형, 정밀도등을가져온다. 마찬가지로애플리케이션이이런정보들을미리알고있다면이단계도필요없다. 그후애플리케이션은애플리케이션변수와결과집합의열을바인드하는 SQLBindCol() 에이런정보를보낸다. 이제애플리케이션은 SQLFetch() 를호출하여첫번째행데이터를가져오고 SQLBindCol() 로바인드된변수에데이터를저장한다. 행에긴데이터가있으면 SQLGetData() 로데이터를가져올수도있다. 애플리케이션은추가적으로데이터를가져오기위해 SQLFetch() 와 ( 필요하다면 ) SQLGetData() 의호출을계속한다. 위의과정을거쳐모든 data 를 fetch 해온후에는다른명령문 (statement) 을 SQLPrepare() 와 SQLExecute() 를이용하여실행하기전에반드시 SQLCloseCursor() 를호출하여데이터를 fetch 하기위해열려있던커서를닫아주어야한다. 애플리케이션은같은트랜잭션내의다른명령문 (statement) 을실행하기위해단계 3 으로되돌아가거나트랜잭션을반영하거나롤백하기위해단계 5 로넘어간다. 단계 4b Fetch the Row Count STEP 4b: FETCH ROW COUNT SQLRowCount() 만일단계 3 에서수행된명령문 (statement) 이 UPDATE, DELETE, INSERT 였다면, 애플리케이션은 SQLRowCount() 로영향을받은행들의개수를가져온다. 만약 array bind 등을이용하여여러개의명령문 (statement) 를실행하였다면각각의명령문 (statement) 의실행으로영향을받은행들을 SQLMoreResults() 함수와 SQLRowCount() 함수의조합을이용하여가져올수있다. 애플리케이션은같은트랜잭션내의다른명령문 (statement) 을실행하기위해단계 3 으로되돌아가거나트랜잭션을반영또는 ODBC 소개 13
26 롤백하기위해단계 5 로넘어간다. 단계 5 Commit the Transation STEP 5: TRANSACT SQLEndTran() 다섯번째단계는트랜잭션을반영하거나롤백하기위해 SQLEndTran() 을호출한다. 애플리케이션은트랜잭션반영모드가수동반영 (non-auto-commit) 으로설정되어있을때만이단계를수행한다. 만일트랜잭션반영모드가자동반영 (auto-commit) 이면, 트랜잭션은명령문 (statement) 이실행되었을때자동으로반영된다. 새로운트랜잭션에서명령문을수행하기위해, 애플리케이션은단계 3 으로되돌아간다. 데이터베이스와단절하기위해선단계 6 으로진행한다. 단계 6 Disconnect from the Altibase database 마지막단계는다음그림과같이, 데이터베이스로부터단절 (disconnect) 하는것이다. 먼저, 애플리케이션은 SQLFreeHandle() 을호출하여핸들을반환 (free) 시킨다. STEP 6 : DISCONNECT SQLFreeHandle() SQLDisconnect() SQLFreeConnect() SQLFreeEnv() 다음애플리케이션은 SQLDisconnect() 를이용해데이터베이스로부터단절하고, SQLFreeConnect() 를이용해연결핸들을반환시킨다. 마지막으로애플리케이션은 SQLFreeEnv() 을가지고환경핸들을반환시키고프로그램을종료한다. 14 ALTIBASE5 ODBC User s Manual
27 ODBC 함수종류 알티베이스에서지원하는 ODBC 함수는아래의표와같다. 각각의함수에대한보다자세한설명은 ODBC 함수를참조한다. 작업 함수명 목적 연결관리 SQLAllocConnect 자원과연결핸들초기화및할당 SQLAllocEnv 환경핸들초기화및메모리할당 SQL 실행 요청 SQLAllocStmt SQLAllocHandle SQLCloseCursor SQLConnect SQLDisconnect SQLDriverConnect SQLEndTran SQLFreeConnect SQLFreeEnv SQLFreeHandle SQLFreeStmt SQLTransact SQLBindParameter SQLExecDirect SQLExecute SQLNativeSql SQLParamData SQLPrepare 명령문핸들초기화및메모리할당 자원, 환경, 명령문핸들초기화및메모리할당 열려진커서를닫고보류중인결과들을폐기목표데이터베이스와연결설정연결핸들과연관된연결을종료 연결스트링을이용해목표데이터베이스와연결설정 현재트랜잭션을반영하거나철회실행 연결핸들을무효화하고할당된메모리해제 환경핸들을무효화하고할당된메모리해제 연결, 핸들, 명령문에할당된메모리해제 명령문핸들을무효화하고할당된메모리해제 데이터베이스에대한모든변경을반영하거나철회 SQL문장에매개변수 (parameter) 를바인드 SQL문장을직접실행준비된 SQL문장을실행 SQL 구문을 ODBC 드라이버가지원하는문장으로변환 수행중인명령문에데이터를넣을때사용실행할 SQL문을준비 ODBC 소개 15
28 작업함수명목적 검색 SQLPutData SQLBindCol SQLColAttribute SQLDescribeCol SQLDescribeParam SQLError SQLFetch SQLFetchScroll SQLGetConnectAttr SQLGetData SQLGetInfo SQLGetStmtAttr SQLGetTypeInfo SQLNumParams SQLNumResultCols SQLRowCount 수행중인명령문에데이터를넣을때사용 결과집합의열을받아올버퍼와데이터형지정결과집합의열에대한속성을확인 결과집합에서한개의행에대한정보확인 결과집합에서매개변수마커 (?) 와연관된정보확인 가장최근에호출된함수와연관된진단정보확인 결과집합의바인드된열에대한정보확인 결과집합에서커서를원하는방향으로진행시키고, 바인드된열을가져옴특정연결에설정된속성값검색 결과집합의현재행에서단일열에대한자료검색 애플리케이션에접속한 DBMS 정보를검색설정된명령문핸들관련속성값검색 데이터베이스에서지원되는데이터타입에관한정보반환 SQL 문에서의매개변수개수를반환결과집합의열의숫자를반환 테이블에대해실행한 SQL 문에의해나타난결과집합의행의숫자를반환 Multiple result 가생성된 execution SQLMoreResults 일경우, 다음 result로관심 result를 변경한다. 속성처리 SQLGetEnvAttr 환경핸들의속성값을설정 SQLGetFunctions ODBC 드라이버가지원하는함수목록설정 SQLSetConnectAttr 연결속성값을설정 SQLSetEnvAttr 환경속성값을설정 SQLSetStmtAttr 명령문속성값을설정 메타정보처리 SQLColumns 특정테이블의행에대한정보검색 16 ALTIBASE5 ODBC User s Manual
29 작업함수명목적 SQLForeignKeys SQLGetDescField SQLGetDescRec SQLGetDiagField SQLGetDiagRec SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetDescField SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables 특정테이블의외래키에대한정보검색 descriptor의속성을한개검색 descriptor의속성을여러개검색함수사용후결과진단검색 함수사용후결과진단을여러개검색 특정테이블의기본키에대한정보검색 프로시저에대한입력 / 출력매개변수정보를검색프로시저이름목록검색 descriptor의속성을한개지정특정열들을검색테이블에대한색인정보검색 테이블의목록과각테이블과관련된권한들을검색테이블목록검색 ODBC 소개 17
30
31 2. ODBC 함수 이장에서는 ODBC 에서사용할수있는함수에대해설명한다. 각각의 ODBC 함수에는다음과같은정보가포함된다. 함수명 : 사용목적 구 문 : 함수작성시필요한 'C' 프로토타입 인 자 : 각함수인자의자료유형, 입력 / 출력, 부연설명 결과값 : 함수에서리턴될수있는값 설 명 : 함수사용방법및주의사항 진 단 : 함수에서오류시나타날수있는진단메세지 관련함수 : 이함수와관련된함수 예 제 : 해당함수가사용된소스코드의일부 ODBC 함수 19
32 SQLAllocConnect 입력환경핸들에의해식별된환경내에서연관된자원과연결핸들을할당한다. 연결핸들과입력환경핸들에의해식별된환경에서관련자원을할당한다. SQLAllocConnect() 는 SQLAllocHandle() 로대체될수있다. 구문 SQLRETURN SQLAllocConnect ( SQLHENV env, SQLHDBC * dbc ); 인자 자료유형 인자 사용 설명 SQLHENV env 입력 환경핸들 SQLHDBC * dbc 출력 연결핸들의포인터 결과값 SQL_SUCCESS SQL_INVALID_HANDLE SQL_ERROR 설명 출력연결핸들은일반적인상태정보, 트랜잭션상태, 오류정보를포함한연결과관련되는모든정보를참조하기위해 ODBC 에의해사용된다. 연결핸들을가리키는포인터 (dbc) 가 SQLAllocConnect () 에의해할당된유효한연결핸들을가리키면, 이호출의결과에의해원래의값이바뀐다. 이것은애플리케이션프로그래밍오류로, ODBC 에의해감지되지않는다. * 이함수를호출하기전에 SQLAllocEnv () 를호출해야한다. 진단 20 ALTIBASE5 ODBC User s Manual
33 SQLSTATE 설명부연설명 HY000 일반오류채널초기화오류 HY001 메모리할당오류 명시된핸들을위한메모리할당에실패함. HY009 유효하지않은인자 (null pointer) 사용 dbc가 null pointer 임. 관련함수 SQLAllocEnv SQLConnect SQLDisconnect SQLFreeConnect 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 > /* Environment 을위한메모리를할당 */ if (SQLAllocEnv (&env)!= SQL_SUCCESS) printf("sqlallocenv error!! n"); return SQL_ERROR; /* Connection 을위한메모리를할당 */ if (SQLAllocConnect (env, &dbc)!= SQL_SUCCESS) printf("sqlallocconnect error!! n"); return SQL_ERROR; ODBC 함수 21
34 SQLAllocEnv 환경핸들과관련된자원들을할당한다. SQLAllocEnv () 는 SQLAllocHandle() 로대체될수있다. 구문 SQLRETURN SQLAllocEnv ( SQLHENV * env ); 인자 자료유형 인자 사용 설명 SQLHENV * env 출력 환경핸들의포인터 결과값 SQL_SUCCESS SQL_ERROR 설명 한애플리케이션에서여러개의환경을사용할수있다. 모든 ODBC 자원이계속사용중이려면 SQLAllocEnv () 를호출한프로그램이종료되거나스택을벗어나서는안된다. 그렇지않으면, 애플리케이션은명령문핸들과할당한다른자원들을잃을수있다. 애플리케이션은 SQLAllocConnect () 또는다른 ODBC 함수를호출하기전에이함수를먼저호출해야한다. 이후에입력값으로환경핸들을필요로하는모든함수에 env 값이전달된다. 관련함수 SQLAllocConnect SQLAllocStmt SQLFreeEnv 22 ALTIBASE5 ODBC User s Manual
35 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 > /* Environment 을위한메모리를할당 */ if (SQLAllocEnv (&env)!= SQL_SUCCESS) printf("sqlallocenv error!! n"); return SQL_ERROR; ODBC 함수 23
36 SQLAllocHandle 환경, 연결, 그리고명령문핸들을위한메모리를할당하고초기화한다. 구문 SQLRETURN SQLAllocHandle ( SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE * OutputHandlePtr ); 인자 자료유형 인자 사용 설명 SQLSMALLINT HandleType 입력 할당될핸들타입으로다음세값중에하나이다. SQL_HANDLE_ENV, SQL_HANDLE_DBC, SQL_HANDLE_STMT SQLHANDLE InputHandle 입력 입력핸들 HandleType이 SQL_HANDLE_ENV이면 InputHandle은 SQL_NULL_HANDLE이고 SQL_HANDLE_DBC이면환경핸들이어야하고 SQL_HANDLE_STMT이면연결핸들이어야한다. SQLHANDLE * OutputHand leptr 출력 할당받은핸들의포인터 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 24 ALTIBASE5 ODBC User s Manual
37 설명 SQLAllocHandle() 은다음단락에서묘사될환경, 연결, 그리고명령문핸들을할당한다. 이함수는 SQLAllocEnv (), SQLAllocConnect () 및 SQLAllocStmt() 함수들을대치한다. 환경핸들을요구하기위하여애플리케이션은 HandleType 이 SQL_HANDLE_ENV 이고, InputHandle 이 SQL_NULL_HANDLE 인 SQLAllocHandle() 을호출한다. 연결핸들을요구하기위하여애플리케이션은 HandleType 이 SQL_HANDLE_DBC 인 SQLAllocHandle() 을호출하고, 그때의 InputHandle 은유효한환경핸들이어야한다. 명령문핸들을요구하기위하여애플리케이션은 HandleType 이 SQL_HANDLE_STMT 인 SQLAllocHandle() 을호출하고, 그때의 InputHandle 은유효한연결핸들이어야한다. 한애플리케이션에의해한번에한개이상의환경, 연결, 그리고명령문핸들들이할당될수있는데, 한프로세스내의다른쓰레드상에서같은환경, 연결, 또는명령문핸들은동시에사용할수없다. 환경핸들할당 환경핸들은연결핸들이유효하다든지활성화돼있다든지하는전역적인정보를제공한다. 환경핸들을요구하기위해애플리케이션은 Handletype 이 SQL_HANDLE_ENV 이고 InputHandle 이 SQL_NULL_HANDLE 인 SQLAllocHandle() 을호출한다. ODBC 는환경정보에필요한메모리를할당하고, *OutputHandle 에관련핸들의값을돌려준다. 애플리케이션은 *OutputHandle 값을환경핸들을필요로하는후속호출들에전달한다. 연결핸들할당 연결핸들은연결핸들상에서명령문핸들이유효한가, 트랜잭션이현재열려있는가와같은정보를제공한다. 연결핸들을요구하기위해, 애플리케이션은 HandleType 이 SQL_HANDLE_DBC 인 SQLAllocHandle() 을호출한다. InputHandle 인자는 SQLAllocHandle() 을호출함으로서반환된환경핸들로설정된다. ODBC 는연결정보에필요한메모리를할당하고, *OutputHandle 에관련핸들의값을돌려준다. 애플리케이션은 *OutputHandle 값을연결핸들을필요로하는후속호출들에전달한다. 명령문핸들할당 명령문핸들은 SQL 문처리에대한오류메세지그리고상태정보등과같은명령문정보를제공한다. ODBC 함수 25
38 명령문핸들을요구하기위해, 애플리케이션은데이터베이스와연결하고, SQL 문을보내기전에 SQLAllocHandle() 을호출한다. 이러한호출에서 HandleType 은 SQL_HANDLE_STMT 로설정돼야만하고 InputHandle 인자는 SQLAllocHandle() 을호출함으로서반환된연결핸들로설정되야만한다. ODBC 는명령문정보에필요한메모리를할당하고, 명시된연결로명령문핸들과연결하고, *OutputHandle 에관련핸들의값을돌려준다. 애플리케이션은 *OutputHandle 값을명령문핸들을필요로하는후속호출들에전달한다. 진단 SQLSTATE 설명 부연설명 HY000 일반오류 HY001 메모리할당오류 명시된핸들을위한메모리할당에실패함. HY009 유효하지않은인자 (null pointer) 사용 OutputHandlePtr가 null pointer 임. 관련함수 SQLExecDirect SQLExecute SQLFreeHandle SQLPrepare SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_meta1.cpp 참고 > /* Environment 을위한메모리를할당 */ if (SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HENV, &env)!= SQL_SUCCESS) printf("sqlallocenv error!! n"); return SQL_ERROR; 26 ALTIBASE5 ODBC User s Manual
39 /* Connection 을위한메모리를할당 */ if (SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc)!= SQL_SUCCESS) printf("sqlallocconnect error!! n"); return SQL_ERROR; ODBC 함수 27
40 SQLAllocStmt 명령문을위한메모리를할당하고초기화한다. 하나의연결에 1024 개의명령문까지할당이가능하다. SQLAllocStmt() 는 SQLAllocHandle() 로대체될수있다. 구문 SQLRETURN SQLAllocStmt ( SQLHDBC dbc, SQLHSTMT * stmt ); 인자 자료유형 인자 사용 설명 SQLHDBC dbc 입력 연결핸들 SQLHSTMT * stmt 출력 명령문핸들의포인터 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR SQL_ERROR 가반환되면 stmt 인수가 SQL_NULL_STMT 로설정된다. 애플리케이션은 stmt 인수를 SQL_NULL_STMT 로설정하여 SQLError() 를호출해야한다. 설명 ODBC 는각각의명령문핸들을사용하여모든설명자, 결과값, 상태정보를처리된 SQL 명령문과연관시킨다. 각각의 SQL 문에명령문핸들이있어야하지만다른명령문에서핸들을다시사용할수있다. 이함수에대한호출시에서는 dbc 가사용중인데이터베이스연결을참조해야한다. 28 ALTIBASE5 ODBC User s Manual
41 명령문핸들을가리키는입력포인터가이전의 SQLAllocStmt() 호출에의해할당된유효한명령문핸들을가리키면원래의값이이호출의결과에따라바뀐다. 이것은애플리케이션프로그래밍오류로 ODBC 에의해감지되지않는다. * 이함수를호출하기전에 SQLDriverConnect() 를호출해야한다. 그리고 SQLPrepare(), SQLExecute(), SQLExecDirect() 또는명령문핸들을입력인수로갖는다른함수이전에이함수를호출해야한다. 진단 SQLSTATE 설명 부연설명 HY000 일반오류 stmt 수 (1024) 초과 HY001 메모리할당오류 stmt를위한메모리할당에실패함. HY009 유효하지않은인자 (null pointer) 사용 stmt가 null pointer 임. HY010 함수연속오류 ( 연결이되지않거나끊어진상태 ) dbc 가연결이되있지않거나끊긴상태 관련함수 SQLConnect SQLFreeStmt 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 > /* Statement 을위한메모리를할당 */ if (SQL_ERROR == SQLAllocStmt(dbc, &stmt)) printf("sqlallocstmt error!! n"); return SQL_ERROR; ODBC 함수 29
42 SQLBindCol 모든데이터타입에대해애플리케이션변수들을 (application data buffers) 결과집합의열들에바인드한다. 구문 SQLRETURN SQLBindCol ( SQLHSTMT stmt, SQLSMALLINT col, SQLSMALLINT ctype, SQLPOINTER value, SQLINTEGER max, SQLINTEGER * valuelength ); 인자 자료유형인자사용설명 SQLHSTMT stmt 입력 명령문핸들 SQLSMALLINT col 입력 바인드할결과집합에서의 column의순서. 1부터시작 SQLSMALLINT ctype 입 / 출력 ( 유예중 ) *value 버퍼의 C 데이터타입식별자 ( 부록참고 ). SQLFetch() 를이용하여데이터베이스에서데이터를검색할때 ODBC 는데이터를이타입으로변환한다. SQLPOINTER value 출력 데이터를저장할버퍼의포인터. SQLFetch() 는이버퍼에데이터를반환한다. value가 null pointer 면 ODBC는결과집합 column에대한 data buffer를언바인드한다. 애플리케이션은 SQL_UNBIND option을이용해 SQLFreeStmt() 를호출함으로써모든 30 ALTIBASE5 ODBC User s Manual
43 column들을언바인드한다. 그러나 value 인자가 null pointer 일지라도 valuelength 인자가유효한값이면애플리케이션은여전히 length 버퍼바운드를갖는다. SQLINTEGER max 입력 버퍼의최대크기 (byte 단위 ). *value에 character data를반환할때 *value 인자는 nulltermination character를위한공간을포함해야만한다. 그렇지않으면, ODBC는데이터를자른다. 고정길이 data (integer 또는 data structure 등 ) 를반환할경우는 max를무시하기때문에충분한버퍼크기를할당해야만한다. 그렇지않으면 ODBC는버퍼의끝을지나저장한다. SQLINTEGER * valuelength 입 / 출력 ( 유예중 ) NULL이거나버퍼에저장된데이터의길이를저장할포인터 SQLFetch() 는이버퍼에다음값들을반환할수있다 : 데이터길이, SQL_NULL_DATA 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE ODBC 함수 31
44 SQL_ERROR 설명 이함수에대해포인터 value 와 valuelength 는유예중인출력변수로 (SQLFetch() 가호출될때까지이포인터들이가리키는기억장치위치가갱신되지않음 ), 이포인터들에의해참조된위치는 SQLFetch() 가호출될때까지유효한상태로남아있어야한다. SQLBindCol() 은모든데이터타입에대해애플리케이션변수들을 ( 기억장치버퍼 ) 결과집합의열들에바인드한다. SQLFetch() 가호출되면데이터가 DBMS 에서애플리케이션으로전송된다. 애플리케이션은결과집합의각열에대해한번씩 SQLBindCol() 을호출한다. SQLFetch() 가호출되면, 각바인드된열의데이터는 value 나 valuelength 포인터에의해서할당된위치에저장된다. 애플리케이션은 SQLDescribeCol() 이나또는 SQLColAttribute() 를호출함으로서열의데이터타입이나길이등과같은속성들을질의할수있다. 이러한정보는정확한데이터타입을명시하거나데이터를다른데이터타입으로변환하는데사용할수있다. 열들은 1 부터시작해서왼쪽부터오른쪽으로연속적인번호에의해식별된다. 결과집합의열의개수는 SQLNumResultCols() 나또는 fieldidentifier 인자에 SQL_DESC_COUNT 를설정해서 SQLColAttribute() 를호출함으로서결정될수있다. 애플리케이션은모든열을바인드하지않을수도있고, 어떠한열과도바인드하지않을수있다. 언바인드된열의데이터는 ( 언바인드된열들만 ) SQLFetch() 가호출된후에 SQLGetData() 를사용해서검색될수있다. SQLBindCol() 은 SQLGetData() 보다더효율적이다. * 이호출에의해지정된버퍼에자료를얻기위해, SQLFetch() 전에 SQLBindCol() 을호출해야한다. 진단 SQLSTATE 설명부연설명 유효하지않은결과집합에서의 column 번호 HY000 일반오류 col 인수의값이결과집합에서의최대 column 수를초과함 HY001 메모리할당오류 명시된핸들에대한 메모리할당실패 32 ALTIBASE5 ODBC User s Manual
45 HY003 Application buffer type 이유효하지않음 ctype 인자의값이유효하지않음 관련함수 SQLDescribeCol SQLFetch SQLFreeStmt SQLGetData SQLNumResultCols 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex2.cpp 참고 > sprintf(query,"select id,name,age FROM DEMO_EX2 WHERE id=?"); if (SQLPrepare(stmt,query, SQL_NTS)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 8, 0, id_in, sizeof(id_in), NULL)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; /* Select 의결과값을가져올변수지정 */ if (SQLBindCol(stmt, 1, SQL_C_CHAR, id, sizeof(id), NULL)!= SQL_SUCCESS) printf("sqlbindcol error!!! n"); execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindCol(stmt, 2, SQL_C_CHAR, name, sizeof(name), NULL)!= SQL_SUCCESS) printf("sqlbindcol error!!! n"); execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; ODBC 함수 33
46 if (SQLBindCol(stmt, 3, SQL_C_SLONG, &age, 0, NULL)!= SQL_SUCCESS) printf("sqlbindcol error!!! n"); execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; /* 결과값이있는동안결과값을받아화면에출력 */ printf("id tname tage tbirth t sex tetc n"); printf("================================= n"); for ( i=1; i<=3; i++ ) sprintf(id_in, "%d ", i); if ( SQLExecute(stmt)!= SQL_SUCCESS ) execute_err(dbc, stmt, "SQLExecute : "); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if ( (rc = SQLFetch(stmt))!= SQL_NO_DATA && rc == SQL_SUCCESS ) printf("%-10s%-20s%-5d%4d/%02d/%02d %02d:%02d:%02d t%-2d t", id, name, age, birth.year, birth.month, birth.day, birth.hour, birth.minute, birth.second, sex); if (etc_ind == SQL_NULL_DATA) printf("null n"); else printf("%.3f n", etc); else execute_err(dbc, stmt, query); break; 34 ALTIBASE5 ODBC User s Manual
47 SQLBindParameter SQL 문의매개변수마커를애플리케이션변수에바인드시킨다. SQLExecute() 가호출될때자료가애플리케이션에서데이터베이스관리시스템으로전송된다. 구문 SQLRETURN SQLBindParameter ( SQLHSTMT stmt, SQLSMALLINT par, SQLSMALLINT ptype, SQLSMALLINT ctype, SQLSMALLINT sqltype, SQLINTEGER columnsize, SQLSMALLINT scale, SQLPOINTER value, SQLINTEGER valuemax, SQLINTEGER * valuelength ); 인자 자료유형 인자 사용 설명 SQLHSTMT stmt 입력 명령문핸들 SQLSMALLINT par 입력 매개변수의순서, 1부터시작 SQLSMALLINT ptype 입력 매개변수 type SQL 문내의모든매개변수들은입력변수들이고 (SQL_PARAM_INPUT), 프로시져호출시매개변수들은입력, 출력, 또는입 / 출력변수들이다. (SQL_PARAM_INPUT, SQL_PARAM_OUTPUT, SQL_PARAM_INPUT_OUT PUT) SQLSMALLINT ctype 입력 매개변수의 C 데이터타입 SQL_C_CHAR SQL_C_SBIGINT 등 < 부록참조 > ODBC 함수 35
48 SQLSMALLINT sqltype 입력 매개변수의 SQL 데이터타입 SQL_CHAR SQL_VARCHAR 등 < 부록참조 > SQLINTEGER columnsize 입력 해당매개변수마커의정밀도를나타내는인자로 SQL 타입에따라서다음과같이사용된다. * SQL_CHAR, SQL_VARCHAR: 매개변수마커가사용할수있는최대길이를나타낸다. (columnsize가 0인경우디폴트 columnsize로해석되며, SQL_CHAR, SQL_VARCHAR인경우 32,000으로 columnsize가할당된다.) * SQL_DECIMAL, SQL_NUMERIC: 매개변수마커의십진유효숫자크기를나타낸다. (columnsize가 0인경우디폴트 columnszie로해석되며, SQL_DECIMAL, SQL_NUMERIC 두가지모두최대유효숫자크기인 38로 columnsize가할당된다.) * SQL_BINARY, SQL_BYTES, SQL_NIBBLE, SQL_VARBIT: 매개변수마커가사용할수있는최대길이를나타낸다. (columnsize가 0인경우디폴트 columnsize로해석되며, 각타입에따른디폴트 columnsize는 36 ALTIBASE5 ODBC User s Manual
49 다음과같다 SQL_BINARY, SQL_BYTE, SQL_VARBIT 인경우 32000, SQL_NIBBLE 은 254). * 그외의타입에서는 사용자가지정한 columnsize 인자가 무시되고, 다음과같이 고정된값이사용된다. SQL_SMALLINT 5 SQL_INTEGER 10 SQL_BIGINT 19 SQL_REAL 7 SQL_FLOAT 38 SQL_DOUBLE 15 SQL_TYPE_DATE 30 SQL_TYPE_TIME 30 SQL_TYPE_TIMESTAMP 30 SQL_INTERVAL 10 SQL_GEOMETRY 3200 SQLSMALLINT scale 입력 *value 또는매개변수마커에따른십진숫자 SQL 데이터타입이 SQL_NUMERIC일경우소수점아래의자리수 SQLPOINTER value 입력 ( 유예 중 ) SQLINTEGER valuemax 입 / 출 력 SQLINTEGER * valuelength 입력 ( 유예 중 ) SQLExecute() 또는 SQLExecDirect() 가호출되었을때매개변수에대한실제데이터의포인터 문자또는이진 C 데이터에대한 *value 버퍼의최대길이 SQLExecute() 또는 SQLExecDirect() 가호출되었을때입력 / 출력된데이터길이의포인터 ODBC 함수 37
50 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 ODBC Array Binding 하나의문장에매개변수를배열로전달하여네트워크 round-trip 횟수를줄여서속도의향상을얻을수있는방법이다. [ 그림 2-1] 은 Array binding 을간략하게도식화한것이다. 네트워크호출횟수가줄어들어짧은시간에더많은데이터를전송할수있다. DBMS Applicatio DBMS Applicatio Success Insert Success Insert Success Insert Success Success Insert Insert Success Insert Success Insert Success Insert Success Success Insert Insert Success Insert Success Insert < 기존방식 > < Array Binding 방식 > [ 그림 2-1] Array Binding 도식화 Array binding 에는아래와같이두종류가있다. 열양식매개변수바인딩 (Column-wise parameter binding) 열양식바인딩을사용하기위해애플리케이션은함수 SQLSetStmtAttr() 의인자 Attribute 에 SQL_ATTR_PARAM_BIND_TYPE 을설정하고인자 param 에 SQL_PARAM_BIND_BY_COLUMN 을설정한다. 바인드될각열에대해애플리케이션은다음단계를수행한다. 38 ALTIBASE5 ODBC User s Manual
51 1. 매개변수버퍼배열을할당한다. 2. 지시자버퍼배열을할당한다. 3. 인자들과함께 SQLBindParameter() 를호출한다. ctype 은매개변수버퍼배열내에단일원소의 C 데이터타입이다. sqltype 은매개변수의 SQL 데이터타입이다. value 는매개변수버퍼배열의주소이다. valuemax 는매개변수버퍼배열내에단일원소의크기이다. valuelength 는길이 / 지시자배열의주소이다. 다음그림은각열에대해어떻게열양식바인딩이작동하는가를보여준다. Column A (parameter A) Column B (parameter B) Column C (parameter C) value array length/ indicator array value array length/ indicator array value array length/ indicator array [ 그림 2-2] 열양식바인딩 예제 #define DESC_LEN 51 #define ARRAY_SIZE 10 SQLCHAR * Statement = "INSERT INTO Parts (PartID, Description, Price) " "VALUES (?,?,?)"; SQLUINTEGER PartIDArray[ARRAY_SIZE]; SQLCHAR DescArray[ARRAY_SIZE][DESC_LEN]; SQLREAL PriceArray[ARRAY_SIZE]; SQLINTEGER PartIDIndArray[ARRAY_SIZE], DescLenOrIndArray[ARRAY_SIZE], PriceIndArray[ARRAY_SIZE]; ODBC 함수 39
52 SQLUSMALLINT i, ParamStatusArray[ARRAY_SIZE]; SQLUINTEGER ParamsProcessed; // Set the SQL_ATTR_PARAM_BIND_TYPE statement attribute to use // column-wise binding. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_BIND_TYPE, SQL_PARAMETER_BIND_BY_COLUMN, 0); // Specify the number of elements in each parameter array. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMSET_SIZE, ARRAY_SIZE, 0); // Specify an array in which to return the status of each set of // parameters. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_STATUS_PTR, ParamStatusArray, 0); // Specify an SQLUINTEGER value in which to return the number of sets of // parameters processed. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMS_PROCESSED_PTR, &ParamsProcessed, 0); // Bind the parameters in column-wise fashion. SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 5, 0, PartIDArray, 0, PartIDIndArray); SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, DESC_LEN - 1, 0, DescArray, DESC_LEN, DescLenOrIndArray); SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 7, 0, PriceArray, 0, PriceIndArray); 행양식매개변수바인딩 (Row-wise parameter binding) 행양식바인딩을사용할때, 애플리케이션은바인드될각매개변수에대해매개변수와길이 / 지시자버퍼를포함한구조 ( 배열 ) 를정의한다. 행양식바인딩을사용하기위해애플리케이션은다음단계를수행한다. 매개변수들 ( 매개변수와길이 / 지시자버퍼를포함 ) 의단일집합을보유하기위한구조 ( 배열 ) 를정의한다. 행양식바인딩을사용하기위해애플리케이션은함수 SQLSetStmtAttr() 의인자 Attribute 에 SQL_ATTR_PARAM_BIND_TYPE 을설정하고인자 param 에프로그램변수들을 ( 매개변수들의단일집합 ) 보유하고있는구조 ( 배열 ) 의크기를설정하고배열의첫원소에각구성요소 (member) 의주소를바인드한다. 다음인자들과함께 SQLBindParameter() 를호출한다. ctype 은매개변수버퍼구성요소의타입이다. 40 ALTIBASE5 ODBC User s Manual
53 sqltype 은매개변수의 SQL 데이터타입이다. value 는첫배열원소 (element) 에매개변수버퍼구성요소의주소이다. valuemax 는매개변수버퍼구성요소의크기이다. valuelength 는바운드될길이 / 지시자구성요소의주소이다. 다음그림은행양식바인딩이작동하는방법을보여준다. Column A Column B Column C (parameter A) (parameter B) (parameter C) array[0] array[1] array[2] array[3] [ 그림 2-3] 행양식바인딩 예제 #define DESC_LEN 51 #define ARRAY_SIZE 10 typedef tagpartstruct SQLREAL Price; SQLUINTEGER PartID; SQLCHAR Desc[DESC_LEN]; SQLINTEGER PriceInd; SQLINTEGER PartIDInd; SQLINTEGER DescLenOrInd; PartStruct; PartStruct PartArray[ARRAY_SIZE]; SQLCHAR * Statement = "INSERT INTO Parts (PartID, Description, Price) " "VALUES (?,?,?)"; SQLUSMALLINT i, ParamStatusArray[ARRAY_SIZE]; SQLUINTEGER ParamsProcessed; // Set the SQL_ATTR_PARAM_BIND_TYPE statement attribute to use // column-wise binding. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_BIND_TYPE, sizeof(partstruct), 0); // Specify the number of elements in each parameter array. ODBC 함수 41
54 SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMSET_SIZE, ARRAY_SIZE, 0); // Specify an array in which to return the status of each set of // parameters. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_STATUS_PTR, ParamStatusArray, 0); // Specify an SQLUINTEGER value in which to return the number of sets of // parameters processed. SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMS_PROCESSED_PTR, &ParamsProcessed, 0); // Bind the parameters in row-wise fashion. SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 5, 0, &PartArray[0].PartID, 0, &PartArray[0].PartIDInd); SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, DESC_LEN - 1, 0, PartArray[0].Desc, DESC_LEN, &PartArray[0].DescLenOrInd); SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 7, 0, &PartArray[0].Price, 0, &PartArray[0].PriceInd); 제약사항 SQL_BINARY, SQL_BYTES, SQL_NIBBLE, SQL_VARBIT 타입은 buffer size 나 column size 를반드시기술해야한다. SQL_CHAR, SQL_VARCHAR 타입의경우디폴트 precision 은칼럼이가질수있는최대크기이며 SQL_NUMERIC, SQL_NUMBER 타입의경우에는 precision 값으로 38 을갖는다. 진단 SQLSTATE 설명부연설명 제한된데이터타입속성위반 ctype 데이터타입은 sqltype 데이터타입으로변환될수없다 유효하지않은번호 명시된 par의값이 1 보다 작음 HY000 일반오류 HY001 메모리할당오류 명시된핸들에대한메모리 할당실패 HY003 Application buffer type 이유효하지않음 ctype 의값이유효한 C 데이터타입이아님 42 ALTIBASE5 ODBC User s Manual
55 HY009 HY090 HY105 유효하지않은인자사용 (null pointer) 유효하지않은버퍼길이유효하지않은매개변수타입 value가 null pointer, valuelength가 null pointer 그리고 ptype이 SQL_PARAM_OUTPUT이아님. valuemax 값이 0 보다작거나 64K 보다큼 ptype 이유효한값이아님 (in, out, inout) 관련함수 SQLExecDirect SQLExecute SQLFreeStmt 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex2.cpp 참고 > sprintf(query,"insert INTO DEMO_EX2 VALUES(?,?,?,?,?,? )"); /* Statement 를준비하고변수를바인드한다. */ if (SQLPrepare(stmt, query, SQL_NTS)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 1, /*? 로표시한호스트변수의순서, 1 부터시작 */ SQL_PARAM_INPUT, /* in, out, inout 표시 */ SQL_C_CHAR, /* 바인딩하는변수의 c type */ SQL_CHAR, /* 데이터베이스의해당칼럼의데이터타입 : char(8)*/ 8, /* 테이블생성시칼럼타입의 precision */ 0, /* 테이블생성시칼럼타입의 scale */ id, /* 바인딩하는버퍼의포인터 */ sizeof(id), /* 바인딩하는버퍼의사이즈 */ &id_ind /* indicator */ )!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 20, /* varchar(20) */ ODBC 함수 43
56 0, name, sizeof(name), &name_ind)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 3, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &age, 0,/* 바인딩하는버퍼가 fixed size 타입일경우사용되지않음 */ NULL)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 4, SQL_PARAM_INPUT, SQL_C_TYPE_TIMESTAMP, SQL_DATE, 0, 0, &birth, 0, NULL)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 5, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_SMALLINT, 0, 0, &sex, 0, NULL)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; if (SQLBindParameter(stmt, 6, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_NUMERIC, 10, 3, &etc, 0, &etc_ind)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; /* 준비된 Statement 를수행 */ sprintf(id, " "); sprintf(name, "name1"); age = 28; birth.year=1980;birth.month=10;birth.day=10; birth.hour=8;birth.minute=50;birth.second=10; sex = 1; etc = 10.2; id_ind = SQL_NTS; /* id => null terminated string */ name_ind = 5; /* name => length=5 */ etc_ind = 0; /* etc 는 fixed size type 이므로 indicator 의값이 SQL_NULL_DATA 가아니면무시된다 */ if (SQLExecute(stmt)!= SQL_SUCCESS) execute_err(dbc, stmt, query); 44 ALTIBASE5 ODBC User s Manual
57 SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; ODBC 함수 45
58 SQLCloseCursor 열려진커서를닫고보류중인결과들을폐기한다. 구문 SQLRETURN SQLCloseCurosr ( SQLHSTMT stmt); 인자 자료유형 인자 사용 설명 SQLHSTMT stmt 입력 명령문핸들 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 열려진커서를닫고보류중인결과들을폐기한다. SQLFreeStmt() 에서 SQL_CLOSE 옵션을사용한것과동일하다. 단 SQLCloseCorsor() 에서커서가열려지지않았을때오류 을발생시킨다. 진단 SQLSTATE 설명 부연설명 HY000 일반오류 HY001 메모리할당오류 커서상태가잘못됨 명시된핸들을위한메모리할당에실패함명령문핸들에열려진커서가없음 46 ALTIBASE5 ODBC User s Manual
59 관련함수 SQLFreeHandle ODBC 함수 47
60 SQLColAttribute 결과집합의열에대한속성을가져오며열의수를판별하는데사용한다. Unicode SQLColAttributeW() 동작은 SQLColAttribute() 와동일하다. 구문 64 비트윈도우환경 그외 platform SQLRETURN SQLColAttribute ( SQLHSTMT stmt, SQLSMALLINT columnnumber, SQLSMALLINT fieldidentifier, SQLCHAR * charattributeptr, SQLSMALLINT bufferlength, SQLSMALLINT * stringlengthptr, SQLLEN * numericattributeptr ); SQLRETURN SQLColAttribute ( SQLHSTMT stmt, SQLSMALLINT columnnumber, SQLSMALLINT fieldidentifier, SQLCHAR * charattributeptr, SQLSMALLINT bufferlength, SQLSMALLINT * stringlengthptr, SQLPOINTER* numericattributeptr ); 인자자료유형 인자 사용 설명 SQLHSTMT stmt 입력 명령문핸들 SQLSMALLINT columnnumber 입력 결과집합에서의 column의순서, 1부터시작 48 ALTIBASE5 ODBC User s Manual
61 SQLSMALLINT fieldidentifier 입력 알고자하는정보의식별자 SQL_DESC_CASE_SENSITIVE, SQL_DESC_CATALOG_NAME, SQL_DESC_COUNT, SQL_DESC_DISPLAY_SIZE, SQL_DESC_LABEL, SQL_DESC_LENGTH, SQL_DESC_NAME, SQL_DESC_NULLABLE, SQL_DESC_PRECISION, SQL_DESC_SCALE, SQL_DESC_SCHEMA_NAME, SQL_DESC_TABLE_NAME, SQL_DESC_TYPE, SQL_DESC_TYPE_NAME, SQL_DESC_UNSIGNED SQLCHAR * charattributeptr 출력 columnnumber 행의 fieldidentifier 필드가문자열인경우반환된데이터를저장할버퍼의포인터, 필드값이정수이면사용안함 SQLSMALLINT bufferlength 입력 *charattributeptr의문자개수, *charattributeptr가정수이면무시 SQLSMALLINT * stringlengthptr 출력 *charattributeptr에반환되는총문자열의바이트길이 (nulltermination을제외 ) 의포인터 SQLINTEGER * numericattribute Ptr 출력 columnnumber 행의 fieldidentifier 필드안의값이반환될정수버퍼의포인터 결과값 SQL_SUCCESS SQL_INVALID_HANDLE SQL_ERROR 설명 SQLDescribeCol() 과같은특정인수집합을리턴하는대신, ODBC 함수 49
62 fieldidentifier 설명자유형 SQLColAttribute() 를사용하여특정열에대해수신하려는속성을지정할수있다. 원하는정보가스트링이면 charattributeptr 에반환된다. 원하는정보가숫자이면 numericattributeptr 에반환된다. 열은번호 ( 왼쪽에서오른쪽으로, 1 부터번호가매겨짐 ) 에의해식별되며다른순서로도설명될수있다. 결과집합의존재여부를판별하기위해 SQLColAttribute() 를호출하기전에 SQLNumResultCols() 를호출한다. 애플리케이션이다양한속성 ( 자료유형과길이등 ) 을모를경우 SQLBindCol() 을호출하기전에이함수 ( 또는 SQLDescribeCol()) 를호출해야한다. 다음테이블은 SQLColAttribute() 에의해반환된설명자유형을나열한것이다. 설명자 (fieldidentifier) 유형 설명 SQL_DESC_CASE_SENSITIVE SQLINTEGER 대소문자구별유무 SQL_DESC_CATALOG_NAME SQLCHAR * 열을포함하는테이블의카탈로그 SQL_DESC_COUNT SQLINTEGER 결과집합의열번호가반환 SQL_DESC_DISPLAY_SIZE SQLINTEGER 열의데이터를보여주기위한문자들의최대수 SQL_DESC_LABLE SQLCHAR * 열의레이블이나제목 SQL_DESC_LENGTH SQLINTEGER 열과관련자료의바이트수 SQL_DESC_NAME SQLCHAR * 열의이름 SQL_DESC_NULLABLE SQLINTEGER NULL의유무판단유 SQL_NULLABLE 무 SQL_NO_NULLS SQL_DESC_PRECISION SQLINTEGER 열의정밀도속성 SQL_DESC_SCALE SQLINTEGER 열의소수자리수속성 SQL_DESC_SCHEMA_NAME SQLCHAR * 열을포함하는테이블의스키마 SQL_DESC_TABLE_NAME SQLCHAR * 테이블이름 SQL_DESC_TYPE SQLINTEGER SQL 데이터타입 SQL_DESC_TYPE_NAME SQLCHAR * 데이터베이스타입이름 SQL_DESC_UNSIGNED SQLINTEGER 열의항목검사 진단 SQLSTATE 설명부연설명 50 ALTIBASE5 ODBC User s Manual
63 07009 유효하지않은열번호 HY000 일반오류 columnnumber 가 0 이거나결과집합의 column 의수보다큼 관련함수 SQLBindCol SQLDescribeCol SQLFetch 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_meta8.cpp 참고 > sprintf(query,"select * FROM DEMO_META8"); if (SQLExecDirect(stmt,query, SQL_NTS)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; SQLNumResultCols(stmt, &columncount); for ( i=0; i<columncount; i++ ) SQLColAttribute(stmt, i+1, SQL_DESC_NAME, columnname, sizeof(columnname), &columnnamelength, NULL); SQLColAttribute(stmt, i+1, SQL_DESC_TYPE, NULL, 0, NULL, &datatype); SQLColAttribute(stmt, i+1, SQL_DESC_PRECISION, NULL, 0, NULL, &columnprecision); SQLColAttribute(stmt, i+1, SQL_DESC_SCALE, NULL, 0, NULL, &scale); SQLColAttribute(stmt, i+1, SQL_DESC_NULLABLE, NULL, 0, NULL, &nullable); ODBC 함수 51
64 SQLColumns 특정테이블의열들의정보들을결과집합형태로받을수있다. Unicode SQLColumnsW() 동작은 SQLColumns() 와동일하다. 구문 SQLRETURN SQLColumns ( SQLHSTMT stmt, SQLCHAR * cname, SQLSMALLINT cnamelength, SQLCHAR * sname, SQLSMALLINT snamelength, SQLCHAR * tname, SQLSMALLINT tnamelength, SQLCHAR * colname, SQLSMALLINT colnamelength ); 인자 자료유형인자사용설명 SQLHSTMT stmt 입력 명령문핸들 SQLCHAR* cname 입력 카탈로그이름 SQLSMALLINT cnamelength 입력 *cname의문자개수 SQLCHAR * sname 입력 검색할스키마이름 SQLSMALLINT snamelength 입력 *sname의문자개수 SQLCHAR * tname 입력 검색할테이블의이름 SQLSMALLINT tnamelength 입력 *tname의문자개수 SQLCHAR * colname 입력 검색할열 SQLSMALLINT colnamelength 입력 *colname의문자개수 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 52 ALTIBASE5 ODBC User s Manual
65 설명 이함수는전형적으로데이터베이스카탈로그에서테이블열에대한정보를검색하기위해명령문실행전에사용된다. SQLColumns() 는 SQLTables() 에의해반환된모든데이터타입의데이터를검색하는데사용할수있다. 대조적으로, 함수 SQLColAttribute() 와 SQLDescribeCol() 은결과집합의열들을묘사하고함수 SQLNumResultCols() 는결과집합의열들의수를반환한다. SQLColumns() 은 TABLE_CAT, TABLE_SCHEM, TABLE_NAME, 그리고 ORDINAL_POSITION 에의해순서화된표준결과집합형태로결과들을반환한다. SQLStatistics() 에의해반환된열들중몇몇은 SQLColumns() 에의해반환되지않는다. 예를들어, SQLColumns() 는 SALARY + BENEFITS 또는 DEPT = 0012 등의표현식이나필터에의해생성된인덱스열들은반환하지않는다. SQLColumns() 에의해반환되는열 다음테이블은결과집합의열들을나열한다. 열이름 열번호 자료유형 설명 TABLE_CAT 1 VARCHAR 항상 NULL 반환 TABLE_SCHEM 2 VARCHAR 스키마이름 ; 데이터베이스에적절하지않은경우 NULL TABLE_NAME 3 VARCHAR (NOT NULL) 테이블이름 COLUMN_NAME 4 VARCHAR (NOT NULL) DATA_TYPE 5 SMALLINT (NOT NULL) TYPE_NAME 6 VARCHAR (NOT NULL) 열이름. ODBC는이름을갖지않은열에대해빈문자열을반환한다. SQL 데이터타입 DATA_TYPE 에대응하는데이터타입의이름을나타내는문자스트링 COLUMN_SIZE 7 INTEGER 열의크기. 열의크기가적합치않으면 NULL 이반환됨 BUFFER_LENGTH 8 INTEGER 자료를저장하는최대바이트 DECIMAL_DIGITS 9 SMALLINT 열의소수자리수, 소수자리수를적용할수없는데이터타입은널이반환 ODBC 함수 53
66 NUM_PREC_RADIX 10 SMALLINT Numeric 데이터타입인경우 10: COLUMN_SIZE와 DECIMAL_DIGITS의값은이열에허용되는십진자릿수가주어진다. 예를들어 DECIMAL(12,5) 열은 NUM_PREC_RADIX가 10, COLUMN_SIZE가 12 그리고 DECIMAL_DIGITS의값 5를반환할수있다. NULLABLE 11 SMALLINT (NOT NULL) 열이널값을허용하지않는경우 SQL_NO_NULLS 허용할경우 SQL_NULLABLE REMARKS 12 VARCHAR 열에대한설명정보 COLUMN_DEF 13 VARCHAR 열의디폴트값 SQL_DATA_TYPE 14 SMALLINT (NOT NULL) SQL 데이터타입 SQL_DATETIME_SUB 15 SMALLINT Date 데이터타입을위한 subtype 코드. 이외의데이터타입인경우 null이반환 CHAR_OCTET_LENGTH 16 INTEGER 문자나바이너리데이터타입열의최대자릿수. 이외의데이터타입일경우널이반환 ORDINAL_POSITION 17 INTEGER (NOT NULL) 테이블의열의순서위치. 테이블의처음열은번호가 1 이다. IS_NULLABLE 18 VARCHAR NO : 열이널들을포함하지 않을때. YES : 열이널들을포함할때 진단 SQLSTATE 설명 부연설명 08S01 통신회선장애 ( 데이터송수신실패 ) ODBC와데이터베이스간에함수처리가완료되기전에통신회선실패 HY000 일반오류 관련함수 54 ALTIBASE5 ODBC User s Manual
67 SQLBindCol SQLFetch SQLStatistics SQLTables 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_meta2.cpp 참고 > if (SQLColumns(stmt,NULL, 0, NULL, 0, "DEMO_META2", SQL_NTS, NULL, 0)!= SQL_SUCCESS) execute_err(dbc, stmt, "SQLColumns"); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; SQLBindCol(stmt, 1, SQL_C_CHAR, szcatalog, STR_LEN,&cbCatalog); SQLBindCol(stmt, 2, SQL_C_CHAR, szschema, STR_LEN, &cbschema); SQLBindCol(stmt, 3, SQL_C_CHAR, sztablename, STR_LEN,&cbTableName); SQLBindCol(stmt, 4, SQL_C_CHAR, szcolumnname, STR_LEN, &cbcolumnname); SQLBindCol(stmt, 5, SQL_C_SSHORT, &DataType, 0, &cbdatatype); SQLBindCol(stmt, 6, SQL_C_CHAR, sztypename, STR_LEN, &cbtypename); SQLBindCol(stmt, 7, SQL_C_SLONG, &ColumnSize, 0, &cbcolumnsize); SQLBindCol(stmt, 8, SQL_C_SLONG, &BufferLength, 0, &cbbufferlength); SQLBindCol(stmt, 9, SQL_C_SSHORT, &DecimalDigits, 0, &cbdecimaldigits); SQLBindCol(stmt, 10, SQL_C_SSHORT, &NumPrecRadix, 0, &cbnumprecradix); SQLBindCol(stmt, 11, SQL_C_SSHORT, &Nullable, 0, &cbnullable); SQLBindCol(stmt, 17, SQL_C_SLONG, &OrdinalPosition, 0, &cbordinalposition); SQLBindCol(stmt, 18, SQL_C_CHAR, szisnullable, STR_LEN, &cbisnullable); while ( (rc = SQLFetch(stmt))!= SQL_NO_DATA) if ( rc == SQL_ERROR ) execute_err(dbc, stmt, "SQLColumns:SQLFetch"); break; printf(...); ODBC 함수 55
68 SQLConnect ODBC 와데이터베이스와의연결을설정한다. 연결핸들은상태, 트랜잭션상태, 그리고오류정보를포함한데이터베이스연결에관한모든정보를참조한다. Unicode SQLConnectW() 동작은 SQLConnect() 와동일하다. 구문 SQLRETURN SQLConnect ( SQLHDBC dbc, SQLCHAR * db, SQLSMALLINT dblength, SQLCHAR * usr, SQLSMALLINT usrlength, SQLCHAR * pwd, SQLSMALLINT pwdlength ); 인자 자료유형인자사용설명 SQLHDBC dbc 입력 연결핸들 SQLCHAR * db 입력 호스트 IP SQLSMALLINT dblength 입력 *db의문자개수 SQLCHAR * usr 입력 사용자식별자 SQLSMALLINT usrlength 입력 *usr의문자개수 SQLCHAR * pwd 입력 인증문자열 ( 암호 ) SQLSMALLINT pwdlength 입력 *pwd의문자개수 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 56 ALTIBASE5 ODBC User s Manual
69 입력길이인수 (dblength, usrlength, pwdlength) 는연관된자료의실제길이로설정될수있다. 여기에는연관된자료가널로종료된다는것을표시하기위한 SQL_NTS 나널종료문자가포함되지않는길이값을설정할수있다. * 이함수를호출하기전에 SQLAllocConnect () 를호출해야한다. SQLAllocStmt() 를호출하기전에이함수를호출해야한다. 서버연결시필요한정보 ( 인자로넘기는 IP, 사용자명, 암호를제외한 ) 는 SQLSetConnectAttr() 를이용해설정할수있다. 분산트랜잭션상황에서 (SQLSetConnectAttr 참조 ) dbc 를제외한매개변수는널 (NULL) 또는 0 으로설정한다. 진단 SQLSTATE 설명부연설명 server 에연결할수없음 ODBC 가데이터베이스에연결을설정할수없음 연결이름이사용중 해당 dbc는이미 데이터베이스에연결되 있음 08S01 통신회선장애 ( 데이터송수신실패 ) ODBC 와데이터베이스간에함수처리가완료되기전에통신회선실패 HY000 일반오류 Character set가존재하지않음 HY001 메모리할당오류 ODBC가함수를실행하고완료하기위해요구된메모리를할당할수없음 관련함수 SQLAllocHandle SQLDisconnect SQLDriverConnect SQLSetConnectAttr ODBC 함수 57
70 SQLDescribeCol 결과집합에서한열의이름, 데이터형, 십진숫자, nullability 를돌려준다. Unicode SQLDescribeColW() 동작은 SQLDescribeCol() 와동일하다. 구문 SQLRETURN SQLDescribeCol ( SQLHSTMT stmt, SQLSMALLINT col, SQLCHAR * name, SQLSMALLINT namemax, SQLSMALLINT * namelength, SQLSMALLINT * type, SQLINTEGER * precision, SQLSMALLINT * scale, SQLSMALLINT * nullable ); 인자 자료유형 인자 사용 설명 SQLHSTMT stmt 입력 명령문핸들 SQLSMALLINT col 입력 1 부터시작하는매개변수마커순서 SQLCHAR* name 출력 열이름의포인터 SQLSMALLINT namema x 입력 *name의문자개수 SQLSMALLINT * namelen gth 출력 *name 에반환가능한총바이트수 (nulltermination byte 제외 ) SQLSMALLINT * type 출력 열의 SQL 데이터타입의포인터 SQLINTEGER * precision 출력 데이터베이스에대한열크기의포인터열크기가결정될수없다면 ODBC는 0을반환 SQLSMALLINT * scale 출력 데이터베이스에대한열의 58 ALTIBASE5 ODBC User s Manual
71 십진숫자의개수의포인터십진숫자의개수가결정될수없거나적절하지않으면 ODBC는 0을반환 SQLSMALLINT * nullable 출력 열이 null이허용되는지를보여주는값의포인터 SQL_NO_NULLS: 열이 NULL을허용하지않음 SQL_NULLABLE: 열은 NULL을허용 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 애플리케이션은전형적으로 SQLPrepare() 를호출한후에그리고 SQLExecute() 를호출하기전에 SQLDescribeCol() 을호출한다. 또한애플리케이션은 SQLExecDirect() 를호출한후에 SQLDescribeCol() 를호출할수있다. SQLDescribeCol() 은 SELECT 문에의해생성된열의이름, 타입, 그리고길이를검색한다. 만약열이표현식이면 *name 은표현식이다. 진단 SQLSTATE 설명 부연설명 자료가잘림 버퍼 *name이전체열이름을반환할만큼크지않아서열이름이잘림잘리지않은열이름의길이는 *namelength로반환된다. ODBC 함수 59
72 07009 유효하지않은설명자인덱스 HY000 HY090 일반오류 유효하지않은문자열또는버퍼길이 명시된 col 값이 0임명시된 col 값이결과집합의열의개수보다큼 명시된 namemax 값이 0 보다작음 SQLDescribeCol() 이 SQLPrepare() 후, SQLExecute() 전에호출됐을때 SQLPrepare() 나 SQLExecute() 에의해반환될수있는모든 SQLSTATE 를반환할수있다. 관련함수 SQLBindCol SQLColAttribute SQLFetch SQLNumResultCols SQLPrepare 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_meta2.cpp 참고 > sprintf(query,"select * FROM DEMO_EX1"); if (SQLExecDirect(stmt,query, SQL_NTS)!= SQL_SUCCESS) execute_err(dbc, stmt, query); SQLFreeStmt(stmt, SQL_DROP); return SQL_ERROR; SQLNumResultCols(stmt, &columncount); for ( i=0; i<columncount; i++ ) SQLDescribeCol(stmt, i+1, columnname, sizeof(columnname), &columnnamelength, &datatype, &columnsize, &scale, &nullable); 60 ALTIBASE5 ODBC User s Manual
73 SQLDescribeParam 동적 SQL 문의매개변수마커 (?) 와연관된칼럼의 SQL 데이터타입, 크기, 데이터타입, 해당매개변수마커의표현식, 십진숫자의개수, 그리고 nullability 를돌려준다. 구문 SQLRETURN SQLDescribeParam ( SQLHSTMT stmt, SQLSMALLINT iparam, SQLSMALLINT * type, SQLINTEGER * size, SQLSMALLINT * decimaldigit, SQLSMALLINT * nullable );, 인자 자료유형 인자 사용 설명 SQLHSTMT stmt 입력 명령문핸들 SQLSMALLINT iparam 입력 1 부터시작하는매개변수마커순서 SQLSMALLINT * type 출력 매개변수의 SQL 데이터타입의포인터 SQLINTEGER * size 출력 매개변수의 SQL 데이터타입의포인터열의크기또는해당매개변수마커의표현식의포인터 SQLSMALLINT * decimaldigit 출력 열의십진숫자의개수또는해당매개변수의표현식의포인터 SQLSMALLINT * nullable 출력 매개변수가 null이허용되는지를보여주는값의포인터 결과값 SQL_SUCCESS ODBC 함수 61
74 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 매개변수 iparam 은번호에의해식별되며왼쪽에서오른쪽으로, 1 부터번호가매겨지고, 다른순서로도설명될수있다. * 이함수를호출하기전에 SQLPrepare() 를호출해야한다. SQLBindParameter() 를호출하기전에일반적으로 SQLDescribeParam() 을호출해야한다. * 임의의매개변수의 type, size, decimaldigit, nullable 은다음과같은제한조건이있다. type: SQL_VACHAR size: 4000 decimaldigit: 0 nullable: SQL_NULLABLE_UNKNOWN (ODBC 는매개변수가 NULL 값을허용하는지결정할수없다.) 진단 SQLSTATE 설명부연설명 유효하지않은열번호 HY010 함수호출순서오류 iparam 값이전체인자의범위를벗어남 SQLPrepare() / SQLExecDirect() 보다앞서호출됨 관련함수 SQLExecDirect SQLNumParams SQLPrepare 예제 62 ALTIBASE5 ODBC User s Manual
75 < $ALTIBASE_HOME/sample/SQLCLI/demo_info2.cpp 참고 > SQLPrepare(hstmt, Statement, SQL_NTS); // Check to see if there are any parameters. If so, process them. SQLNumParams(hstmt, &NumParams); if (NumParams) // Allocate memory for three arrays. The first holds pointers to buffers in w hich // each parameter value will be stored in character form. The second contains the // length of each buffer. The third contains the length/indicator value for e ach // parameter. PtrArray = (SQLPOINTER *) malloc(numparams * sizeof(sqlpointer)); BufferLenArray = (SQLINTEGER *) malloc(numparams * sizeof(sqlinteger)); LenOrIndArray = (SQLINTEGER *) malloc(numparams * sizeof(sqlinteger)); for (i = 0; i < NumParams; i++) // Describe the parameter. SQLDescribeParam(hstmt, i + 1, &DataType, &ParamSize, &DecimalDigits, &Nullab le); // Call a helper function to allocate a buffer in which to store the paramete r // value in character form. The function determines the size of the buffer fr om // the SQL data type and parameter size returned by SQLDescribeParam and retu rns // a pointer to the buffer and the length of the buffer. PtrArray[i] = (char*)malloc(paramsize); BufferLenArray[i] = SQL_NTS; // Bind the memory to the parameter. Assume that we only have input parameter s. SQLBindParameter(hstmt, i + 1, SQL_PARAM_INPUT, SQL_C_CHAR, DataType, ParamSi ze, DecimalDigits, PtrArray[i], BufferLenArray[i], &LenOrIndArray[i]); // Prompt the user for the value of the parameter and store it in the memory // allocated earlier. For simplicity, this function does not check the value // against the information returned by SQLDescribeParam. Instead, the driver ODBC 함수 63
76 64 ALTIBASE5 ODBC User s Manual does // this when the statement is executed. strcpy((char*)ptrarray[i], "AAAAAAA"); BufferLenArray[i] = 7;
77 SQLDisconnect 특정연결핸들과관련된연결을종료한다. 구문 SQLRETURN SQLDisconnect ( SQLHDBC dbc ); 인자 자료유형인자사용설명 SQLHDBC dbc 입력연결핸들 결과값 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 설명 연결과연관된명령문핸들을모두해제하기전에애플리케이션이 SQLDisconnect() 를호출하면, 데이터베이스로부터연결을단절한다. SQL_SUCCESS_WITH_INFO 가리턴되면, 이는데이터베이스단절이성공적이지만추가오류또는특정구현프로그램정보가있음을의미한다. 예를들면다음과같다. 단절후에정리하는과정에서문제가발생하였거나 애플리케이션과는독립적으로발생한이벤트 ( 통신실패같은 ) 로인해현재는연결되지않은경우 성공적인 SQLDisconnect() 호출후에또다른 SQLConnect() 요구를하기위해애플리케이션은 dbc 를다시사용할수있다. * 이함수를호출한후에다른데이터베이스에연결하기위해 SQLConnect() 를호출하거나 SQLDriverConnect() 를호출해야한다. ODBC 함수 65
78 진단 SQLSTATE 설명부연설명 HY000 일반오류 관련함수 SQLAllocHandle SQLConnect SQLDriverConnect SQLEndTran SQLFreeConnect 예제 < $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 > SQLDisconnect( dbc ); 66 ALTIBASE5 ODBC User s Manual
79 SQLDriverConnect SQLDriverConnect() 는 SQLConnect() 를대체할수있다. 이함수는 SQLConnect() 의세개의인자 (DSN, 사용자 ID, 비밀번호 ) 보다더많은정보를요구하는연결스트링을지원한다. SQLDriverConnect() 는다음과같은연결속성을제공한다. 호스트 IP 또는호스트이름, 하나이상의사용자 ID, 하나이상의암호, 연결방법, 포트번호, NLS_USE, TIMEOUT 설정등의연결스트링을사용하여연결을설정한다. Unicode SQLDriverConnectW() 동작은 SQLDriverConnect() 와동일하다. 구문 SQLRETURN SQLDriverConnect ( SQLHDBC dbc, SQLPOINTER windowhandle, SQLCHAR * InConnectionString, SQLSMALLINT length1, SQLCHAR * OutConnectionString, SQLSMALLINT bufferlength, SQLSMALLINT * strlength2ptr, SQLSMALLINT DriverCompletion ); 인자 자료유형 인자 사용 설명 SQLHDBC dbc 입력연결핸들 SQLPOINTER windowhandle 입력사용하지않음 SQLCHAR* InConnectionString 입력 완전연결스트링부분연결스트링빈문자열아래설명참조 SQLSMALLINT length1 입력 *InConnectionString의문자개수 SQLCHAR * OutConnectionString 출력 사용하지않음 SQLSMALLINT bufferlength 입력 사용하지않음 SQLSMALLINT * strlength2ptr 출력 사용하지않음 SQLSMALLINT DriverCompletion 입력 사용하지않음 ODBC 함수 67
Altibase Installation Manual
ALTIBASE HDB Application Development ODBC User's Manual Release 6.3.1 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Application Development ODBC User's Manual Release
More informationTibero
Tibero tbcli 안내서 Tibero 5 Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted Rights
More informationTibero RDBMS
Tibero RDBMS tbcli 안내서 Tibero RDBMS 4 SP1 Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More informationFileMaker 15 ODBC 및 JDBC 설명서
FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE
ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....
More information목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4
ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]
More informationFileMaker ODBC 및 JDBC 가이드
FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,
More informationMicrosoft PowerPoint - 10Àå.ppt
10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE & Visual C++ 2010 Professional Edition 개발가이드 2014. 04 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information문서 템플릿
HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More informationAltibase Stored Procedure Manual
ALTIBASE HDB Application Development C/C++ External Procedures Manual Release 6.3.1 (April 16, 2015) ----------------------------------------------------------- ALTIBASE Application Development C/C++ External
More information10.ppt
: SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL
More informationMicrosoft 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쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationMicrosoft Word - FunctionCall
Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationAltibase Starting User's Manual
ALTIBASE HDB Application Development Altibase C Interface Manual Release 6.3.1 (April 16, 2015) ----------------------------------------------------------- Altibase Application Development ACI Manual Release
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationAltibase Starting User's Manual
ALTIBASE HDB Tools & Utilities Altibase Hadoop Connector User's Manual Release 6 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Tools & Utilities Altibase Hadoop
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More informationuntitled
PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More information슬라이드 제목 없음
MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,
More information2014 학년도종합설계 1 차중간보고서 ( 스마트폰기반의나만의검색엔진 ) 성명학번 연락처 하희진 김태훈
2014 학년도종합설계 1 차중간보고서 ( 스마트폰기반의나만의검색엔진 ) 성명학번 e-mail 연락처 하희진 200412361 wheejinv@naver.com 010-2009-9073 김태훈 200811424 eamay00@gmail.com 010-9032-5537 담당교수 : 유준범교수님 ( 인 ) - 1 - 목 차 1. 프로젝트개요 2. 개발동기 3.
More informationMySQL-.. 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 informationALTIBASE 사용자가이드 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 informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationMicrosoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]
MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
More information윈도우시스템프로그래밍
데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More information슬라이드 제목 없음
4.2 SQL 개요 SQL 개요 SQL은현재 DBMS 시장에서관계 DBMS가압도적인우위를차지하는데중요한요인의하나 SQL은 IBM 연구소에서 1974년에 System R이라는관계 DBMS 시제품을연구할때관계대수와관계해석을기반으로, 집단함수, 그룹화, 갱신연산등을추가하여개발된언어 1986년에 ANSI( 미국표준기구 ) 에서 SQL 표준을채택함으로써 SQL이널리사용되는데기여
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More informationThe Pocket Guide to TCP/IP Sockets: C Version
얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow
More informationAltibase Installation Manual
ALTIBASE HDB Application Development Windows ODBC Driver Installer User s Guide Release 6.3.1 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Application Development
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationJDBC 소개및설치 Database Laboratory
JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }
More information게시판 스팸 실시간 차단 시스템
오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP
More informationAPI STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum
API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More informationConnection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET
135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26
More information@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a
1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationPowerPoint Presentation
FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files
More information<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>
제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationChapter 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 informationUI TASK & KEY EVENT
2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize
More information6장. SQL
학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블
More informationMicrosoft PowerPoint - a10.ppt [호환 모드]
Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는
More information8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )
8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More information17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
More informationBind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터
Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More information슬라이드 1
Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능
More information1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op
USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013 1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE
More informationMicrosoft PowerPoint 세션.ppt
웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)
More informationPowerPoint 프레젠테이션
MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationVisual Basic 반복문
학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For
More information