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 Rights Legend All TIBERO Software (Tibero RDBMS ) and documents are protected by copyright laws and the Protection Act of Computer Programs, 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 RDBMS ) 사용서의내용과프로그램은저작권법, 컴퓨터프로그램보호법및국제조약에의해서보호받고있습니다. 사용서의내용과여기에된프로그램은 TIBERO Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용서의전부또는일부분을 TIBERO의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero RDBMS is a registered trademark of TIBERO Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tibero RDBMS 는 TIBERO Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Open Source Software Notice This product includes open source software developed and/or licensed by "OpenSSL," "RSA Data Security, Inc.," "Apache Foundation," "Jean-loup Gailly and Mark Adler," and "Paul Hsieh's hash". Information about the afore mentioned and the related open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory. 본제품은 OpenSSL, RSA Data Security, Inc., Apache Foundation 및 Jean-loup Gailly와 Mark Adler 및 Paul Hsieh's hash 에의해개발또는라이선스된오픈소스소프트웨어를포함합니다. 관련상세정보는제품의디렉터리 ${INSTALL_PATH}/license/oss_licenses 에기재된사항을참고해주십시오. 안내서정보안내서제목 : Tibero RDBMS tbcli 안내서발행일 : 2013-02-25 소프트웨어버전 : Tibero RDBMS 4 SP1 안내서버전 : 2.1.4
내용목차 안내서에대하여... xi 제1장 tbcli 소개... 1 1.1. 개요... 1 1.2. 구성요소... 2 1.2.1. tbcli 핸들... 2 1.2.2. tbcli... 3 1.2.3. tbcli 에러메시지... 3 1.3. 프로그램구조... 5 1.3.1. 시작설정부분... 5 1.3.2. SQL 문장실행및에러처리부분... 7 1.3.3. 종료설정부분... 8 제2장 데이터타입... 9 2.1. Tibero RDBMS의데이터타입... 9 2.2. tbcli의데이터타입... 11 제3장 tbcli... 13 3.1. SQL-99 표준 API... 13 3.1.1. SQLAllocConnect (Deprecated)... 13 3.1.2. SQLAllocEnv (Deprecated)... 13 3.1.3. SQLAllocHandle... 13 3.1.4. SQLAllocStmt (Deprecated)... 15 3.1.5. SQLBindCol... 15 3.1.6. SQLBindParameter... 17 3.1.7. SQLBulkOperations... 19 3.1.8. SQLCloseCursor... 21 3.1.9. SQLColAttribute... 22 3.1.10. SQLColAttributes (Deprecated)... 23 3.1.11. SQLColumnPrivileges... 23 3.1.12. SQLColumns... 25 3.1.13. SQLConnect... 27 3.1.14. SQLCopyDesc... 29 3.1.15. SQLDescribeCol... 31 3.1.16. SQLDescribeParam... 32 3.1.17. SQLDisconnect... 34 3.1.18. SQLEndTran... 35 3.1.19. SQLError (Deprecated)... 36 3.1.20. SQLExecDirect... 37 3.1.21. SQLExecute... 39 3.1.22. SQLExtendedFetch (Deprecated)... 42 3.1.23. SQLFetch... 42 Tibero RDBMS iii
3.1.24. SQLFetchScroll... 43 3.1.25. SQLForeignKeys... 46 3.1.26. SQLFreeConnect (Deprecated)... 47 3.1.27. SQLFreeEnv (Deprecated)... 48 3.1.28. SQLFreeHandle... 48 3.1.29. SQLFreeStmt... 49 3.1.30. SQLGetConnectAttr... 50 3.1.31. SQLGetConnectOption (Deprecated)... 51 3.1.32. SQLGetCursorName... 51 3.1.33. SQLGetData... 53 3.1.34. SQLGetDescField... 54 3.1.35. SQLGetDescRec... 56 3.1.36. SQLGetDiagField... 58 3.1.37. SQLGetDiagRec... 59 3.1.38. SQLGetEnvAttr... 60 3.1.39. SQLGetFunctions... 61 3.1.40. SQLGetInfo... 63 3.1.41. SQLGetStmtAttr... 64 3.1.42. SQLGetStmtOption (Deprecated)... 65 3.1.43. SQLGetTypeInfo... 65 3.1.44. SQLMoreResults... 67 3.1.45. SQLNativeSql... 68 3.1.46. SQLNumParams... 69 3.1.47. SQLNumResultCols... 70 3.1.48. SQLParamData... 71 3.1.49. SQLParamOptions (Deprecated)... 73 3.1.50. SQLPrepare... 73 3.1.51. SQLPrimaryKeys... 75 3.1.52. SQLProcedureColumns... 76 3.1.53. SQLProcedures... 78 3.1.54. SQLPutData... 79 3.1.55. SQLRowCount... 81 3.1.56. SQLSetConnectAttr... 82 3.1.57. SQLSetConnectOption (Deprecated)... 84 3.1.58. SQLSetCursorName... 84 3.1.59. SQLSetDescField... 85 3.1.60. SQLSetDescRec... 86 3.1.61. SQLSetEnvAttr... 88 3.1.62. SQLSetParam (Deprecated)... 89 3.1.63. SQLSetPos... 89 3.1.64. SQLSetScrollOptions (Deprecated)... 91 3.1.65. SQLSetStmtAttr... 91 3.1.66. SQLSetStmtOption (Deprecated)... 93 iv Tibero RDBMS tbcli 안내서
3.1.67. SQLSpecialColumns... 93 3.1.68. SQLStatistics... 95 3.1.69. SQLTablePrivileges... 96 3.1.70. SQLTables... 98 3.1.71. SQLTransact (Deprecated)... 100 3.2. Tibero RDBMS API... 100 3.2.1. SQLAllocEnv2 (Deprecated)... 100 3.2.2. SQLAllocHandle2... 101 3.2.3. SQLLobClose... 102 3.2.4. SQLLobGetData... 103 3.2.5. SQLLobGetLength... 105 3.2.6. SQLLobGetPosition... 107 3.2.7. SQLLobOpen... 108 3.2.8. SQLLobPutData... 109 3.2.9. SQLLobTruncate... 111 제4장 tbcli 에러메시지... 113 4.1. 반환코드... 113 4.2.... 115 4.2.1. 01000 ~01007... 115 4.2.2. 01S00 ~ 01S09... 115 4.2.3. 07001 ~ 07009... 116 4.2.4. 07S01... 117 4.2.5. 08001 ~ 08007... 117 4.2.6. 08S01... 118 4.2.7. 21S01 ~ 21S02... 118 4.2.8. 22001 ~ 22026... 119 4.2.9. 23000, 24000, 25000... 121 4.2.10. 25S01 ~ 25S03... 121 4.2.11. 28000, 34000... 122 4.2.12. 3C000 ~ 3F000... 122 4.2.13. 40001 ~ 40003, 42000... 123 4.2.14. 42S01 ~ 42S22, 44000... 124 4.2.15. HY000 ~ HY024... 125 4.2.16. HY090 ~ HY111... 129 4.2.17. HYC00... 132 4.2.18. HYT00 ~ HYT01... 132 4.2.19. IM001 ~ IM015... 133 제5장 tbcli와 ODBC... 137 5.1. ODBC... 137 5.2. tbcli와 ODBC의연동... 137 5.2.1. Windows 계열에서의설치... 137 5.2.2. UNIX 계열에서의설치... 142 Tibero RDBMS v
5.3. tbdsn.tbr 과 ODBC 데이터원본관리자... 145 색인... 147 vi Tibero RDBMS tbcli 안내서
그림목차 [ 그림 1.1] 클라이언트 / 서버환경... 5 [ 그림 1.2] tbcli 프로그램의구조... 5 [ 그림 5.1] Tibero 4 ODBC Driver 설치확인... 138 [ 그림 5.2] 사용자 DSN - 추가... 139 [ 그림 5.3] 사용자 DSN - Tibero 4 ODBC Driver 선택... 140 [ 그림 5.4] 사용자 DSN - 데이터베이스접속정보입력 (IP, PORT 방식 )... 140 [ 그림 5.5] 사용자 DSN - 데이터베이스접속정보입력 (SID 방식 )... 141 [ 그림 5.6] 사용자 DSN - 등록완료... 141 Tibero RDBMS vii
예목차 [ 예 1.1] tbcli 프로그램의시작설정... 6 [ 예 1.2] tbcli 프로그램의 SQL 문장실행 - 직접실행... 7 [ 예 1.3] tbcli 프로그램의 SQL 문장실행 - 준비된실행... 7 [ 예 1.4] tbcli 프로그램의종료설정... 8 [ 예 2.1] DATE_STRUCT, SQL_DATE_STRUCT... 11 [ 예 2.2] TIME_STRUCT, SQL_TIME_STRUCT... 11 [ 예 2.3] TIME_STAMP_STRUCT, SQL_TIMESTAMP_STRUCT... 12 Tibero RDBMS ix
안내서에대하여 안내서의대상 본안내서는 Tibero RDBMS ( 이하 Tibero RDBMS) 에서제공하는 tbcli의기본개념과프로그램구조등을알고자하는데이터베이스관리자 (Database Administrator, 이하 DBA), 애플리케이션프로그램개발자를대상으로기술한다. 안내서의전제조건 본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 RDBMS 의이해 SQL 의이해 안내서의제한조건 본안내서는 Tibero RDBMS 를실무에적용하거나운용하는데필요한모든사항을포함하고있지않다. 따라서설치, 환경설정등운용및관리에대해서는각제품안내서를참고하기바란다. 참고 Tibero RDBMS 의설치및환경설정에관한내용은 "Tibero RDBMS 설치안내서 " 를참고한다. 안내서에대하여 xi
안내서구성 Tibero RDBMS tbcli 안내서는총 5개의장으로이루어져있다. 각장의주요내용은다음과같다. 제1장 : tbcli 소개 tbcli의기본개념과구성요소, 프로그램의구조를소개한다. 제 2 장 : 데이터타입 tbcli 프로그램에서사용하는데이터타입을기술한다. 제 3 장 : tbcli tbcli 가지원하는를기술한다. 제 4 장 : tbcli 에러메시지 tbcli 프로그램을실행하는도중에발생할수있는에러를기술한다. 제 5 장 : tbcli 와 ODBC tbcli 와 ODBC 를연동하는방법을기술한다. xii Tibero RDBMS tbcli 안내서
안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } 필수인수값 안내서에대하여 xiii
시스템사용환경 요구사항 Platform HP-UX 11i (PA-RISC, ia64) Solaris (SPARC 9/Solaris 9) AIX (PPC 5L/AIX 5.3) GNU (X86, 64, IA64) Linux kernel 2.6 이상 Hardware 최소 1.5GB 하드디스크공간 512MB 이상메모리공간 Compiler PSM (C99 지원필요 ) tbesql/c (C99 지원필요 ) xiv Tibero RDBMS tbcli 안내서
관련안내서 안내서 Tibero RDBMS 설치안내서 Tibero RDBMS 애플리케이션개발자안내서 Tibero RDBMS External Procedure 안내서 Tibero RDBMS JDBC 개발자안내서 Tibero RDBMS tbesql/c 안내서 Tibero RDBMS tbesql/cobol 안내서 Tibero RDBMS tbpsm 안내서 Tibero RDBMS tbpsm 참조안내서 Tibero RDBMS 관리자안내서 Tibero RDBMS tbadmin 안내서 Tibero RDBMS 유틸리티안내서 Tibero RDBMS 설치시필요한시스템요구사항과설치및제거방법을기술한안내서이다. 각종애플리케이션라이브러리를이용하여애플리케이션프로그램을개발하는방법을기술한안내서이다. External Procedure를소개하고이를생성하고사용하는방법을기술한안내서이다. Tibero RDBMS에서제공하는 JDBC 기능을이용하여애플리케이션프로그램을개발하는방법을기술한안내서이다. C 프로그래밍언어를사용해데이터베이스작업을수행하는각종애플리케이션프로그램을작성하는방법을기술한안내서이다. COBOL 프로그래밍언어를사용해데이터베이스작업을수행하는각종애플리케이션프로그램을작성하는방법을기술한안내서이다. 저장프로시저모듈인 tbpsm의개념과문법, 구성요소를소개하고, tbpsm 프로그램을작성하는데필요한제어구조, 복합타입, 서브프로그램, 패키지와 SQL 문장을실행하고에러를처리하는방법을기술한안내서이다. 저장프로시저모듈인 tbpsm의패키지를소개하고, 이러한패키지에포함된각프로시저와의프로토타입, 파라미터, 예제등을기술한참조안내서이다. Tibero RDBMS의동작과주요기능의원활한수행을보장하기위해 DBA 가알아야할관리방법을논리적또는물리적측면에서하고, 관리를지원하는각종도구를기술한안내서이다. SQL/PSM 처리와 DBA를위한시스템관리기능을제공하는 GUI 기반의툴인 tbadmin을소개하고, 설치및사용방법을기술한안내서이다. 데이터베이스와관련된작업을수행하기위해필요한유틸리티의설치및환경설정, 사용방법을기술한안내서이다. Tibero RDBMS를사용하는도중에발생할수있는각종에러의원인과해결방법을기술한안내서이다. 안내서에대하여 xv
안내서 에러참조안내서 Tibero RDBMS 참조안내서 Tibero RDBMS SQL 참조안내서 Tibero RDBMS의동작과사용에필요한초기화파라미터와데이터사전, 정적뷰, 동적뷰를기술한참조안내서이다. 데이터베이스작업을수행하거나애플리케이션프로그램을작성할때필요한 SQL 문장을기술한참조안내서이다. 참고문헌 제품 ODBC 안내서 ODBC Programmer's Reference: http://msdn2.microsoft.com/en-us/library/ms714177.aspx X/Open X/Open CAE Specification Data Management: SQL Call Level Interface (CLI) ISBN: 1-85912-081-4 X/Open Document Number: C451 xvi Tibero RDBMS tbcli 안내서
연락처 Korea TIBERO Co., Ltd 272-6 Tmax Building 3th floor, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, 463-824 South Korea Tel: +82-31-779-7113 Fax: +82-31-779-7119 Email: tibero@tibero.com Web (Korean): http://www.tibero.com 기술지원 : http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632 U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info@tmaxsoft.co.jp Web (Japanese): http://www.tmaxsoft.co.jp 안내서에대하여 xvii
China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027 China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn xviii Tibero RDBMS tbcli 안내서
제 1 장 tbcli 소개 본장에서는 tbcli 의기본개념과구성요소, 프로그램의구조를소개한다. 1.1. 개요 tbcli는 Tibero RDBMS가제공하는 Call Level Interface(CLI) 로사용자의애플리케이션프로그램과 Tibero RDBMS간의 SQL 인터페이스역할을수행한다. 사용자는 tbcli 라이브러리를통해 Tibero RDBMS에접근하려는 C 또는 C++ 애플리케이션프로그램을쉽게작성할수있다. tbcli는 ODBC(Open Database Connectivity) 및 X/Open Call Level Interface Standard를기초로개발되었다. tbcli는 ODBC 2.0의 Level 2 및 ODBC 3.0의 Level 1의모든조건, 그리고 ODBC 3.0 Level 2의대부분의조건을만족한다. 따라서 ODBC나 CLI를이용해작성된기존의애플리케이션프로그램은 tbcli 환경으로쉽게전환될수있다. 특히 tbcli는아래그림과같은클라이언트 / 서버환경에서유용하다. [ 그림 1.1] 클라이언트 / 서버환경 클라이언트의애플리케이션프로그램이 tbcli 의 API 를호출하면, 데이터베이스시스템이이를처리하고 그결과를클라이언트로반환해준다. 물론사용자는 tbesql 등의인터페이스를이용하여데이터를처리 할수있지만, tbcli 를사용함으로써애플리케이션프로그램과데이터를더세밀하게조작할수있다. tbcli는다음과같은특징이있다. 실행파일을생성할때프리컴파일러 (Precompiler) 가필요없다. tbcli는 tbesql과마찬가지로일반적인프로그램언어와 SQL 문장의장점을융합한인터페이스이다. 하지만 tbesql과다르게일반적인프로그램에가깝다. 제 1 장 tbcli 소개 1
모듈을효율적으로관리할수있으며, 가독성이뛰어나다. 애플리케이션패키지를바인딩할필요가없다. 접근할데이터베이스의통계 (statistics) 를사용할수있다. 스레드의안정성을보장한다. 애플리케이션프로그램을멀티스레드로작성할수있도록스레드의안정성을보장한다. 1.2. 구성요소 본절에서는 tbcli 프로그램을작성하거나실행하기에앞서기본적으로알아야할구성요소에대해 한다. 1.2.1. tbcli 핸들 핸들이란 tbcli에서관리하고있는몇가지주요데이터구조에대한포인터 (pointer) 이다. 핸들을사용함으로써 tbcli 프로그램은복잡한구조를갖는데이터를보다편리하게관리할수있다. 핸들의내부데이터는데이터구조에작업이이루어지면자동으로갱신되기때문에애플리케이션프로그램개발자는핸들이가리키는데이터구조의세부사항에대해알필요가없으며, 내부데이터를직접접근할필요도없다. tbcli 프로그램은다음과같이네가지핸들을사용한다. 환경핸들 (environment handle) tbcli 프로그램의환경에대한데이터를포함한다. 포함되는데이터로는현재환경의상태, 환경에할당되어있는연결핸들의리스트, 환경에대한에러정보등이다. 연결핸들 (connection handle) 데이터소스 (data source) 와의연결에대한데이터를포함한다. 포함되는데이터로는현재연결상태, 연결에할당되어있는문장핸들의리스트, 연결에대한에러정보등이다. 문장핸들 (statement handle) tbcli 프로그램에서실행할하나의 SQL 문장에대한데이터를포함한다. 포함되는데이터로는현재문장상태, 문장내의입력파라미터및출력컬럼의리스트, 문장에대한에러정보등이다. 2 Tibero RDBMS tbcli 안내서
서술자핸들 (descriptor handle) 문장핸들과연관된결과집합 (ResultSet) 의각컬럼이나바인드된파라미터의데이터를포함한다. 포함되는데이터로는 SQL 문장의입력파라미터, 출력컬럼에대한메타데이터 (metadata) 등이다. 1.2.2. tbcli tbcli 프로그램에서데이터베이스작업을수행하기위해서는 tbcli 를사용해야한다. 대부분의 tbcli 는대상이되는핸들을입력파라미터로받으며, SQLRETURN 타입의반환코드를갖는다. 다음은 tbcli 중에서 SQL 문장을직접실행할수있는 SQLExecDirect 의프로토타입이다. SQLRETURN SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR *SQLString, SQLINTEGER SQLStringSize); tbcli 는기능별로몇개의그룹으로나누어제공된다. 예를들면핸들을할당하거나연결과관련된, SQL 문장실행과관련된, SQL 질의결과의검색과관련된, 서술자관련, 에러정보 와관련된, 데이터소스정보와관련된등이있다. 참고 tbcli 의사용에대한자세한내용은 제 3 장 tbcli 를참고한다. 1.2.3. tbcli 에러메시지 tbcli 프로그램은 tbcli 를실행한후반환되는코드에의해실행결과를얻는다. 그러나사용자는보다더다양한정보를필요로한다. 이러한정보를제공하기위해서 tbcli는진단레코드를생성한다. 진단레코드는수행한의반환코드뿐만아니라실행결과에대한다양한정보를갖고있다. 진단레코드는다음과같이두가지레코드로구성된다. 헤더레코드 (header record) 반환코드, 로우개수, 상태레코드의개수, 실행된명령의타입등의필드로구성되어있다. 반환코드가 SQL_INVALID_HANDLE인경우를제외하고 tbcli 가실행되면항상헤더레코드가생성된다. 상태레코드 (status record) 상태레코드는경고및에러에대한정보를포함한다. 반환코드가 SQL_ERROR, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_NEED_DATA, SQL_STILL_EXECUTING 인경우생성된다. 제 1 장 tbcli 소개 3
상태레코드의필드중에서가장중요한필드중의하나는 필드이다. 에러또는경고코드 를표준화한것으로값은 X/Open 과 ISO/IEC 표준으로정해져있다. 형식은 CCSSS 다섯자리의문자 열이며, CC 는에러클래스, SSS 는에러서브클래스를의미한다. 진단레코드는하나의헤더레코드로시작되고경우에따라 1 개이상의상태레코드가추가된다. 진단레코드의값을얻기위해서는 SQLGetDiagRec 와 SQLGetDiagField 를사용해야한다. 이두 는파라미터로주어진핸들에포함된진단레코드의정보를반환하는역할만을수행한다. SQLGetDiagField 진단레코드중단일필드의정보를얻기위해사용하는이다. 헤더레코드와상태레코드모두에사용할수있다. SQLGetDiagRec 상태레코드에포함된 코드, 에러코드, 진단메시지등의여러개 의필드값을동시에얻기위해사용하는이다. 상태레코드에만사용할수있다. 진단레코드는환경, 연결, 문장, 서술자핸들에서사용되고관리된다. 참고 에러메시지에대한자세한내용은 제 4 장 tbcli 에러메시지 를참고한다. 4 Tibero RDBMS tbcli 안내서
1.3. 프로그램구조 tbcli 프로그램은아래그림과같이크게시작설정부분 (Starting setting), SQL 문장실행및에러처리부분 (SQL query execution and error handling), 종료설정부분 (Ending setting) 으로나뉜다. [ 그림 1.2] tbcli 프로그램의구조 다음절부터는 tbcli 프로그램의구조에대해세부적으로한다. 1.3.1. 시작설정부분 tbcli 프로그램을시작하기위해서는우선초기화설정을해야한다. 초기화설정을하려면환경핸들과연결핸들을할당하고데이터소스와의실제연결을수행해야한다. 여기서데이터소스란 Tibero RDBMS 의소프트웨어및하드웨어의전체구성을의미한다. 제 1 장 tbcli 소개 5
다음은 tbcli 프로그램을시작하는예이다. [ 예 1.1] tbcli 프로그램의시작설정 SQLHENV h_env; SQLHDBC h_dbc; SQLRETURN rc = SQL_SUCCESS;... rc = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &h_env);... 1... if (rc!= SQL_SUCCESS)... rc = SQLAllocHandle(SQL_HANDLE_DBC, h_env, &h_dbc);... 2... if (rc!= SQL_SUCCESS)... rc = SQLConnect(h_dbc, (SQLCHAR *)ds_name, SQL_NTS, (SQLCHAR *)user, SQL_NTS, (SQLCHAR *)passwd, SQL_NTS);... 3... if (rc!= SQL_SUCCESS && rc!= SQL_SUCCESS_WITH_INFO)... 1, 2 초기화설정을위해환경핸들과연결핸들을할당한다. 3 SQLConnect 를통해데이터소스에연결한다. 이를호출할때에는파라미터로데이터소스의이름 (ds_name) 과사용자의이름 (user), 패스워드 (passwd) 를함께전달해야한다. 뿐만아니라파라미터의길이도함께설정해주어야하는데위의 [ 예 1.1] 에서는길이대신 NULL로끝나는문자열 (null-terminating string) 즉 SQL_NTS를설정한다. 4 데이터소스에연결하는과정이끝나면 tbcli 프로그램은 SQL 문장을실행하기위해다음과같이반드시한개이상의문장핸들을할당한다. SQLHSTMT h_stmt;... rc = SQLAllocHandle(SQL_HANDLE_STMT, h_dbc, &h_stmt);... 4... if (rc!= SQL_SUCCESS)... 6 Tibero RDBMS tbcli 안내서
1.3.2. SQL 문장실행및에러처리부분 직접실행 SQL 문장을실행하는방법은다음과같이두가지가있다. SQL 문장을 SQLExecDirect 를이용하여한번에실행하는방법이다. 다음은직접실행의예이다. [ 예 1.2] tbcli 프로그램의 SQL 문장실행 - 직접실행 SQLCHAR *update = "UPDATE EMP SET SALARY = SALARY * 1.05 " "WHERE DEPTNO = 5 ; rc = SQLExecDirect(h_stmt, update, SQL_NTS); if (rc!= SQL_SUCCESS)... 준비된실행 SQLPrepare와 SQLExecute 를이용하여두단계에걸쳐실행하는방법이다. 대부분 SQL 문장내에파라미터가포함된경우에는주로준비된실행방법을이용한다. SQLPrepare와 SQLExecute 사이에 SQLBindParameter 를호출하여파라미터에실제값을설정한다. 다음은두개의입력파라미터를포함한 SQL 문장을실행하는예이다. [ 예 1.3] tbcli 프로그램의 SQL 문장실행 - 준비된실행 SQLCHAR *update = "UPDATE EMP SET SALARY = SALARY *? " "WHERE DEPTNO =? ; double ratio = 0.0; short deptno = 0;... rc = SQLPrepare(h_stmt, update, SQL_NTS);... 1... if (rc!= SQL_SUCCESS)... rc = SQLBindParameter(h_stmt, 1, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_DOUBLE, 5, 2, &ratio, 0, NULL);... a... if (rc!= SQL_SUCCESS)... rc = SQLBindParameter(h_stmt, 2, SQL_PARAM_INPUT, SQL_C_SHORT, SQL_SMALLINT, 0, 0, &deptno, 0, NULL);... b... 제 1 장 tbcli 소개 7
if (rc!= SQL_SUCCESS)... ratio = 1.05; deptno = 5; SQLExecute(h_stmt);... 2... if (rc!= SQL_SUCCESS)... 위의예에서는 SQL 문장내의입력파라미터를물음표 (?) 로표시한다. 입력파라미터의위치를표시할때에는 1 이상의정수를사용한다. 1 준비된 (prepared) SQL 문장에포함된각각의입력파라미터의값을저장하고있는변수의포인터를설정한다. 각각의입력파라미터 (a, b) 에입출력방향, C 또는 C++ 의데이터타입, SQL의데이터타입, 정밀도 (precision), 범위 (scale) 등을함께설정한다. 2 SQL 문장을실행한다. 이문장을실행하면설정된입력파라미터에의해 EMP 테이블이갱신된다. SQL 문장을실행하고나서몇개의로우가갱신되었는지확인하려면 SQLRowCount 를사용한다. 사용하는방법은다음과같다. rc = SQLRowCount(h_stmt, &count); 각의반환코드는수행결과에대한정보를가지고있으므로, 를호출한후에는항상반환코드 를확인해야한다. 1.3.3. 종료설정부분 tbcli 프로그램을종료하기위해서는 1.3.1. 시작설정부분 에서수행한작업과반대되는작업을수행해야한다. 다음은 tbcli 프로그램을종료하는예이다. [ 예 1.4] tbcli 프로그램의종료설정 rc = SQLDisconnect(h_dbc);... 1... if (rc!= SQL_SUCCESS)... SQLFreeHandle(SQL_HANDLE_DBC, h_dbc);... 2... SQLFreeHandle(SQL_HANDLE_ENV, h_env);... 3... 1 데이터소스의연결을해제한다. 2, 3 할당한연결핸들과환경핸들을시스템에반환한다. 8 Tibero RDBMS tbcli 안내서
제 2 장데이터타입 본장에서는 tbcli 프로그램에서사용하는데이터타입을알아보고데이터타입간의변환을한다. 데이터타입은 SQL 문장에값을입력하고, 질의결과를얻기위해사용한다. tbcli는다음과같이두가지타입을지원한다. Tibero RDBMS의데이터타입데이터베이스에저장된데이터에접근할때사용한다. tbcli 의데이터타입 애플리케이션프로그램에서데이터를조작할때사용한다. 2.1. Tibero RDBMS 의데이터타입 본절에서는 Tibero RDBMS에서디폴트로제공하는데이터타입을간략히한다. 이러한데이터타입은데이터베이스의스키마객체를생성하는데사용하는것으로 tbesql 프로그램내에서도모든데이터타입에대응되는변수를사용할수있다. 다음은 Tibero RDBMS 의데이터타입이다. 구분문자형숫자형날짜형대용량객체형내재형 데이터타입 CHAR, VARCHAR, RAW NUMBER, INTEGER, FLOAT DATE, TIME, TIMESTAMP BLOB, CLOB ROWID 문자열을표현하는데이터타입이다. 정수나실수의숫자를저장하는데이터타입이다. 시간이나날짜를저장하는데이터타입이다. LOB 타입을의미한다. 다른데이터타입이지원하는최대길이 (8KB 이하 ) 보다훨씬큰길이를가질수있는객체이다. 4GB까지가능하다. 사용자가명시적으로선언하지않아도 Tibero RDBMS가자동으로삽입되는로우마다포함하는컬럼의타입이다. 참고 자세한내용은 "Tibero RDBMS SQL 참조안내서 " 를참고한다. 제 2 장데이터타입 9
다음은각데이터타입에대한세부이다. 데이터타입 CHAR 일반문자열을저장하는데이터타입이다. ( 예 : CHAR(10)) VARCHAR 일반문자열을저장하는데이터타입이다. ( 예 : VARCHAR(10)) RAW 임의의바이너리데이터를저장하는데이터타입이다. ( 예 : RAW(10)) NUMBER 정수또는실수를저장하는타입이다. NUMBER 타입을선언할때정밀도와스케일을함께선언할수있다. - 정밀도 : 데이터값의전체자릿수 - 스케일 : 소수점이하자릿수 INTEGER FLOAT DATE TIME TIMESTAMP 기본적으로는 NUMBER 타입이다. 단, NUMBER 타입과는다르게정밀도와스케일을선언할때범위에한계를둔다. NUMBER 타입의값은 Tibero RDBMS에서가변길이로저장되며, 실제값과정밀도, 스케일에따라그길이가달라진다. 특정날짜와시간을나타내는데이터타입이다. - DATE: 특정날짜 - TIME: 특정시간 - TIMESTAMP: 특정날짜와시간 BLOB 임의의바이너리데이터를데이터베이스에저장하는데이터타입이다. 한테이블의여러컬럼에선언할수있다. CLOB 읽을수있는문자열을데이터베이스에저장하는데이터타입이다. 한테이블의여러컬럼에선언할수있다. ROWID 데이터베이스내의각로우를식별하기위해, Tibero RDBMS 시스템이각로우 마다자동으로부여하는데이터타입이다. 각로우가저장되어있는물리적인위치를포함한다. 10 Tibero RDBMS tbcli 안내서
2.2. tbcli 의데이터타입 본절에서는애플리케이션프로그램개발자가데이터베이스프로그램을작성할때사용하게되는 tbcli 의데이터타입을한다. 다음은각데이터타입에대한 C의 typedef 이름과이에대응하는 C의데이터타입을보여주는표이다. C의 typedef 이름 SQLCHAR SQLSCHAR SQLSMALLINT SQLUSMALLINT SQLINTEGER SQLUINTEGER SQLREAL SQLDOUBLE, SQLFLOAT DATE_STRUCT, SQL_DATE_STRUCT TIME_STRUCT, SQL_TIME_STRUCT TIME_STAMP_STRUCT, SQL_TIMESTAMP_STRUCT C의데이터타입 unsigned char signed char short int unsigned short int long int unsigned long int float double [ 예 2.1] [ 예 2.2] [ 예 2.3] 다음은 C의 typedef 이름에대응하는 tbcli의데이터타입을사용한예이다. DATE_STRUCT, SQL_DATE_STRUCT [ 예 2.1] DATE_STRUCT, SQL_DATE_STRUCT typedef struct tagdate_struct { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; }; TIME_STRUCT, SQL_TIME_STRUCT [ 예 2.2] TIME_STRUCT, SQL_TIME_STRUCT struct tagtime_struct { SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; }; 제 2 장데이터타입 11
TIME_STAMP_STRUCT, SQL_TIMESTAMP_STRUCT [ 예 2.3] TIME_STAMP_STRUCT, SQL_TIMESTAMP_STRUCT struct tagtimestamp_struct { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; SQLUINTEGER fraction; }; 12 Tibero RDBMS tbcli 안내서
제 3 장 tbcli 본장에서는 tbcli 에서지원하는를한다. 3.1. SQL-99 표준 API 3.1.1. SQLAllocConnect (Deprecated) SQLAllocConnect 는 ODBC 3.x 에서 SQLAllocHandle 로대체된다. 3.1.2. SQLAllocEnv (Deprecated) 애플리케이션프로그램은한번에하나의환경을사용할수있다. 이는환경핸들과연관된메모리를할당하고초기화한다. 환경핸들을할당받기위해 SQLAllocConnect 등의를호출하기전에 SQLAllocEnv 를호출해야한다. 그리고호출한이후에는환경핸들을필요로하는모든에핸들이전달된다. 참고로 SQLFreeEnv 를호출하면기존의환경핸들은반환된다. 관련 SQLAllocEnv 는 ODBC 3.x에서 SQLAllocHandle 로대체된다. 3.1.3. SQLAllocHandle 환경, 연결, 문장핸들을할당할때사용하는이다. ISO 92 CLI/ODBC 3.0에서지원하며, 자원, 환경, 명령문핸들초기화및메모리할당을수행하는역할을담당한다. SQLAllocHandle 의세부내용은다음과같다. 문법 SQLRETURN SQLAllocHandle (SQLSMALLINT SQLHANDLE SQLHANDLE * HandleType, InputHandle, OutputHandle); 제 3 장 tbcli 13
파라미터 파라미터 HandleType 용도 입력 할당받을핸들의타입이다. 아래타입중하나의값을갖는다. - SQL_HANDLE_ENV - SQL_HANDLE_DBC - SQL_HANDLE_STMT InputHandle 입력 입력핸들이다. 핸들의타입에따라다른값을갖는다. - SQL_HANDLE_ENV: SQL_NULL_HANDLE - SQL_HANDLE_DBC: 환경핸들 - SQL_HANDLE_STMT: 연결핸들 OutputHandle 출력 할당받을핸들의포인터이다. 환경핸들이아닌다른핸들을할당할때 SQL_ERROR를반환하는경우, OutputHandle 파라미터를 SQL_NULL_HDBC, SQL_NULL_HSTMT 로할당한다. 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 08003 HY000 HY001 일반적인경고데이터베이스연결이존재하지않는경우일반적인에러메모리할당에러 14 Tibero RDBMS tbcli 안내서
HY009 HY010 HY013 HY014 HY092 HYC00 HYT01 IM001 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러한정된범위의핸들개수를초과한경우잘못된속성및옵션식별자선택적인기능 (Optional feature) 이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLAllocHandle 를지원하지않는경우 관련 SQLAllocHandle 는 SQLAllocConnect, SQLAllocEnv, SQLAllocstmt를대체하는다. ODBC 2.x 드라이버를사용하는애플리케이션프로그램이올바르게동작하기위해서는 SQLAllocHan dle 를 SQLAllocConnect, SQLAllocEnv, SQLAllocstmt 로적절하게대체해야한다. 3.1.4. SQLAllocStmt (Deprecated) tbcli에서자, 결과값, 커서정보, 상태정보를처리하기위해사용하는문장핸들을할당받는이다. 이를호출하면문장을위한메모리를할당하고초기화한다. 하나의데이터베이스연결에 1,024 개의문장을할당할수있다. 관련 SQLAllocStmt 는 ODBC 3.x에서 SQLAllocHandle 로대체된다. 3.1.5. SQLBindCol ISO 92 CLI/ODBC 1.0에서지원하며, 결과집합의컬럼을받아올버퍼와데이터타입을설정하는이다. 모든데이터타입에대해결과집합의컬럼을애플리케이션프로그램변수에연관시킨다. 이에의해참조된위치는 SQLFetch 를호출하기전까지갱신되지않으며유효한상태로남아있는다. SQLFetch 가호출되면데이터가데이터베이스서버에서애플리케이션프로그램으로전송된다. 따라서 SQLFetch 를사용하기전에이를호출해야한다. 제 3 장 tbcli 15
SQLBindCol 의세부내용은다음과같다. 문법 SQLRETURN SQLBindCol (SQLHSTMT SQLUSMALLINT SQLSMALLINT SQLPOINTER SQLINTEGER SQLINTEGER * StatementHandle, ColumnNumber, TargetType, TargetValue, BufferLength, StrLen_or_Ind); 파라미터 파라미터 StatementHandle ColumnNumber TargetType TargetValue BufferLength StrLen_or_Ind 용도입력입력입력입 / 출력입력입 / 출력 문장핸들컬럼번호 C의데이터타입컬럼을받아올버퍼의포인터 byte 단위의버퍼크기버퍼에저장된데이터의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 07006 07009 HY000 HY001 HY003 HY010 일반적인경고제한된데이터타입의속성에위배되는경우잘못된서술자인덱스일반적인에러메모리할당에러잘못된애플리케이션의버퍼타입시퀀스에러 16 Tibero RDBMS tbcli 안내서
HY013 HY090 HYC00 HYT01 IM001 메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우데이터베이스연결제한시간이만료된경우데이터베이스연결제한시간을초과한경우 3.1.6. SQLBindParameter ISO 92 CLI/ODBC 2.0 에서지원하며, SQL 문장에파라미터를바인드하는이다. 즉 SQL 문장의파라 미터를애플리케이션프로그램의변수에바인드한다. SQLBindParameter 의세부내용은다음과같다. 문법 SQLRETURN SQLBindParameter (SQLHSTMT SQLUSMALLINT SQLSMALLINT SQLSMALLINT SQLSMALLINT SQLULEN SQLSMALLINT SQLPOINTER SQLLEN SQLLEN * StatementHandle ParameterNumber, InputOutputType, ValueType, ParameterType, ColumnSize, DecimalDigits, ParameterValue, BufferLength, StrLen_or_Ind); 파라미터 파라미터 StatementHandle ParameterNumber InputOutputType ValueType ParameterType ColumnSize 용도입력입력입력입력입력입력 문장핸들파라미터의위치파라미터의종류 C의데이터타입 SQL의데이터타입정밀도데이터타입이다른경우 - SQL_CHAR: 최대길이 제 3 장 tbcli 17
파라미터 용도 - SQL_NUMERIC: 최대십진정밀도 DecimalDigits ParameterValue BufferLength StrLen_or_Ind 입력입 / 출력입력입 / 출력 SQL_NUMERIC인경우소수점아래의자릿수파라미터의포인터버퍼의최대크기입 / 출력된데이터의크기 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 07006 07009 HY000 HY001 HY003 HY004 HY009 HY010 HY013 HY021 HY090 HY104 HY105 HYC00 HYT01 IM001 일반적인경고제한된데이터타입의속성에위배되는경우잘못된서술자인덱스일반적인에러메모리할당에러잘못된애플리케이션의버퍼타입잘못된 SQL의데이터타입 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러모순이있는 (inconsistent) 서술자정보잘못된문자열또는버퍼길이잘못된정밀도또는스케일값잘못된파라미터의타입선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLBindParameter 를지원하지않는경우 18 Tibero RDBMS tbcli 안내서
3.1.7. SQLBulkOperations ODBC 3.0 에서지원하며, 대량데이터에대한연산을수행하는이다. 즉다수의 INSERT 와북마크연 산을수행한다. SQLBulkOperations 의세부내용은다음과같다. 문법 SQLRETURN SQLBulkOperations(SQLHSTMT StatementHandle, SQLUSMALLINT Operation); 파라미터 파라미터 StatementHandle Operation 용도 입력 입력 문장핸들수행할연산의종류다음중에하나의값을갖는다. - SQL_ADD - SQL_UPDATE_BY_BOOKMARK - SQL_DELETE_BY_BOOKMARK - SQL_FETCH_BY_BOOKMARK 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_NEED_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 제 3 장 tbcli 19
01000 01004 01S01 01S07 07006 07009 21S02 22001 22003 22007 22008 22015 22018 23000 24000 40001 40003 42000 44000 HY000 HY001 HY008 HY010 HY011 HY013 HY090 HY092 HYC00 HYT00 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우로우에에러가있는경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스테이블의 degree가컬럼과일치하지않은경우문자열데이터가오른쪽에서잘린경우한정된범위를초과한숫자값 (Numeric value) 인경우잘못된 DATETIME 타입의포맷인경우 DATETIME 필드에오버플로우가발생한경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우무결성제약조건 (integrity constraint) 에위배되는경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우문법에러또는접근위배 (access violation) 가발생한경우 WITH CHECK OPTION에위배되는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러현재설정될수없는속성인경우메모리관리에러잘못된문자열또는버퍼길이잘못된속성및옵션식별자선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLBulkOperations 를지원하지않는경우 20 Tibero RDBMS tbcli 안내서
3.1.8. SQLCloseCursor ISO 92 CLI/ODBC 3.0 에서지원하며, 커서를해제하는이다. 즉현재실행중인 SQL 문장의커서를 닫고결과를해제한다. SQLCloseCursor 의세부내용은다음과같다. 문법 SQLRETURN SQLCloseCursor (SQLHSTMT StatementHandle); 파라미터 파라미터 StatementHandle 용도 입력 문장핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 24000 HY000 HY001 HY010 HY013 HYT01 IM001 일반적인경고잘못된커서상태인경우일반적인에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLCloseCursor 를지원하지않는경우 제 3 장 tbcli 21
3.1.9. SQLColAttribute ISO 92 CLI/ODBC 3.0에서지원하며, 결과집합의특정컬럼에속성을설정하여해당정보를확인하는이다. 확인할정보가문자열이면 CharacterAttribute 파라미터에반환되고, 숫자이면 NumericAttribute 파라미터에반환된다. 이를호출하기전에 SQLPrepare 또는 SQLExecDirect 를호출해야한다. SQLColAttribute 의세부내용은다음과같다. 문법 SQLRETURN SQLColAttribute (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength, SQLPOINTER NumericAttribute); 파라미터 파라미터 StatementHandle ColumnNumber FieldIdentifier CharacterAttribute BufferLength StringLength NumericAttribute 용도입력입력입력출력입력출력출력 문장핸들컬럼의위치확인할정보버퍼의포인터버퍼의최대크기반환되는문자열의길이반환되는숫자 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 22 Tibero RDBMS tbcli 안내서
01000 01004 07005 7009 HY000 HY001 HY008 HY010 HY013 HY090 HY091 HYC00 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우커서의범위가아닌준비된문장인경우잘못된서술자인덱스인경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된서술자의필드식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLColAttribute 를지원하지않는경우 3.1.10. SQLColAttributes (Deprecated) SQLColAttributes 는 ODBC 3.x 에서 SQLColAttribute 로대체된다. 3.1.11. SQLColumnPrivileges ISO 92 CLI/ODBC 1.0 에서지원하며특정테이블의컬럼리스트와관련된권한을검색하거나반환하는 이다. 이때반환된정보는결과집합의형태로나타난다. SQLColumnPrivileges 의세부내용은다음과같다. 문법 SQLRETURN SQLColumnPrivileges (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3, ColumnName, NameLength4); 제 3 장 tbcli 23
파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 TableName NameLength3 ColumnName NameLength4 용도입력입력입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이테이블이름테이블이름의길이컬럼이름컬럼이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러 24 Tibero RDBMS tbcli 안내서
HY090 HYC00 HYT00 HYT01 IM001 잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLColumnPrivileges 를지원하지않는경우 3.1.12. SQLColumns XopenCLI/ISO 92 CLI/ODBC 1.0 에서지원하며, 특정테이블의컬럼이나리스트에대한정보를검색하고 결과집합을반환하는이다. SQLColumns 의세부내용은다음과같다. 문법 SQLRETURN SQLColumns (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3, ColumnName, NameLength4); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 TableName NameLength3 ColumnName NameLength4 용도입력입력입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이검색할스키마의이름스키마이름의길이검색할테이블의이름테이블이름의길이검색할컬럼의 ID 검색할컬럼 ID의길이 제 3 장 tbcli 25
반환컬럼 다음은 SQLColumns 에의해반환되는컬럼이다. 컬럼번호 컬럼이름 데이터타입 1 TABLE_CAT VARCHAR 카탈로그의이름 2 TABLE_SCHEM VARCHAR 스키마의이름 3 TABLE_NAME VARCHAR(NOT NULL) 테이블이나뷰의이름 4 COLUMN_NAME VARCHAR(NOT NULL) 컬럼의 ID 5 DATA_TYPE NUMERIC(NOT NULL) 컬럼에대한 SQL 의데이터타입 6 TYPE_NAME VARCHAR(NOT NULL) DATA_TYPE 컬럼을나타내는문자열 7 COLUMN_SIZE NUMERIC 컬럼의최대크기 8 BUFFER_LENGTH NUMERIC 데이터를저장할수있는최대크기 9 DECIMAL_DIGITS NUMERIC 컬럼의소수자릿수 10 NUM_PREC_RADIX NUMERIC 10, 2, NULL 중의하나의값 - DATA_TYPE 컬럼이숫자형인경우 : 2 - COLUMN_SIZE 컬럼 : 삽입이허용되는 비트의수 11 NULLABLE NUMERIC(NOT NULL) NULL 값이가능한지여부 12 REMARKS VARCHAR 컬럼의 13 COLUMN_DEF VARCHAR 컬럼의디폴트값 14 SQL_DATA_TYPE NUMERIC(NOT NULL) SQL 의데이터타입 15 SQL_DATETIME_SUB NUMERIC 내부데이터타입 16 CHAR_OCTET_LENGTH NUMERIC 컬럼의최대자릿수 17 ORDINAL_POSITION NUMERIC(NOT NULL) 테이블컬럼의원래위치 18 IS_NULLABLE VARCHAR 로우가 NULL 를포함하는지여부 반환코드 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 26 Tibero RDBMS tbcli 안내서
01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLColumns 를지원하지않는경우 3.1.13. SQLConnect ISO 92 CLI/ODBC 1.0에서지원하며, 연결할대상이되는데이터베이스를설정하는이다. 애플리케이션프로그램은연결대상인데이터베이스에 SQL를제공하고, 선택적으로권한및인증과관련된정보를제공할수있다. 이를호출하기전에 SQLAllocConnect 를호출해야한다. SQLConnect 의세부내용은다음과같다. 문법 SQLRETURN SQLConnect(SQLHDBC SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT ConnectionHandle, ServerName, NameLength1, UserName, NameLength2, 제 3 장 tbcli 27
SQLCHAR * SQLSMALLINT Authentication, NameLength3); 파라미터 파라미터 ConnectionHandle ServerName NameLength1 UserName NameLength2 Authentication NameLength3 용도입력입력입력입력입력입력입력 연결핸들데이터베이스이름의포인터데이터베이스이름의길이사용자 ID의포인터사용자 ID의길이인증과관련된패스워드의포인터인증과관련된패스워드의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01S02 08001 08002 08004 08S01 28000 HY000 HY001 HY013 HY090 일반적인경고옵션의값이바뀐경우클라이언트가서버에연결하는것이불가능한경우이미사용중인데이터베이스연결의이름인경우서버가연결을거부한경우서버와의통신연결에실패한경우잘못된권한을설정한경우일반적인에러메모리할당에러메모리관리에러잘못된문자열또는버퍼길이 28 Tibero RDBMS tbcli 안내서
HYT00 HYT01 IM001 IM002 IM003 IM004 IM005 IM006 IM009 IM010 제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLConnect 를지원하지않는경우데이터소스의이름을찾을수없거나, 디폴트드라이버가존재하지않는경우설정한드라이버를로드할수없는경우해당드라이버에 SQLAllocHandle 를이용한환경핸들할당에실패한경우해당드라이버에 SQLAllocHandle 를이용한연결핸들할당에실패한경우드라이버에 SQLSetConnectAttr 를이용한데이터베이스연결속성설정에실패한경우 Translation DLL에연결하는것이불가능한경우데이터소스의이름이 SQL_MAX_DSN_LENGTH 파라미터에설정된값보다긴경우 3.1.14. SQLCopyDesc ISO 92 CLI/ODBC 3.0 에서지원하며다른서술자핸들에서술자정보를복사하는이다. SQLCopyDesc 의세부내용은다음과같다. 문법 SQLRETURN SQLCopyDesc (SQLHDESC SQLHDESC SourceDescHandle, TargetDescHandle); 파라미터 파라미터 SourceDescHandle TargetDescHandle 용도 입력 입력 원본서술자의핸들 대상서술자의핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 제 3 장 tbcli 29
반환코드 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 01S02 08001 08002 08004 08S01 28000 HY000 HY001 HY013 HY090 HYT00 HYT01 IM001 IM002 IM003 IM004 IM005 IM006 IM009 일반적인경고옵션의값이바뀐경우클라이언트가서버에연결하는것이불가능한경우이미사용중인데이터베이스연결의이름인경우서버가연결을거부한경우서버와의통신연결에실패한경우잘못된권한을설정한경우일반적인에러메모리할당에러메모리관리에러잘못된문자열또는버퍼길이제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLCopyDesc 를지원하지않는경우데이터소스의이름을찾을수없거나, 디폴트드라이버가존재하지않는경우설정한드라이버를로드할수없는경우해당드라이버에 SQLAllocHandle 를이용한환경핸들의할당에실패한경우해당드라이버에 SQLAllocHandle 를이용한연결핸들의할당에실패한경우드라이버에 SQLSetConnectAttr 를이용한데이터베이스연결속성의설정에실패한경우 Translation DLL에연결하는것이불가능한경우 30 Tibero RDBMS tbcli 안내서
3.1.15. SQLDescribeCol ISO 92 CLI/ODBC 1.0에서지원하며, 결과집합에서특정컬럼의이름, 데이터타입, 정밀도, 스케일, NULL 의허용여부등의정보를확인하는이다. 이를호출하기전에 SQLPrepare 또는 SQLExecDirect 를호출해야한다. SQLDescribeCol 의세부내용은다음과같다. 문법 SQLRETURN SQLDescribeCol (SQLHSTMT SQLUSMALLINT SQLCHAR * SQLSMALLINT SQLSMALLINT * SQLSMALLINT * SQLUINTEGER * SQLSMALLINT * SQLSMALLINT * StatementHandle, ColumnNumber, ColumnName, BufferLength, NameLength, DataType, ColumnSize, DecimalDigits, Nullable); 파라미터 파라미터 StatementHandle ColumnNumber ColumnName BufferLength NameLength DataType ColumnSize DecimalDigits Nullable 용도입력입력출력입력출력출력출력출력출력 문장핸들컬럼의위치컬럼이름의포인터컬럼이름을저장하기위한버퍼의크기컬럼이름의길이컬럼의데이터타입컬럼의정밀도컬럼의스케일컬럼에대한 NULL의허용여부 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 제 3 장 tbcli 31
반환코드 SQL_ERROR 치명적인에러가발생한상태 01000 01004 07005 07009 08S01 HY000 HY001 HY008 HY010 HY013 HY090 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우커서의범위가아닌준비된문장인경우잘못된서술자인덱스서버와의통신연결에실패한경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우드라이버가 SQLDescribeCol 를지원하지않는경우 3.1.16. SQLDescribeParam ODBC 1.0 에서지원하며, 준비된 SQL 문장과관련된파라미터기호의서술자를반환하는이다. SQLDescribeParam 의세부내용은다음과같다. 문법 SQLRETURN SQLDescribeParam (SQLHSTMT SQLUSMALLINT SQLSMALLINT * SQLUINTEGER * SQLSMALLINT * SQLSMALLINT * StatementHandle, ParameterNumber, DataType, ParameterSize, DecimalDigits, Nullable); 파라미터 32 Tibero RDBMS tbcli 안내서
파라미터 StatementHandle ParameterNumber DataType ParameterSize DecimalDigits Nullable 용도입력입력출력출력출력출력 문장핸들이다. 파라미터기호의번호이다. 파라미터에대한 SQL의데이터타입이다. 컬럼의크기가반환될버퍼의포인터이다. 컬럼의정밀도가반환될버퍼의포인터이다. 해당파라미터에대한 NULL의허용여부가반환될버퍼의포인터이다. 다음중에하나의값을갖는다. - SQL_NO_NULLS: NULL을허용하지않는다. - SQL_NULLABLE: NULL을허용한다. - SQL_NULLABLE_UNKNOWN: NULL을허용할것인지를결정할수없다. 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 07009 08S01 21S01 HY000 HY001 HY008 HY010 HY013 일반적인경고잘못된서술자인덱스서버와의통신연결에실패한경우삽입될값의리스트가컬럼과일치하지않은경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러 제 3 장 tbcli 33
HYT01 IM001 데이터베이스연결제한시간을초과한경우 드라이버가 SQLDescribeParam 를지원하지않는경우 3.1.17. SQLDisconnect ISO 92 CLI/ODBC 1.0에서지원하며, 연결핸들과관련된데이터베이스연결을종료하는이다. 이가호출되면데이터베이스의연결을종료한후핸들을해제한다. 성공적으로핸들이해제되고나서 SQLConnect 를호출하는경우애플리케이션프로그램은연결핸들을다시사용할수있다. 이를호출한후다른데이터베이스에연결하려면 SQLConnect나 SQLFreeConnect 를사용해야한다. SQLDisconnect 의세부내용은다음과같다. 문법 SQLRETURN SQLDisconnect (SQLHDBC ConnectionHandle); 파라미터 파라미터 ConnectionHandle 용도 입력 연결핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01002 08003 25000 일반적인경고데이터베이스연결을해제하는중에에러가발생한경우데이터베이스연결이존재하지않는경우잘못된트랜잭션상태인경우 34 Tibero RDBMS tbcli 안내서
HY000 HY001 HY010 HY013 HYT01 IM001 일반적인에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLDisconnect 를지원하지않는경우 3.1.18. SQLEndTran ISO 92 CLI/ODBC 3.0에서지원하며, 현재트랜잭션을커밋하거나롤백하는이다. 커밋과롤백중어떤동작을실행할것인지는 SQLEndTran 의 CompletionType 파라미터로결정된다. 만약, 현재동작중인트랜잭션이없는경우에는데이터베이스서버에영향을주지않고, SQL_SUCCESS 를반환한다. SQLEndTran 의세부내용은다음과같다. 문법 SQLRETURN SQLEndTran (SQLSMALLINT SQLHANDLE SQLSMALLINT HandleType, Handle, CompletionType); 파라미터 파라미터 HandleType 용도 입력 할당받을핸들의타입이다. 아래타입중하나의값을갖는다. - SQL_HANDLE_ENV - SQL_HANDLE_DBC Handle CompletionType 입력 입력 핸들의포인터이다. 커밋또는롤백여부를나타내는타입이다. 아래타입중하나의값을갖는다. - SQL_COMMIT - SQL_ROLLBACK 제 3 장 tbcli 35
반환코드 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 08003 08007 25S01 25S02 25S03 40001 40002 HY000 HY001 HY010 HY012 HY013 HY092 HYC00 HYT01 IM001 일반적인경고데이터베이스연결이존재하지않는경우트랜잭션을수행하는중에데이터베이스연결에실패한경우트랜잭션의상태트랜잭션이아직활성화되지않은경우트랜잭션이롤백된경우직렬화에실패한경우무결성제약조건에위배되는경우일반적인에러메모리할당에러시퀀스에러잘못된트랜잭션의연산코드인경우메모리관리에러잘못된속성및옵션식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLEndTran 를지원하지않는경우 3.1.19. SQLError (Deprecated) 특정명령문및데이터베이스연결또는환경핸들에대해가장최근에호출된의에러와상태정보를반환하는이다. 관련 SQLError 는 ODBC 3.x에서 SQLGetDiagRec 로대체된다. 36 Tibero RDBMS tbcli 안내서
3.1.20. SQLExecDirect ISO 92 CLI/ODBC 1.0에서지원하며, 커밋이나롤백등의트랜잭션과관련된문장을제외한나머지 SQL 문장을직접실행하는이다. 커밋이나롤백을실행하기위해서는 SQLTransact 를호출해야한다. SQLExecDirect 를호출하기전에모든파라미터는바인드되어야하며, 연결할데이터베이스서버는 SQL 문장을미리준비해야한다. 이때 SQL 문장은한번만실행된다. SQLExecDirect 의세부내용은다음과같다. 문법 SQLRETURN SQLExecDirect (SQLHSTMT SQLCHAR * SQLINTEGER StatementHandle, StatementText, TextLength); 파라미터 파라미터 StatementHandle StatementText TextLength 용도입력입력입력 문장핸들 SQL 문장 SQL 문장의텍스트길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_NEED_DATA 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 제 3 장 tbcli 37
01000 01001 01003 01004 01006 01007 01S02 01S07 07002 07006 07S01 08S01 21S01 21S02 22001 22002 22003 22007 22008 22012 22015 22018 22019 22025 23000 24000 34000 3D000 3F000 40001 40003 42000 일반적인경고커서연산이충돌된경우설정된에서 NULL 값을제거한경우문자열데이터가오른쪽에서잘린경우회수되지않은특권부여되지않은특권옵션의값이바뀐경우숫자타입이나날짜타입의일부정보가잘린경우 COUNT 필드에오류가있는경우제한된데이터타입의속성에위배되는경우디폴트파라미터를잘못사용한경우서버와의통신연결에실패한경우삽입될값의리스트가컬럼과일치하지않은경우테이블의 degree가컬럼과일치하지않은경우문자열데이터가오른쪽에서잘린경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 DATETIME 필드에오버플로우가발생한경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된이스케이프문자잘못된이스케이프시퀀스무결성제약조건에위배되는경우잘못된커서상태인경우잘못된커서이름잘못된카탈로그이름잘못된스키마이름직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우문법에러또는접근위배가발생한경우 38 Tibero RDBMS tbcli 안내서
42S01 42S02 42S11 42S12 42S21 42S22 44000 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HY105 HY109 HYC00 HYT00 HYT01 IM001 기반테이블또는뷰가이미존재하는경우기반테이블또는뷰를찾을수없는경우인덱스가이미존재하는경우인덱스를찾을수없는경우컬럼이이미존재하는경우컬럼을찾을수없는경우 WITH CHECK OPTION에위배되는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된파라미터타입잘못된커서위치선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLExecDirect 를지원하지않는경우 3.1.21. SQLExecute ISO 92 CLI/ODBC 1.0에서지원하며, 준비된 SQL 문장을한번또는여러번실행하는이다. SQL 문장은 SQLBindParameter 를사용하여파라미터마커 (parameter maker) 에바인드된애플리케이션프로그램의변수에현재값을적용하여실행된다. 애플리케이션프로그램이 SQLExecute 를사용하여호출결과를처리하면, 애플리케이션프로그램의변수에새로운값을대입하여 SQL 문장을다시실행할수있다. SQLExecute 의세부내용은다음과같다. 문법 SQLRETURN SQLExecute (SQLHSTMT StatementHandle); 제 3 장 tbcli 39
파라미터 파라미터 StatementHandle 용도 입력 문장핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_NEED_DATA 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 01001 01003 01004 01006 01007 01S02 01S07 07002 07006 07S01 08S01 21S01 21S02 일반적인경고커서연산이충돌된경우설정된에서 NULL 값을제거한경우문자열데이터가오른쪽에서잘린경우회수되지않은특권부여되지않은특권옵션의값이바뀐경우숫자타입이나날짜타입의일부정보가잘린경우 COUNT 필드에오류가있는경우제한된데이터타입의속성에위배되는경우디폴트파라미터를잘못사용한경우서버와의통신연결에실패한경우삽입될값의리스트가컬럼과일치하지않은경우테이블의 degree가컬럼과일치하지않은경우 40 Tibero RDBMS tbcli 안내서
22001 22002 22003 22007 22008 22012 22015 22018 22019 22025 23000 24000 40001 40003 42000 44000 HY000 HY001 HY008 HY010 HY013 HY090 HY105 HY109 HYC00 HYT00 HYT01 IM001 문자열데이터가오른쪽에서잘린경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 DATETIME 필드에오버플로우가발생한경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된이스케이프문자잘못된이스케이프시퀀스무결성제약조건에위배되는경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우문법에러또는접근위배가발생한경우 WITH CHECK OPTION에위배되는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된파라미터타입잘못된커서위치선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLExecute 를지원하지않는경우 제 3 장 tbcli 41
3.1.22. SQLExtendedFetch (Deprecated) SQLExtendedFetch 는 ODBC 3.x 에서 SQLFetchScroll 로대체된다. 3.1.23. SQLFetch ISO 92 CLI/ODBC 1.0에서지원하며, SQL 문장의실행결과에대해페치 (fetch) 를실행하고선택된모든컬럼의데이터를반환하는이다. 즉, 결과집합내에서다음행으로커서를이동하고바인드된컬럼을가져온다. 바인드되는컬럼이없는경우, 애플리케이션프로그램으로반환되는데이터는없으며커서만다음행으로이동된다. 그리고커서가이동한후바인드되지않은컬럼의데이터는삭제된다. SQLFetch 는가장최근에실행된 SQL 문장이 SELECT 문일때만호출할수있다. SQLFetch 의세부내용은다음과같다. 문법 SQLRETURN SQLFetch (SQLHSTMT StatementHandle); 파라미터 파라미터 StatementHandle 용도 입력 문장핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 01004 일반적인경고 문자열데이터가오른쪽에서잘린경우 42 Tibero RDBMS tbcli 안내서
01S01 01S07 07006 07009 08S01 22001 22002 22003 22007 22012 22015 22018 24000 40001 40003 HY000 HY001 HY008 HY010 HY013 HY090 HY107 HYC00 HYT01 IM001 로우에에러가있는경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스서버와의통신연결에실패한경우문자열데이터가오른쪽에서잘린경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이결과집합영역내에서존재하지않는로우번호를참조하려는경우선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLFetch 를지원하지않는경우 3.1.24. SQLFetchScroll ISO 92 CLI/ODBC 3.0 에서지원하며, 결과집합내의특정로우의집합을페치하고선택된모든컬럼을 반환하는이다. 로우의집합은절대적위치또는상대적위치에내용이삽입된다. SQLFetchScroll 의세부내용은다음과같다. 제 3 장 tbcli 43
문법 SQLRETURN SQLFetchScroll (SQLHSTMT SQLSMALLINT SQLINTEGER StatementHandle, FetchOrientation, FetchOffset); 파라미터 파라미터 StatementHandle FetchOrientation 용도 입력 입력 문장핸들스크롤타입 - SQL_FETCH_NEXT: 다음행 - SQL_FETCH_PRIOR: 이전행 - SQL_FETCH_FIRST: 첫번째행 - SQL_FETCH_LAST: 마지막행 - SQL_FETCH_ABSOLUTE: 시작점을기준으로 FetchOffset 번째행 - SQL_FETCH_RELATIVE: 현재행을기준으로 FetchOffset 번째행 FetchOffset 입력 페치될행의번호 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 01004 일반적인경고 문자열데이터가오른쪽에서잘린경우 44 Tibero RDBMS tbcli 안내서
01S01 01S06 01S07 07006 07009 08S01 22001 22002 22003 22007 22012 22015 22018 24000 40001 40003 HY000 HY001 HY008 HY010 HY013 HY090 HY106 HY107 HY111 HYC00 HYT01 IM001 로우에에러가있는경우결과집합이첫번째행의집합을반환하기전에페치를시도한경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스서버와의통신연결에실패한경우문자열데이터가오른쪽에서잘린경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이영역밖의페치타입인경우결과집합영역내에서존재하지않는로우번호를참조하려는경우잘못된북마크값인경우선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLFetchScroll 를지원하지않는경우 제 3 장 tbcli 45
3.1.25. SQLForeignKeys ISO 92 CLI/ODBC 1.0에서지원하며, 테이블의외래키에대한정보를검색하는이다. 즉다른테이블내의기본키를참조하는해당테이블의컬럼과해당테이블의기본키를참조하는다른테이블의외래키의목록을검색한다. SQLForeignKeys 의세부내용은다음과같다. 문법 SQLRETURN SQLForeignKeys (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, PKCatalogName, NameLength1, PKSchemaName, NameLength2, PKTableName, NameLength3, FKCatalogName, NameLength4, FKSchemaName, NameLength5, FKTableName, NameLength6); 파라미터 파라미터 StatementHandle PKCatalogName NameLength1 PKSchemaName NameLength2 PKTableName NameLength3 FKCatalogName NameLength4 FKSchemaName NameLength5 FKTableName NameLength6 용도입력입력입력입력입력입력입력입력입력입력입력입력입력 문장핸들기본키의카탈로그이름기본키의카탈로그이름의길이기본키의스키마이름기본키의스키마이름의길이기본키의테이블이름기본키의테이블이름의길이외래키의카탈로그이름외래키의카탈로그이름의길이외래키의스키마이름외래키의스키마이름의길이외래키의테이블이름외래키의테이블이름의길이 46 Tibero RDBMS tbcli 안내서
반환코드 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLForeignKeys 를지원하지않는경우 3.1.26. SQLFreeConnect (Deprecated) 연결핸들을무효화하고이와관련된모든자원을해제하는이다. 만약데이터베이스연결이유지된상태에서 SQLFreeConnect 를호출하면, SQL_ERROR가반환되고연결핸들은유효해진다. 관련 SQLFreeConnect 는 ODBC 3.x에서 SQLDisconnect 로대체된다. 제 3 장 tbcli 47
3.1.27. SQLFreeEnv (Deprecated) 환경핸들을무효화하고이와관련된모든자원을해제하는이다. 만약연결핸들이유효한상태에서 SQLFreeEnv 를호출하면, SQL_ERROR가반환되고환경핸들은유효해진다. 이를호출하기전에 SQLFreeConnect 를호출해야한다. 관련 SQLFreeEnv 는 ODBC 3.x에서 SQLFreeHandle 로대체된다. 3.1.28. SQLFreeHandle ISO 92 CLI/ODBC 3.0 에서지원하며, 연결, 핸들, 명령문에할당된메모리를해제하는이다. SQLFreeHandle 의세부내용은다음과같다. 문법 SQLRETURN SQLFreeHandle (SQLSMALLINT SQLHANDLE HandleType, Handle); 파라미터 파라미터 HandleType 용도 입력 해제될핸들의타입이다. 아래타입중하나의값을갖는다. - SQL_HANDLE_ENV - SQL_HANDLE_DBC - SQL_HANDLE_STMT Handle 입력 해제될핸들이다. 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 48 Tibero RDBMS tbcli 안내서
HY000 HY001 HY010 HY013 HY017 HYT01 IM001 일반적인에러메모리할당에러시퀀스에러메모리관리에러자동으로할당된서술자핸들을잘못사용한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLFreeHandle 를지원하지않는경우 3.1.29. SQLFreeStmt ISO 92 CLI/ODBC 1.0에서지원하며, 명령문에할당된메모리를해제하는이다. SQL 문장을실행한후결과를처리하고나서 SQLFreeStmt 를호출한다. 이는열려있는커서를닫고, 파라미터를재설정한다. 또한컬럼의바인드를해제하고문장핸들을무효화하며핸들과관련된자원을해제한다. 이때 Option 파라미터에의해핸들을해제하는방식을설정할수있다. SQLFreeStmt 의세부내용은다음과같다. 문법 SQLRETURN SQLFreeStmt (SQLHSTMT SQLUSMALLINT StatementHandle, Option); 파라미터 파라미터 StatementHandle Option 용도 입력 입력 문장핸들 핸들을해제하는방식 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 제 3 장 tbcli 49
01000 HY000 HY001 HY010 HY013 HY092 HYT01 IM001 일반적인경고일반적인에러메모리할당에러시퀀스에러메모리관리에러잘못된속성및옵션식별자데이터베이스연결제한시간을초과한경우드라이버가 SQLFreeStmt 를지원하지않는경우 3.1.30. SQLGetConnectAttr ISO 92 CLI/ODBC 3.0 에서지원하며, 현재설정된데이터베이스연결의속성을반환하는이다. SQLGetConnectAttr 의세부내용은다음과같다. 문법 SQLRETURN SQLGetConnectAttr (SQLHDBC SQLINTEGER SQLPOINTER SQLINTEGER SQLINTEGER * ConnectionHandle, Attribute, Value, BufferLength, StringLength); 파라미터 파라미터 ConnectionHan dle Attribute Value BufferLength StringLength 용도입력입력출력입력출력 연결핸들이다. 검색할컬럼이다. 컬럼의현재값을저장한메모리의포인터이다. 실행결과를저장할버퍼의크기이다. Value 파라미터의길이이다. - NULL 포인터인경우길이를반환하지않는다. 반환코드 50 Tibero RDBMS tbcli 안내서
반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료된상태 가성공적으로완료되었으나, 경고메시지가있는상태가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 08003 08S01 HY000 HY001 HY010 HY013 HY090 HY092 HYC00 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우데이터베이스연결이존재하지않는경우서버와의통신연결에실패한경우일반적인에러메모리할당에러시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된속성및옵션식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLGetConnectAttr 를지원하지않는경우 3.1.31. SQLGetConnectOption (Deprecated) SQLGetConnectOption 는 ODBC 3.x 에서 SQLGetConnectAttr 로대체된다. 3.1.32. SQLGetCursorName ISO 92 CLI/ODBC 1.0 에서지원하며, 명시된문장과관련된커서의이름을반환하는이다. SQLGetCursorName 의세부내용은다음과같다. 제 3 장 tbcli 51
문법 SQLRETURN SQLGetCursorName (SQLHSTMT SQLCHAR * SQLSMALLINT SQLSMALLINT * StatementHandle, CursorName, BufferLength, NameLength); 파라미터 파라미터 StatementHandle CursorName BufferLength NameLength 용도입력출력입력출력 문장핸들커서이름을저장한버퍼의포인터실행결과를저장할버퍼의크기커서이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 HY000 HY001 HY010 HY013 HY015 HY090 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우일반적인에러메모리할당에러시퀀스에러메모리관리에러사용할수있는커서의이름이없는경우잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우드라이버가 SQLGetCursorName 를지원하지않는경우 52 Tibero RDBMS tbcli 안내서
3.1.33. SQLGetData ISO 92 CLI/ODBC 1.0에서지원하며, 결과집합의현재로우에서단일컬럼에대한데이터를검색하는이다. SQLFetch 를호출하여애플리케이션프로그램의변수로직접데이터를전달하는 SQLBinCol 대신이를사용할수있다. SQLGetData 의세부내용은다음과같다. 문법 SQLRETURN SQLGetData (SQLHSTMT SQLUSMALLINT SQLSMALLINT SQLPOINTER SQLINTEGER SQLINTEGER * StatementHandle, ColumnNumber, TargetType, TargetValue, BufferLength, StrLen_or_Ind); 파라미터 파라미터 StatementHandle ColumnNumber TargetType TargetValue BufferLength StrLen_or_Ind 용도입력입력입력출력입력출력 문장핸들검색할컬럼의위치검색된데이터가삽입될버퍼의 C의타입검색된데이터가삽입될버퍼의포인터버퍼의길이검색된데이터의길이나지시자 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 제 3 장 tbcli 53
01000 01004 01S07 07006 07009 08S01 22002 22003 22007 22012 22015 22018 24000 HY000 HY001 HY003 HY008 HY009 HY010 HY013 HY090 HY109 HYC00 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스서버와의통신연결에실패한경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된커서상태인경우일반적인에러메모리할당에러잘못된애플리케이션버퍼의타입연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된커서위치선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLGetData 를지원하지않는경우 3.1.34. SQLGetDescField ISO 92 CLI/ODBC 3.0 에서지원하며, 서술자레코드의컬럼값또는현재설정된내용을반환하는이 다. SQLGetDescField 의세부내용은다음과같다. 54 Tibero RDBMS tbcli 안내서
문법 SQLRETURN SQLGetDescField (SQLHDESC SQLSMALLINT SQLSMALLINT SQLPOINTER SQLINTEGER SQLINTEGER * DescriptorHandle, RecNumber, FieldIdentifier, Value, BufferLength, StringLength); 파라미터 파라미터 DescriptorHandle RecNumber FieldIdentifier Value BufferLength StringLength 용도입력입력입력출력입력출력 서술자핸들서술자레코드서술자값의컬럼서술자정보를저장한버퍼의포인터서술자정보를저장할버퍼의크기실행결과정보의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : RecNumber 파라미터가서술자레코드의현재숫자보다큰경우 또는, 서술자핸들이 IRD 인데해당커서가열리지않은경우 ) SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 07009 08S01 HY000 일반적인경고문자열데이터가오른쪽에서잘린경우잘못된서술자인덱스서버와의통신연결에실패한경우일반적인에러 제 3 장 tbcli 55
HY001 HY007 HY010 HY013 HY021 HY090 HY091 HYT01 IM001 메모리할당에러 SQL 문장이준비되지않은경우시퀀스에러메모리관리에러모순이있는서술자정보잘못된문자열또는버퍼길이잘못된서술자의필드식별자데이터베이스연결제한시간을초과한경우드라이버가 SQLGetDescField 를지원하지않는경우 3.1.35. SQLGetDescRec ISO 92 CLI/ODBC 3.0에서지원하며, 서술자레코드의여러개의컬럼값또는현재설정된내용을반환하는이다. 이때컬럼은명시된이름, 데이터타입그리고컬럼및파라미터의데이터를저장하는공간을반환한다. SQLGetDescRec 의세부내용은다음과같다. 문법 SQLRETURN SQLGetDescRec (SQLHDESC SQLSMALLINT SQLCHAR * SQLSMALLINT SQLSMALLINT * SQLSMALLINT * SQLSMALLINT * SQLINTEGER * SQLSMALLINT * SQLSMALLINT * SQLSMALLINT * DescriptorHandle, RecNumber, Name, BufferLength, StringLength, Type, SubType, Length, Precision, Scale, Nullable); 파라미터 파라미터 DescriptorHandle RecNumber Name 용도입력입력출력 서술자핸들서술자레코드 SQL_DESC_NAME 컬럼을저장한버퍼의포인터 56 Tibero RDBMS tbcli 안내서
파라미터 BufferLength StringLength Type SubType Length Precision Scale Nullable 용도입력출력출력출력출력출력출력출력 Name 파라미터의버퍼길이반환된 SQL_DESC_NAME 컬럼의길이 SQL_DESC_TYPE 컬럼을저장한버퍼의포인터 SQL_DATETIME 타입인레코드에대해 SQL_DESC_DATETIME_INTER VAL_CODE 필드의값이반환될버퍼의포인터서술자레코드의길이정보서술자레코드의정밀도정보서술자레코드의스케일정보서술자레코드의 NULL 허용여부정보 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : RecNumber 파라미터가서술자레코드의현재숫자보다큰경우 또는, 서술자핸들이 IRD 인데해당커서가열리지않은경우 ) SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 07009 08S01 HY000 HY001 HY007 HY010 HY013 HYT01 일반적인경고문자열데이터가오른쪽에서잘린경우잘못된서술자인덱스서버와의통신연결에실패한경우일반적인에러메모리할당에러 SQL 문장이준비되지않은경우시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우 제 3 장 tbcli 57
IM001 드라이버가 SQLGetDescRec 를지원하지않는경우 3.1.36. SQLGetDiagField ISO 92 CLI/ODBC 3.0 에서지원하며, 특정핸들과관련된에러, 경고, 상태정보를포함하는진단의데이 터구조내임의의필드의현재값을반환하는이다. SQLGetDiagField 의세부내용은다음과같다. 문법 SQLRETURN SQLGetDiagField (SQLSMALLINT SQLHANDLE SQLSMALLINT SQLSMALLINT SQLPOINTER SQLSMALLINT SQLSMALLINT * HandleType, Handle, RecNumber, DiagIdentifier, DiagInfo, BufferLength, StringLength); 파라미터 파라미터 HandleType Handle RecNumber DiagIdentifier DiagInfo BufferLength StringLength 용도입력입력입력입력출력입력출력 핸들의타입핸들상태레코드반환될값의진단컬럼진단정보를저장한버퍼의포인터버퍼의길이실행결과정보의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) 58 Tibero RDBMS tbcli 안내서
반환코드 SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 HY009 HY001 NULL 포인터를잘못사용한경우 메모리할당에러 3.1.37. SQLGetDiagRec ISO 92 CLI/ODBC 3.0에서지원하며, 특정핸들과관련된에러, 경고, 상태정보를포함하는진단레코드내의여러필드의현재값을반환하는이다. 이는하나의열을반환하는 SQLGetDiagField 와는다르게, 에러코드, 진단메시지의텍스트등을반환한다. SQLGetDiagRec 의세부내용은다음과같다. 문법 SQLRETURN SQLGetDiagRec (SQLSMALLINT SQLHANDLE SQLSMALLINT SQLCHAR * SQLINTEGER * SQLCHAR * SQLSMALLINT SQLSMALLINT * HandleType, Handle, RecNumber, Sqlstate, NativeError, MessageText, BufferLength, TextLength); 파라미터 파라미터 HandleType Handle RecNumber Sqlstate NativeError MessageText BufferLength 용도입력입력입력출력출력출력입력 핸들의타입핸들상태레코드 코드디폴트에러코드진단메시지의텍스트문자열진단메시지의텍스트문자열을저장할버퍼길이 제 3 장 tbcli 59
파라미터 TextLength 용도 출력 진단메시지의텍스트문자열의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : RecNumber 파라미터가 0 이거나음수인경우 또는, 버퍼의길이가 0 보다작은경우 ) HY009 HY001 NULL 포인터를잘못사용한경우 메모리할당에러 3.1.38. SQLGetEnvAttr ISO 92 CLI/ODBC 3.0 에서지원하며, 환경핸들과관련된컬럼의현재값을반환하는이다. SQLGetEnvAttr 의세부내용은다음과같다. 문법 SQLRETURN SQLGetEnvAttr (SQLHENV SQLINTEGER SQLPOINTER SQLINTEGER SQLINTEGER * EnvironmentHandle, Attribute, Value, BufferLength, StringLength); 파라미터 파라미터 Environmen thandle 용도 입력 환경핸들 60 Tibero RDBMS tbcli 안내서
파라미터 Attribute Value BufferLength StringLength 용도입력출력입력출력 검색할컬럼컬럼의현재값 Value 파라미터가문자열인경우최대길이실행결과정보의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 HY000 HY001 HY013 HY092 HYC00 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우일반적인에러메모리할당에러메모리관리에러잘못된속성및옵션식별자선택적인기능이구현되지않은경우드라이버가 SQLGetEnvAttr 를지원하지않은경우 3.1.39. SQLGetFunctions ISO 92 CLI/ODBC 1.0에서지원하며, 드라이버가특정를지원하는지의여부를알기위해사용하는이다. 이는드라이버관리자내에서사용할수있으며, 드라이버내에도사용할수있다. 만약드라이버내에서이를사용하는경우, 드라이버관리자는드라이버내의를호출하게된다. SQLGetFunctions 의세부내용은다음과같다. 제 3 장 tbcli 61
문법 SQLRETURN SQLGetFunctions (SQLHDBC SQLUSMALLINT SQLUSMALLINT * ConnectionHandle, FunctionId, Supported); 파라미터 파라미터 ConnectionHandle FunctionId Supported 용도입력입력출력 연결핸들 ODBC 를호출할미리정의된값질의한가지원되는지의여부가저장될버퍼의포인터 - SQL_TRUE - SQL_FALSE 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 08S01 HY000 HY001 HY010 HY013 HY095 HYT01 일반적인경고서버와의통신연결에실패한경우일반적인에러메모리할당에러시퀀스에러메모리관리에러영역밖의타입인경우데이터베이스연결제한시간을초과한경우 62 Tibero RDBMS tbcli 안내서
3.1.40. SQLGetInfo ISO 92 CLI/ODBC 1.0 에서지원하며, 드라이버의연결과관련된데이터소스의일반적인정보를반환하 는이다. SQLGetInfo 의세부내용은다음과같다. 문법 SQLRETURN SQLGetInfo (SQLHDBC SQLUSMALLINT SQLPOINTER SQLSMALLINT SQLSMALLINT * ConnectionHandle, InfoType, InfoValue, BufferLength, StringLength); 파라미터 파라미터 ConnectionHandle InfoType InfoValue BufferLength StringLength 용도입력입력출력입력출력 연결핸들정보의타입정보를저장할버퍼의포인터버퍼의길이반환된정보의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 08003 08S01 HY000 일반적인경고문자열데이터가오른쪽에서잘린경우데이터베이스연결이존재하지않는경우서버와의통신연결에실패한경우일반적인에러 제 3 장 tbcli 63
HY001 HY013 HY024 HY090 HY096 HYC00 HYT01 IM001 메모리할당에러메모리관리에러잘못된속성값잘못된문자열또는버퍼길이영역밖의정보타입선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLGetInfo 를지원하지않는경우 3.1.41. SQLGetStmtAttr ISO 92 CLI/ODBC 3.0 에서지원하며, SQL 문장의속성에대한현재값을반환하는이다. SQLGetStmtAttr 의세부내용은다음과같다. 문법 SQLRETURN SQLGetStmtAttr (SQLHSTMT SQLINTEGER SQLPOINTER SQLINTEGER SQLINTEGER * StatementHandle, Attribute, Value, BufferLength, StringLength); 파라미터 파라미터 StatementHandle Attribute Value BufferLength StringLength 용도입력입력출력입력출력 문장핸들검색할속성명시된속성의현재값이반환될버퍼의포인터버퍼의길이반환된결과의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO 가성공적으로완료되었으나, 경고메시지가있는상태 64 Tibero RDBMS tbcli 안내서
반환코드 SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 24000 HY000 HY001 HY010 HY013 HY090 HY092 HY109 HYC00 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우잘못된커서상태인경우일반적인에러메모리할당에러시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된속성및옵션식별자잘못된커서위치선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLGetStmtAttr 를지원하지않는경우 3.1.42. SQLGetStmtOption (Deprecated) SQLGetStmtOption 는 ODBC 3.x 에서 SQLGetStmtAttr 로대체된다. 3.1.43. SQLGetTypeInfo ISO 92 CLI/ODBC 1.0에서지원하며, 데이터소스가지원하는데이터타입의정보를반환하는이다. 이때정보는 SQL 문장을실행한결과집합의형식으로반환된다. 애플리케이션프로그램은 ALTER TABLE과 CREATE TABLE 문장에이를호출하는경우결과집합의 TYPE_NAME 컬럼으로반환될타입의이름을사용한다. SQLGetTypeInfo 의세부내용은다음과같다. 문법 제 3 장 tbcli 65
SQLRETURN SQLGetTypeInfo (SQLHSTMT SQLSMALLINT StatementHandle, DataType); 파라미터 파라미터 StatementHandle DataType 용도 입력 입력 문장핸들 SQL 의데이터타입 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 01S02 08S01 24000 40001 40003 HY000 HY001 HY004 HY008 HY010 HY013 HYC00 HYT00 HYT01 일반적인경고옵션의값이바뀐경우서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러잘못된 SQL의데이터타입연산이취소된경우시퀀스에러메모리관리에러선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우 66 Tibero RDBMS tbcli 안내서
IM001 드라이버가 SQLGetTypeInfo 를지원하지않는경우 3.1.44. SQLMoreResults ISO 92 CLI/ODBC 1.0에서지원하며, SETECT, UPDATE, INSERT, DELETE 문을포함하는 SQL 문장이추가적으로실행결과를사용할것인지의여부를결정하는이다. 만약추가적으로실행결과를사용하는경우에는해당결과를초기화한다. SQLMoreResults 의세부내용은다음과같다. 문법 SQLRETURN SQLMoreResults(SQLHSTMT StatementHandle); 파라미터 파라미터 StatementHandle 용도 입력 문장핸들 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 01S02 08S01 일반적인경고옵션의값이바뀐경우서버와의통신연결에실패한경우 제 3 장 tbcli 67
40001 40003 HY000 HY001 HY008 HY010 HY013 HYT01 IM001 직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLMoreResults 를지원하지않는경우 3.1.45. SQLNativeSql ODBC 1.0 에서지원하며드라이버에의해변경되는 SQL 문자열을반환하는이다. 이때 SQL 문장은 실행하지않는다. SQLNativeSql 의세부내용은다음과같다. 문법 SQLRETURN SQLNativeSql (SQLHDBC SQLCHAR * SQLINTEGER SQLCHAR * SQLINTEGER SQLINTEGER * ConnectionHandle, InStatementText, TextLength1, OutStatementText, BufferLength, TextLength2); 파라미터 파라미터 ConnectionHandle InStatementText TextLength1 OutStatementText BufferLength TextLength2 용도입력입력입력출력입력출력 연결핸들변경될 SQL 문자열변경될 SQL 문자열의길이반환된 SQL 문자열반환된 SQL 문자열을저장할버퍼의길이반환결과의길이 반환코드 68 Tibero RDBMS tbcli 안내서
반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료된상태 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 01004 08003 08S01 22007 24000 HY000 HY001 HY009 HY013 HY090 HY109 HYT01 IM001 일반적인경고문자열데이터가오른쪽에서잘린경우데이터베이스연결이존재하지않는경우서버와의통신연결에실패한경우잘못된 DATETIME 타입의포맷인경우잘못된커서상태인경우일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우메모리관리에러잘못된문자열또는버퍼길이잘못된커서위치데이터베이스연결제한시간을초과한경우드라이버가 SQLNativeSql 를지원하지않는경우 3.1.46. SQLNumParams ODBC 1.0 에서지원하며, SQL 문장내의파라미터의개수를반환하는이다. SQLNumParams 의세부내용은다음과같다. 문법 SQLRETURN SQLNumParams (SQLHSTMT SQLSMALLINT * StatementHandle, ParameterCount); 파라미터 제 3 장 tbcli 69
파라미터 StatementHandle ParameterCount 용도 입력 출력 문장핸들 반환정보를저장한버퍼의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 HY000 HY001 HY008 HY010 HY013 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLNumParams 를지원하지않는경우 3.1.47. SQLNumResultCols ISO 92 CLI/ODBC 1.0에서지원하며, 입력문장핸들과관련된결과집합의컬럼수를반환하는이다. 가장최근에실행된 SQL 문장이 SELECT 문이아닌경우 0을반환한다. 이를호출하기전에 SQLPrepare 또는 SQLExecDirect 를호출해야한다. SQLNumResultCols 의세부내용은다음과같다. 문법 70 Tibero RDBMS tbcli 안내서
SQLRETURN SQLNumResultCols (SQLHSTMT SQLSMALLINT * StatementHandle, ColumnCount); 파라미터 파라미터 StatementHandle ColumnCount 용도 입력 출력 문장핸들 결과를저장할포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 HY000 HY001 HY008 HY010 HY013 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLNumResultCols 를지원하지않는경우 3.1.48. SQLParamData ISO 92 CLI/ODBC 1.0 에서지원하며, SQL 문장을실행하는시간에파라미터데이터를지원하는이 다. 이는 SQLPutData 와함께사용한다. SQLParamData 의세부내용은다음과같다. 제 3 장 tbcli 71
문법 SQLRETURN SQLParamData (SQLHSTMT SQLPOINTER * StatementHandle, Value); 파라미터 파라미터 StatementHandle Value 용도 입력 출력 문장핸들 SQLBindParameter 의 ParameterValue 파라미터나 SQLBindCol 의 TargetValue 파라미터를저장하기위한버퍼의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_NEED_DATA 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 07006 08S01 22026 40001 40003 HY000 HY001 일반적인경고제한된데이터타입의속성에위배되는경우서버와의통신연결에실패한경우잘못된길이를가진문자열데이터직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러 72 Tibero RDBMS tbcli 안내서
HY008 HY010 HY013 HYT01 IM001 연산이취소된경우시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLParamData 를지원하지않는경우 3.1.49. SQLParamOptions (Deprecated) SQLParamOptions 는 ODBC 3.x 에서 SQLSetStmtAttr 로대체된다. 3.1.50. SQLPrepare ISO 92 CLI/ODBC 1.0 에서지원하며, 실행할 SQL 문장을준비하는이다. 즉, SQL 문장을입력명령 핸들과연관시키고명령문을준비할데이터베이스서버로전송한다. SQLPrepare 의세부내용은다음과같다. 문법 SQLRETURN SQLPrepare (SQLHSTMT SQLCHAR * SQLINTEGER StatementHandle, StatementText, TextLength); 파라미터 파라미터 StatementHandle StatementText TextLength 용도입력입력입력 문장핸들 SQL 문장 SQL 문장의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 제 3 장 tbcli 73
반환코드 SQL_ERROR 치명적인에러가발생한상태 01000 01S02 08S01 21S01 21S02 22018 22019 22025 24000 34000 3D000 3F000 42000 42S01 42S02 42S11 42S12 42S21 42S22 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 일반적인경고옵션의값이바뀐경우서버와의통신연결에실패한경우삽입될값의리스트가컬럼과일치하지않은경우테이블의 degree가컬럼과일치하지않은경우캐스트설정을위한문자값이잘못된경우잘못된이스케이프문자잘못된이스케이프시퀀스잘못된커서상태인경우잘못된커서이름잘못된카탈로그이름잘못된스키마이름문법에러또는접근위배가발생한경우기반테이블또는뷰가이미존재하는경우기반테이블또는뷰를찾을수없는경우인덱스가이미존재하는경우인덱스를찾을수없는경우컬럼이이미존재하는경우컬럼을찾을수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우 74 Tibero RDBMS tbcli 안내서
HYT01 IM001 데이터베이스연결제한시간을초과한경우 드라이버가 SQLPrepare 를지원하지않는경우 3.1.51. SQLPrimaryKeys ISO 92 CLI/ODBC 1.0 에서지원하며, 특정테이블에대한기본키의정보를리스트형태로반환하는 이다. SQLPrimaryKeys 의세부내용은다음과같다. 문법 SQLRETURN SQLPrimaryKeys (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 TableName NameLength3 용도입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이테이블이름테이블이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 제 3 장 tbcli 75
반환코드 SQL_ERROR 치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLPrimaryKeys 를지원하지않는경우 3.1.52. SQLProcedureColumns ODBC 1.0 에서지원하며, 명시된프로시저의결과집합을구성하는컬럼뿐만아니라, 입 / 출력파라미터 의목록을반환하는이다. 이때정보는명시된문장에대한결과집합의형태로반환한다. SQLProcedureColumns 의세부내용은다음과같다. 문법 SQLRETURN SQLProcedureColumns (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, 76 Tibero RDBMS tbcli 안내서
SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT ProcName, NameLength3, ColumnName, NameLength4); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 ProcName NameLength3 ColumnName NameLength4 용도입력입력입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이프로시저이름프로시저이름의길이컬럼이름컬럼이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러 제 3 장 tbcli 77
HY008 HY009 HY010 HY090 HYC00 HYT00 HYT01 IM001 연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLProcedureColumns 를지원하지않는경우 3.1.53. SQLProcedures ODBC 1.0 에서지원하며, 명시된데이터소스내에저장된프로시저이름의목록을반환하는이다. SQLProcedures 의세부내용은다음과같다. 문법 SQLRETURN SQLProcedures (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, ProcName, NameLength3); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 ProcName NameLength3 용도입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이프로시저이름프로시저이름의길이 반환코드 78 Tibero RDBMS tbcli 안내서
반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료된상태 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLProcedures 를지원하지않는경우 3.1.54. SQLPutData ISO 92 CLI/ODBC 1.0에서지원하며, 애플리케이션프로그램이 SQL 문장이실행되는시간에파라미터또는컬럼의데이터를드라이버로보내는것을허용하는이다. 이는문자, 바이너리또는특정데이터소스에서사용하는데이터타입등을갖는컬럼내의문자또는바이너리데이터의값을보내는데사용한다. 현재드라이버가유니코드데이터를지원하지않아도, 유니코드 C의데이터타입을바인드할수있도록지원한다. 제 3 장 tbcli 79
SQLPutData 의세부내용은다음과같다. 문법 SQLRETURN SQLPutData (SQLHSTMT SQLPOINTER SQLINTEGER StatementHandle, Data, StrLen_or_Ind); 파라미터 파라미터 StatementHandle Data StrLen_or_Ind 용도입력입력입력 문장핸들파라미터나컬럼의실제데이터를저장하는버퍼의포인터데이터의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 01004 07006 07S01 08S01 22001 22003 22007 22008 22012 22015 일반적인경고문자열데이터가오른쪽에서잘린경우제한된데이터타입의속성에위배되는경우디폴트파라미터가잘못사용된경우서버와의통신연결에실패한경우문자열데이터가오른쪽에서잘린경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 DATETIME 필드에오버플로우가발생한경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우 80 Tibero RDBMS tbcli 안내서
22018 HY000 HY001 HY008 HY009 HY010 HY013 HY019 HY020 HY090 HYT01 IM001 캐스트설정을위한문자값이잘못된경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러문자및바이너리가아닌데이터를나누어보낸경우 NULL 값을접합 (union) 하려고시도하는경우잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우드라이버가 SQLPutData 를지원하지않는경우 3.1.55. SQLRowCount ISO 92 CLI/ODBC 1.0에서지원하며, UPDATE, INSERT, DELETE 문에의해영향을받는테이블또는테이블과관련된뷰의로우수를반환하는이다. 이는가장최근에실행된 SQL 문장이 UPDATE, INSERT, DELETE 문이아니거나실행에실패한경우 0을반환한다. 이를호출하기전에 SQLExecute 또는 SQLExecDirect 를호출해야한다. SQLRowCount 의세부내용은다음과같다. 문법 SQLRETURN SQLRowCount (SQLHSTMT SQINTEGER * StatementHandle, RowCount); 파라미터 파라미터 StatementHandle RowCount 용도 입력 출력 문장핸들 실행결과의로우를저장할포인터 반환코드 제 3 장 tbcli 81
반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료된상태 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 HY000 HY001 HY010 HY013 HYT01 IM001 일반적인경고일반적인에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLRowCount 를지원하지않는경우 3.1.56. SQLSetConnectAttr ISO 92 CLI/ODBC 3.0에서지원하며, 특정데이터베이스연결에대한연결속성의값을설정하는이다. 설정된모든데이터베이스연결과명령문의옵션은 SQLFreeConnect 가호출되거나 SQLSet ConnectAttr 에의해재설정이될때까지유지된다. SQLSetConnectAttr 의세부내용은다음과같다. 문법 SQLRETURN SQLSetConnectAttr (SQLHDBC SQLINTEGER SQLPOINTER SQLINTEGER ConnectionHandle, Attribute, Value, StringLength); 파라미터 파라미터 ConnectionHandle Attribute Value 용도입력입력입력 연결핸들설정할속성설정할속성의값이들어있는버퍼의포인터 82 Tibero RDBMS tbcli 안내서
파라미터 StringLength 용도 입력 버퍼의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01S02 08002 08003 08S01 24000 3D000 HY000 HY001 HY009 HY010 HY011 HY013 HY024 HY090 HY092 HYC00 HYT01 IM001 IM009 일반적인경고옵션의값이바뀐경우이미사용중인데이터베이스연결의이름인경우데이터베이스연결이존재하지않는경우서버와의통신연결에실패한경우잘못된커서상태인경우잘못된카탈로그이름일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우시퀀스에러현재설정될수없는속성인경우메모리관리에러잘못된속성값잘못된문자열또는버퍼길이잘못된속성및옵션식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLSetConnectAttr 를지원하지않는경우 Translation DLL을로드하는것이불가능한경우 제 3 장 tbcli 83
3.1.57. SQLSetConnectOption (Deprecated) SQLSetConnectOption 는 ODBC 3.x 에서 SQLSetConnectAttr 로대체된다. 3.1.58. SQLSetCursorName ISO 92 CLI/ODBC 1.0에서지원하며, 현재실행중인 SQL 문장을커서이름으로연관시키는이다. 만약애플리케이션프로그램이이를호출하지않으면드라이버가 SQL 문장을실행하는데필요한커서이름을생성한다. SQLSetCursorName 의세부내용은다음과같다. 문법 SQLRETURN SQLSetCursorName (SQLHSTMT SQLCHAR * SQLSMALLINT StatementHandle, CursorName, NameLength); 파라미터 파라미터 StatementHandle CursorName NameLength 용도입력입력입력 문장핸들커서이름커서이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01004 24000 34000 일반적인경고문자열데이터가오른쪽에서잘린경우잘못된커서상태인경우잘못된커서이름 84 Tibero RDBMS tbcli 안내서
3C000 HY000 HY001 HY009 HY010 HY013 HY090 HYT01 IM001 중복된커서이름일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우드라이버가 SQLSetCursorName 를지원하지않는경우 3.1.59. SQLSetDescField ISO 92 CLI/ODBC 3.0 에서지원하며, 서술자레코드의한필드의값을설정하는이다. SQLSetDescField 의세부내용은다음과같다. 문법 SQLRETURN SQLSetDescField (SQLHDESC SQLSMALLINT SQLSMALLINT SQLPOINTER SQLINTEGER DescriptorHandle, RecNumber, FieldIdentifier, Value, BufferLength); 파라미터 파라미터 DescriptorHandle RecNumber 용도 입력 입력 서술자핸들서술자내에서해당필드의레코드번호 ( 레코드번호는 1부터시작한다.) FieldIdentifier Value BufferLength 입력 입력 입력 설정될필드의식별자 설정할값이들어있는버퍼의포인터 버퍼의길이 반환코드 제 3 장 tbcli 85
반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료된상태 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 01S02 07009 08S01 22001 HY000 HY001 HY010 HY013 HY016 HY021 HY090 HY091 HY092 HY105 HYT01 IM001 일반적인경고옵션의값이바뀐경우잘못된서술자인덱스서버와의통신연결에실패한경우문자열데이터가오른쪽에서잘린경우일반적인에러메모리할당에러시퀀스에러메모리관리에러구현로우서술자 (implementation row descriptor) 를수정할수없는경우모순이있는서술자정보잘못된문자열또는버퍼길이잘못된서술자의필드식별자잘못된속성및옵션식별자잘못된파라미터타입데이터베이스연결제한시간을초과한경우드라이버가 SQLSetDescField 를지원하지않는경우 3.1.60. SQLSetDescRec ISO 92 CLI/ODBC 3.0 에서지원하며, 컬럼또는파라미터데이터에사용되는버퍼와데이터타입에대해 여러개의서술자컬럼을설정하는이다. SQLSetDescRec 의세부내용은다음과같다. 문법 86 Tibero RDBMS tbcli 안내서
SQLRETURN SQLSetDescRec (SQLHDESC SQLSMALLINT SQLSMALLINT SQLSMALLINT SQLINTEGER SQLSMALLINT SQLSMALLINT SQLPOINTER SQLINTEGER * SQLINTEGER * DescriptorHandle, RecNumber, Type, SubType, Length, Precision, Scale, Data, StringLength, Indicator); 파라미터 파라미터 DescriptorHandle RecNumber Type SubType Length Precision Scale Data StringLength Indicator 용도입력입력입력입력입력입력입력입출력입출력입출력 서술자핸들설정할컬럼을포함하는서술자레코드서술자레코드의종류서술자레코드의세부종류서술자레코드의길이컬럼서술자레코드의정밀도컬럼서술자레코드의스케일컬럼서술자레코드의데이터포인터컬럼서술자레코드의문자열길이컬럼서술자레코드의지시자포인터컬럼 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 07009 08S01 일반적인경고잘못된서술자인덱스서버와의통신연결에실패한경우 제 3 장 tbcli 87
HY000 HY001 HY010 HY013 HY016 HY021 HY090 HYT01 IM001 일반적인에러메모리할당에러시퀀스에러메모리관리에러구현로우서술자를수정할수없는경우모순이있는서술자정보잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우드라이버가 SQLSetDescRec 를지원하지않는경우 3.1.61. SQLSetEnvAttr ISO 92 CLI/ODBC 3.0 에서지원하며, 현재환경핸들의속성값을설정하는이다. SQLSetEnvAttr 의세부내용은다음과같다. 문법 SQLRETURN SQLSetEnvAttr (SQLHENV SQLINTEGER SQLPOINTER SQLINTEGER EnvironmentHandle, Attribute, Value, StringLength); 파라미터 파라미터 EnvironmentHandle Attribute Value StringLength 용도입력입력입력입력 환경핸들설정할환경핸들의속성설정할환경핸들의속성값설정할환경핸들의속성값이문자형일때해당길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 88 Tibero RDBMS tbcli 안내서
반환코드 SQL_ERROR 치명적인에러가발생한상태 01000 01S02 HY000 HY001 HY009 HY010 HY013 HY024 HY090 HY092 HYC00 일반적인경고옵션의값이바뀐경우일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된속성값잘못된문자열또는버퍼길이잘못된속성및옵션식별자선택적인기능이구현되지않은경우 3.1.62. SQLSetParam (Deprecated) SQLSetParam 는 ODBC 3.x 에서 SQLBindParameter 로대체된다. 3.1.63. SQLSetPos ODBC 1.0에서지원하며, 로우집합내에서커서의위치를설정하거나애플리케이션프로그램이로우집합내의데이터를리프레시 (Refresh) 하도록허용하는이다. 또한, 이는결과집합내의데이터를갱신또는제거할수있다. SQLSetPos 의세부내용은다음과같다. 문법 SQLRETURN SQLSetPos (SQLHSTMT SQLUSMALLINT SQLUSMALLINT SQLUSMALLINT StatementHandle, RowNumber, Operation, LockType); 파라미터 제 3 장 tbcli 89
파라미터 StatementHandle RowNumber Operation LockType 용도입력입력입력입력 문장핸들로우집합내의로우의위치수행할연산연산이수행된후로우에대한잠금의종류 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_NEED_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 01001 01004 01S01 01S07 07006 07009 21S02 22001 22003 22007 22008 22015 22018 23000 일반적인경고커서연산이충돌한경우문자열데이터가오른쪽에서잘린경우로우에에러가있는경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스테이블의 degree가컬럼과일치하지않은경우문자열데이터가오른쪽에서잘린경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 DATETIME 필드에오버플로우가발생한경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우무결성제약조건에위배되는경우 90 Tibero RDBMS tbcli 안내서
24000 40001 40003 42000 44000 HY000 HY001 HY008 HY010 HY011 HY013 HY090 HY092 HY107 HY109 HYC00 HYT00 HYT01 IM001 잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우문법에러또는접근위배가발생한경우 WITH CHECK OPTION에위배되는경우일반적인에러메모리할당에러연산이취소된경우시퀀스에러현재설정될수없는속성인경우메모리관리에러잘못된문자열또는버퍼길이잘못된속성식별자결과집합영역내에서존재하지않는로우번호를참조하려는경우잘못된커서위치선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLSetPos 를지원하지않는경우 3.1.64. SQLSetScrollOptions (Deprecated) SQLSetScrollOptions 는 ODBC 3.x 에서 SQLGetInfo 와 SQLSetStmtAttr 로대체된 다. 3.1.65. SQLSetStmtAttr ISO 92 CLI/ODBC 3.0 에서지원하며, 특정문장핸들의속성을설정하는이다. 새로운 SQLSetStm tattr 에의해속성이재설정되거나문장핸들이삭제되기전에는기존에설정된속성이유지된다. SQLSetStmtAttr 의세부내용은다음과같다. 문법 제 3 장 tbcli 91
SQLRETURN SQLSetStmtAttr (SQLHSTMT SQLINTEGER SQLPOINTER SQLINTEGER StatementHandle, Attribute, Value, StringLength); 파라미터 파라미터 StatementHandle Attribute Value StringLength 용도입력입력입력입력 문장핸들설정할문장핸들의속성설정할문장핸들의속성값설정할문장핸들의속성값이문자형일때해당길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 01S02 08S01 24000 HY000 HY001 HY009 HY010 HY011 HY013 HY017 HY024 HY090 일반적인경고옵션의값이바뀐경우서버와의통신연결에실패한경우잘못된커서상태인경우일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우시퀀스에러현재설정될수없는속성인경우메모리관리에러자동으로할당된서술자핸들을잘못사용한경우잘못된속성값잘못된문자열또는버퍼길이 92 Tibero RDBMS tbcli 안내서
HY092 HYC00 HYT01 IM001 잘못된속성및옵션식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLSetStmtAttr 를지원하지않는경우 3.1.66. SQLSetStmtOption (Deprecated) SQLSetStmtOption 는 ODBC 3.x 에서 SQLSetStmtAttr 로대체된다. 3.1.67. SQLSpecialColumns Xopen CLI/ISO 92 CLI/ODBC 1.0에서지원하며, 테이블의특정컬럼의정보를검색하는이다. 검색되는컬럼의정보로는해당테이블내의하나의로우를유일하게설정하는컬럼의최적집합 (optimal set) 그리고트랜잭션이로우의임의의값을변경할때, 자동으로변경되는컬럼이있다. SQLSpecialColumns 의세부내용은다음과같다. 문법 SQLRETURN SQLSpecialColumns (SQLHSTMT SQLUSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLUSMALLINT SQLUSMALLINT StatementHandle, IdentifierType, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3, Scope, Nullable); 파라미터 파라미터 StatementHandle IdentifierType CatalogName NameLength1 SchemaName 용도입력입력입력입력입력 문장핸들반환되는컬럼의타입카탈로그이름카탈로그이름의길이스키마이름 제 3 장 tbcli 93
파라미터 NameLength2 TableName NameLength3 Scope Nullable 용도입력입력입력입력입력 스키마이름의길이테이블이름테이블이름의길이 ROWID의최소범위 NULL 값의허용여부 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HY097 HY098 HY099 HYC00 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이영역밖의컬럼인경우영역밖의범위 (scope) 타입인경우영역밖의 Nullable 타입인경우선택적인기능이구현되지않은경우 94 Tibero RDBMS tbcli 안내서
HYT00 HYT01 IM001 제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLSpecialColumns 를지원하지않는경우 3.1.68. SQLStatistics Xopen CLI/ODBC 1.0 에서지원하며, 특정테이블의인덱스통계정보를검색하는이다. 이때정보는 결과집합의형태로반환된다. SQLStatistics 의세부내용은다음과같다. 문법 SQLRETURN SQLStatistics (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLUSMALLINT SQLUSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3, Unique, Reserved); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 TableName NameLength3 Unique Reserved 용도입력입력입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이테이블이름테이블이름의길이인덱스의종류 SQL_ENSURE로설정된경우데이터베이스에서무조건통계정보를가져온다. 이외에는사용할수없다. 제 3 장 tbcli 95
반환코드 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 1000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HY100 HY101 HYC00 HYT00 HYT01 IM001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이영역밖의고유옵션타입 (uniqueness option type) 영역밖의정확도옵션타입 (accuracy option type) 선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLStatistics 를지원하지않는경우 3.1.69. SQLTablePrivileges ISO 92 CLI/ODBC 1.0 에서지원하며, 각테이블과관련된테이블이나권한목록의정보를반환하는 이다. 이때정보는결과집합의형태로반환한다. 96 Tibero RDBMS tbcli 안내서
SQLTablePrivileges 의세부내용은다음과같다. 문법 SQLRETURN SQLTablePrivileges (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3); 파라미터 파라미터 StatementHandle CatalogName NameLength1 SchemaName NameLength2 TableName NameLength3 용도입력입력입력입력입력입력입력 문장핸들카탈로그이름카탈로그이름의길이스키마이름스키마이름의길이테이블이름테이블이름의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우 제 3 장 tbcli 97
40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 HYT01 IM001 실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우데이터베이스연결제한시간을초과한경우드라이버가 SQLTablePrivileges 를지원하지않는경우 3.1.70. SQLTables Xopen CLI/ISO 92 CLI/ODBC 1.0에서지원하며, 연결된특정데이터소스의데이터사전에저장된테이블이름의리스트의정보를반환하는이다. 이때정보는결과집합의형태로반환되므로 SELECT 문에의해생성된결과집합과같이사용된다. SQLTables 의세부내용은다음과같다. 문법 SQLRETURN SQLTables (SQLHSTMT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT SQLCHAR * SQLSMALLINT StatementHandle, CatalogName, NameLength1, SchemaName, NameLength2, TableName, NameLength3, TableType, NameLength4); 파라미터 파라미터 StatementHandle CatalogName 용도 입력 입력 문장핸들 카탈로그이름 98 Tibero RDBMS tbcli 안내서
파라미터 NameLength1 SchemaName NameLength2 TableName NameLength3 TableType NameLength4 용도입력입력입력입력입력입력입력 카탈로그이름의길이스키마이름스키마이름의길이테이블이름테이블이름의길이테이블의데이터타입테이블의데이터타입의길이 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 08S01 24000 40001 40003 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 HYT00 일반적인경고서버와의통신연결에실패한경우잘못된커서상태인경우직렬화에실패한경우실행이완료되지않았고트랜잭션의상태를알수없는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우제한시간을초과한경우 제 3 장 tbcli 99
HYT01 IM001 데이터베이스연결제한시간을초과한경우 드라이버가 SQLTables 를지원하지않는경우 3.1.71. SQLTransact (Deprecated) 수행된데이터베이스의모든변경에대해커밋을하거나롤백을하는이다. 만약트랜잭션이사용중이면애플리케이션프로그램은데이터베이스의연결이끊기기전에이를호출해야한다. 이가호출되면열린상태인커서가닫히고처리되지않은결과집합은삭제된다. 관련 SQLTransact 는 ODBC 3.x에서 SQLEndTran 로대체된다. 3.2. Tibero RDBMS API 3.2.1. SQLAllocEnv2 (Deprecated) SQLAllocEnv 와같이환경핸들과연관된메모리를할당하고초기화하는이다. 또한, tbcli를사용하는애플리케이션프로그램이멀티스레드를사용하지는지의여부를설정할수있다. 멀티스레드는운영체제별로설정하는방법이다음과같이다르다. 운영체제 UNIX 계열 Windows 계열 UNIX 계열은디폴트로멀티스레드를사용하지않는것으로설정되어있다. 멀티스레드를사용하려면반드시마지막파라미터인 UseMultiThread의값에 'TRUE' 를설정해줘야한다. UseMultiThread의값에상관없이멀티스레드를사용할수있으므로 SQLAllocEnv2 또는 SQLAllocHandle2 를사용하지않기를권장한다. 이는환경핸들을처음할당할때사용해야만멀티스레드의사용여부를적용할수있다. 관련 SQLAllocEnv2 는 SQLAllocHandle2 로대체된다. 100 Tibero RDBMS tbcli 안내서
3.2.2. SQLAllocHandle2 환경, 연결, 문장핸들을할당하고, tbcli를사용하는프로그램이멀티스레드를사용하는지의여부를설정할수있는이다. 멀티스레드를운영체제별로설정하는방법은 SQLAllocHandle 와같다. SQLAllocHandle2 의세부내용은다음과같다. 문법 SQLRETURN SQLAllocHandle (SQLSMALLINT SQLHANDLE SQLHANDLE * SQLSMALLINT HandleType, InputHandle, OutputHandle, UseMultiThread); 파라미터 파라미터 HandleType 용도 입력 할당받을핸들의타입이다. 아래타입중하나의값을갖는다. - SQL_HANDLE_ENV - SQL_HANDLE_DBC - SQL_HANDLE_STMT InputHandle 입력 입력핸들이다. 핸들의타입에따라다른값을갖는다. - SQL_HANDLE_ENV: SQL_NULL_HANDLE - SQL_HANDLE_DBC: 환경핸들 - SQL_HANDLE_STMT: 연결핸들 OutputHandle 출력 할당받을핸들의포인터이다. 환경핸들이아닌다른핸들을할당할때 SQL_ERROR를반환하는경우, OutputHandle 파라미터를 SQL_NULL_HDBC, SQL_NULL_HSTMT 로할당한다. UseMultiThread 입력 멀티스레드의사용여부를설정한다. 멀티스레드환경에서 tbcli 를사용하는경우이값을 SQL_TRUE 로설 정한다. 제 3 장 tbcli 101
반환코드 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태치명적인에러가발생한상태 01000 08003 HY000 HY001 HY009 HY010 HY013 HY014 HY092 HYC00 HYT01 IM001 일반적인경고데이터베이스연결이존재하지않는경우일반적인에러메모리할당에러 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러한정된범위의핸들개수를초과한경우잘못된속성및옵션식별자선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLAllocHandle2 를지원하지않는경우 관련 이는 SQLAllocConnect, SQLAllocEnv2, SQLAllocstmt 를대체하는이다. 3.2.3. SQLLobClose 연산의대상이되는 LOB를닫는이다. 트랜잭션이완료되기전에대상이되는 LOB가반드시닫혀야에러가발생하지않는다. 또한열지않은 LOB를닫으려할때에도에러가발생한다. 그리고 Open 및 Close를호출하지않고각 LOB와관련된를호출하면마다내부적으로 Open 및 Close를수행한다. SQLLobClose 의세부내용은다음과같다. 102 Tibero RDBMS tbcli 안내서
문법 SQLRETURN SQLLobClose (SQLHSTMT SQLINTEGER SQLINTEGER * StatementHandle, Locator, Indicator); 파라미터 파라미터 StatementHandle Locator Indicator 용도입력입력입력 문장핸들 LOB locator NULL 지시자 (indicator) 의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_INVALID_HANDLE SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 HY000 HY001 HY010 HY013 HYT01 IM001 일반적인경고일반적인에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLLobClose 를지원하지않는경우 3.2.4. SQLLobGetData 원하는위치의대용량객체형의데이터를가져오는이다. 단, BLOB 와 CLOB 에따라가져오는데이 터가다르다. SQLLobGetData 의세부내용은다음과같다. 문법 제 3 장 tbcli 103
SQLRETURN SQLLobGetData (SQLHSTMT SQLINTEGER SQLBIGINT SQLINTEGER * SQLINTEGER * SQLSMALLINT SQLPOINTER SQLINTEGER SQLINTEGER * StatementHandle, SourceLocator, Offset, ByteLength, CharLength, TargetCType, Data, BufferLength, Indicator); 파라미터 파라미터 StatementHandle SourceLocator Offset ByteLength CharLength TargetCType Data BufferLength Indicator 용도입력입력입력입력입력출력출력출력입력 문장핸들 LOB locator NULL 지시자 (indicator) 의포인터 BLOB 타입의반환될데이터의길이 CLOB 타입의반환될데이터의길이반환될데이터의 C 타입반환될데이터포인터반환될데이터버퍼의길이 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료되었으나, 경고메시지가있는상태 가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 01000 일반적인경고 104 Tibero RDBMS tbcli 안내서
01004 01S07 07006 07009 08S01 22002 22003 22007 22012 22015 22018 24000 HY000 HY001 HY003 HY008 HY009 HY010 HY013 HY090 HY109 HYC00 HYT01 IM001 문자열데이터가오른쪽에서잘린경우숫자타입이나날짜타입의일부정보가잘린경우제한된데이터타입의속성에위배되는경우잘못된서술자인덱스서버와의통신연결에실패한경우지시자변수가요구되었으나제공되지않은경우한정된범위를초과한숫자값인경우잘못된 DATETIME 타입의포맷인경우 0으로나눈경우 INTERVAL 필드에오버플로우가발생한경우캐스트설정을위한문자값이잘못된경우잘못된커서상태인경우일반적인에러메모리할당에러잘못된애플리케이션의버퍼타입연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이잘못된커서위치선택적인기능이구현되지않은경우데이터베이스연결제한시간을초과한경우드라이버가 SQLLobGetData 를지원하지않는경우 3.2.5. SQLLobGetLength 특정 LOB 데이터의길이를검색하는이다. BLOB 와 CLOB 데이터타입모두에사용할수있다. SQLLobGetLength 의세부내용은다음과같다. 문법 제 3 장 tbcli 105
SQLRETURN SQLLobGetLength (SQLHSTMT SQLINTEGER SQLBIGINT * SQLINTEGER * StatementHandle, Locator, StringLength, Indicator); 파라미터 파라미터 StatementHandle Locator StringLength Indicator 용도입력입력출력입력 문장핸들 LOB locator 반환될 LOB 데이터의길이 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 치명적인에러가발생한상태 01000 07006 08S01 HY000 HY001 HY008 HY009 HY010 HY013 HY019 HY020 HY090 HYC00 일반적인경고제한된데이터타입의속성에위배되는경우서버와의통신연결에실패한경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러문자및바이너리가아닌데이터를나누어보낸경우 NULL 값을접합하려고시도하는경우잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우 106 Tibero RDBMS tbcli 안내서
0F001 LOB 의토큰에아무런값도없는경우 3.2.6. SQLLobGetPosition LOB 데이터내에서원하는문자열의위치를검색하는이다. SQLLobGetPosition 의세부내용은다음과같다. 문법 SQLRETURN SQLLobGetPosition (SQLHSTMT SQLINTEGER SQLINTEGER SQLCHAR * SQLINTEGER SQLBIGINT SQLBIGINT * SQLINTEGER * StatementHandle, SourceLocator, SearchLocator, SearchLiteral, SearchLiteralLength, FromPosition, LocatedAt, Indicator); 파라미터 파라미터 StatementHandle SourceLocator SearchLocator SearchLiteral SearchLiteralLength FromPosition LocatedAt Indicator 용도입력입력입력입력입력입력출력입력 문장핸들 LOB locator LOB locator 검색할문자열검색할문자열의길이검색을시작할위치반환할데이터의위치값 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING 가성공적으로완료되었으나, 경고메시지가있는상태 입력파라미터에주어진핸들이유효하지않은상태 이전에실행한 SQL 문장이완료되지않은상태 제 3 장 tbcli 107
반환코드 SQL_ERROR 치명적인에러가발생한상태 01000 07006 08S01 42818 HY000 HY001 HY008 HY009 HY010 HY013 HY090 HYC00 0F001 일반적인경고제한된데이터타입의속성에위배되는경우서버와의통신연결에실패한경우연산자또는의피연산자가호환되지않는경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러잘못된문자열또는버퍼길이선택적인기능이구현되지않은경우 LOB의토큰에아무런값도없는경우 3.2.7. SQLLobOpen 연산의대상이될 LOB 데이터를여는이다. 이는각종 LOB 연산을할때항상먼저선언되어야한다. 그리고 Open 및 Close를호출하지않고각 LOB와관련된를호출하면마다내부적으로 Open 및 Close를수행한다. 한트랜잭션에서같은 LOB 인스턴스를두번열면에러가발생한다. 또한, 다른 locator를사용해다시열려고해도마찬가지로에러가발생한다. SQLLobOpen 의세부내용은다음과같다. 문법 SQLRETURN SQLLobOpen (SQLHSTMT SQLINTEGER SQLSMALLINT SQLINTEGER * StatementHandle, Locator, Mode, Indicator); 파라미터 108 Tibero RDBMS tbcli 안내서
파라미터 StatementHandle SourceLocator Mode Indicator 용도입력입력입력입력 문장핸들 LOB locator 반환할데이터의위치값 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 24000 HY000 HY001 HY010 HY013 HYT01 IM001 일반적인경고잘못된커서상태인경우일반적인에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우드라이버가 SQLLobOpen 를지원하지않는경우 3.2.8. SQLLobPutData LOB 내에서원하는위치에데이터를쓰는이다. SQLLobPutData 의세부내용은다음과같다. 문법 SQLRETURN SQLLobPutData (SQLHSTMT SQLINTEGER * StatementHandle, DestLocator, 제 3 장 tbcli 109
SQLBIGINT SQLSMALLINT SQLPOINTER SQLINTEGER * SQLINTEGER * SQLINTEGER * DestOffset, SourceCType, Source, ByteLength, CharLength, Indicator); 파라미터 파라미터 StatementHandle DestLocator DestOffset SourceCType Source ByteLength CharLength Indicator 용도입력입력입력입력입력출력출력입력 문장핸들 LOB locator LOB 데이터에쓸위치쓸데이터의 C의타입쓸데이터의포인터 BLOB 타입의쓴데이터의길이 CLOB 타입의쓴데이터의길이 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 24000 HY000 HY001 HY010 HY013 HYT01 일반적인경고잘못된커서상태인경우일반적에러메모리할당에러시퀀스에러메모리관리에러데이터베이스연결제한시간을초과한경우 110 Tibero RDBMS tbcli 안내서
IM001 드라이버가 SQLLobPutData 를지원하지않는경우 3.2.9. SQLLobTruncate LOB 데이터를잘라내는이다. SQLLobTruncate 의세부내용은다음과같다. 문법 SQLRETURN SQLLobTruncate (SQLHSTMT SQLINTEGER * SQLBIGINT SQLINTEGER * StatementHandle, Locator, NewLength, Indicator); 파라미터 파라미터 StatementHandle Locator NewLength Indicator 용도입력입력입력입력 문장핸들 LOB locator 잘린후 LOB 데이터의새로운길이 NULL 지시자의포인터 반환코드 반환코드 SQL_SUCCESS 가성공적으로완료된상태 SQL_SUCCESS_WITH_INFO SQL_INVALID_HANDLE SQL_STILL_EXECUTING SQL_ERROR 가성공적으로완료되었으나, 경고메시지가있는상태입력파라미터에주어진핸들이유효하지않은상태이전에실행한 SQL 문장이완료되지않은상태치명적인에러가발생한상태 01000 01004 일반적인경고 문자열데이터가오른쪽에서잘린경우 제 3 장 tbcli 111
07006 07S01 08S01 HY000 HY001 HY008 HY009 HY010 HY013 HY019 HY090 HYT01 제한된데이터타입의속성에위배되는경우디폴트파라미터가잘못사용된경우서버와의통신연결에실패한경우일반적인에러메모리할당에러연산이취소된경우 NULL 포인터를잘못사용한경우시퀀스에러메모리관리에러문자및바이너리가아닌데이터를나누어보낸경우잘못된문자열또는버퍼길이데이터베이스연결제한시간을초과한경우 112 Tibero RDBMS tbcli 안내서
제 4 장 tbcli 에러메시지 본장에서는 tbcli 프로그램을실행하는과정에서발생할수있는에러를한다. 4.1. 반환코드 모든 tbcli 는실행후반환코드를반환한다. 반환코드는 SQLRETURN 타입이며미리정해진값중의하나이다. tbcli 는다음표와같이반환되는반환코드에따라 tbcli 프로그램의상태를확인할수있다. 반환코드 SQL_SUCCESS SQL_SUCCESS_WITH_INFO SQL_NO_DATA 가성공적으로완료된상태가성공적으로완료되었으나, 경고메시지가있는상태가성공적으로완료되었으나, 관련된데이터를찾을수없는상태 ( 예 : 주어진 SQL 문장에의해갱신된로우가없는경우 ) SQL_INVALID_HANDLE SQL_NEED_DATA 입력파라미터에주어진핸들이유효하지않은상태 SQL 문장을실행하기위해데이터가더필요한상태 ( 예 : 파라미터 ) SQL_STILL_EXECUTING SQL_ERROR 이전에실행한 SQL 문장이완료되지않은상태 치명적인에러가발생한상태 이러한반환코드는추가적으로 정보가존재할수있다. 참고 에대한내용은관련 API 나 4.2. 을참고한다. 4.2. 본절에서는 정보를코드순으로나열하고이를한다. 추가로해당 코드를 반환할수있는도포함하여기술한다. 제 4 장 tbcli 에러메시지 113
4.2.1. 01000 ~01007 01000 일반적인경고를뜻하는에러이다. 다음의를제외한모든 SQLError, SQLGetDiagField, SQLGetDiagRec 01001 커서연산이충돌했을때발생하는에러이다. SQLExecDirec, SQLExecute, SQLParamDat, SQLSetPos 01002 데이터베이스연결을해제하는중에발생하는에러이다. SQLError, SQLGetDiagField, SQLGetDiagRec 01003 설정된에서 NULL 값을제거한경우에발생하는에러이다. SQLExecDirect, SQLExecute, SQLParamData 01004 문자열데이터가오른쪽에서잘릴때발생하는에러이다. SQLBrowseConnect, SQLBulkOperations, SQLColAttribute, SQLDataSources, SQLDescribeCol, SQLDriverConnect, SQLDrivers, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetConnectAttr, SQLGetCursorName, SQLGetData, SQLGetDescField, SQLGetDescRec, SQLGetEnvAttr, SQLGetInfo, SQLGetStmtAttr, SQLNativeSql, SQLParamData, SQLPutData, SQLSetCursorName 01006 취소되지않은특권일때발생하는에러이다. SQLExecDirec, SQLExecute, SQLParamData 114 Tibero RDBMS tbcli 안내서
01007 부여되지않은특권일때발생하는에러이다. SQLExecDirect, SQLExecute, SQLParamData 4.2.2. 01S00 ~ 01S09 01S00 유효하지않은연결문자열의속성일때발생하는에러이다. SQLBrowseConnect, SQLDriverConnect 01S01 로우에에러가있는경우발생한다. SQLBulkOperations, SQLExtendedFetch, SQLSetPos 01S02 옵션값이변경되었을때발생하는에러이다. 다음의를제외한모든 SQLBrowseConnect, SQLConnect, SQLDriverConnect, SQLExecDirect, SQLExecute, SQLParamData, SQLPrepare, SQLSetConnectAttr, SQLSetDescField, SQLSetEnvAttr, SQLSetStmtAttr 01S06 결과집합의첫번째로우가반환되기전에페치를시도한경우발생하는에러이다. SQLExtendedFetch, SQLFetchScroll 01S07 숫자타입이나날짜타입의일부정보가잘릴때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLSetPos 제 4 장 tbcli 에러메시지 115
01S08 DSN 파일 (.dsn) 을저장하지못할때발생하는에러이다. SQLDriverConnect 01S09 잘못된예약어일때발생하는에러이다. SQLDriverConnect 4.2.3. 07001 ~ 07009 07001 파라미터의숫자가잘못되었을때발생하는에러이다. SQLExecDirect, SQLExecute 07002 COUNT 필드에오류가있는경우에발생하는에러이다. SQLExecDirect, SQLExecute, SQLParamData 07005 커서의범위가아닌준비된문장인경우에발생하는에러이다. SQLColAttribute, SQLDescribeCol 07006 제한된데이터타입의속성에위배될때발생하는에러이다. SQLBindCol, SQLBindParameter, SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLPutData, SQLSetPos 07009 잘못된서술자인덱스일때발생하는에러이다. 116 Tibero RDBMS tbcli 안내서
SQLBindCol, SQLBindParameter, SQLBulkOperations, SQLColAttribute, SQLDescribeCol, SQLDescribeParam, SQLFetch, SQLFetchScroll, SQLGetData, SQLGetDescField, SQLGetDescRec, SQLParamData, SQLSetDescField, SQLSetDescRec, SQLSetPos 4.2.4. 07S01 07S01 디폴트파라미터를잘못사용한경우발생하는에러이다. SQLExecDirect, SQLExecute, SQLParamData, SQLPutData 4.2.5. 08001 ~ 08007 08001 클라이언트가데이터소스에연결할수없을때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect 08002 이미사용중인데이터베이스연결명일때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect, SQLSetConnectAttr 08003 연결이존재하지않을때발생하는에러이다. SQLAllocHandle, SQLDisconnect, SQLEndTran, SQLGetConnectAttr, SQLGetInfo, SQLNativeSql, SQLSetConnectAttr 08004 서버가연결을거부할때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect 제 4 장 tbcli 에러메시지 117
08007 트랜잭션을수행하는중에연결이실패한경우발생하는에러이다. SQLEndTran 4.2.6. 08S01 08S01 통신연결이실패한경우발생하는에러이다. SQLBrowseConnect, SQLColumnPrivileges, SQLColumns, SQLConnect, SQLCopyDesc, SQLDescribeCol, SQLDescribeParam, SQLDriverConnect, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetConnectAttr, SQLGetData, SQLGetDescField, SQLGetDescRec, SQLGetFunctions, SQLGetInfo, SQLGetTypeInfo, SQLMoreResults, SQLNativeSql, SQLNumParams, SQLNumResultCols, SQLParamData, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLPutData, SQLSetConnectAttr, SQLSetDescField, SQLSetDescRec, SQLSetEnvAttr, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 4.2.7. 21S01 ~ 21S02 21S01 삽입될값의리스트가컬럼과일치하지않을때발생하는에러이다. SQLExecDirect, SQLPrepare 21S02 파생된테이블의 degree 가컬럼과일치하지않을때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLParamData, SQLPrepare, SQLSetPos 118 Tibero RDBMS tbcli 안내서
4.2.8. 22001 ~ 22026 22001 문자열데이터가오른쪽에서잘릴때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLFetch, SQLFetchScroll, SQLParamData, SQLPutData, SQLSetDescField, SQLSetPos 22002 지시자변수가요구되었으나, 제공되지않았을때발생하는에러이다. SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData 22003 한정된범위를초과한숫자값일때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLGetInfo, SQLParamData, SQLPutData, SQLSetPos 22007 유효하지않은날짜형 (DATETIME) 형식일때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLPutData, SQLSetPos 22008 날짜형필드에오버플로우가발생했을때나타나는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLParamData, SQLPutData 제 4 장 tbcli 에러메시지 119
22012 0 으로나누었을때발생하는에러이다. SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLPutData 22015 INTERVAL 필드에오버플로우가발생했을때나타나는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLPutData, SQLSetPos 22018 캐스트설정을위한문자값이잘못된경우에발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, SQLParamData, SQLPutData, SQLSetPos 22019 잘못된이스케이프문자일때발생하는에러이다. SQLExecDirect, SQLExecute, SQLPrepare 22025 잘못된이스케이프시퀀스일때발생하는에러이다. SQLExecDirect, SQLExecute, SQLPrepare 22026 잘못된길이를가진문자열데이터일때발생하는에러이다. SQLParamData 120 Tibero RDBMS tbcli 안내서
4.2.9. 23000, 24000, 25000 23000 무결성제약조건에위배될때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLParamData, SQLSetPos 24000 잘못된커서상태일때발생하는에러이다. SQLBulkOperations, SQLCloseCursor, SQLColumnPrivileges, SQLColumns, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetData, SQLGetStmtAttr, SQLGetTypeInfo, SQLNativeSql, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSetConnectAttr, SQLSetCursorName, SQLSetPos, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 25000 잘못된트랜잭션상태일때발생하는에러이다. SQLDisconnect 4.2.10. 25S01 ~ 25S03 25S01 트랜잭션상태일때발생하는에러이다. SQLEndTran 25S02 트랜잭션이아직활성화중일때발생하는에러이다. 제 4 장 tbcli 에러메시지 121
SQLEndTran 25S03 트랜잭션이롤백되었을때발생하는에러이다. SQLEndTran 4.2.11. 28000, 34000 28000 잘못된권한을설정했을때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect 34000 잘못된커서이름일때발생하는에러이다. SQLExecDirect, SQLPrepare, SQLSetCursorName 4.2.12. 3C000 ~ 3F000 3C000 중복된커서이름일때발생하는에러이다. SQLSetCursorName 3D000 잘못된카탈로그이름일때발생하는에러이다. SQLExecDirect, SQLPrepare, SQLSetConnectAttr 3F000 잘못된스키마이름일때발생하는에러이다. SQLExecDirect, SQLPrepare 122 Tibero RDBMS tbcli 안내서
4.2.13. 40001 ~ 40003, 42000 40001 직렬화에실패했을때발생하는에러이다. SQLBulkOperations, SQLColumnPrivileges, SQLColumns, SQLEndTran, SQLExecDirect, SQLExecute, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetTypeInfo, SQLMoreResults, SQLParamData, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSetPos, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 40002 무결성제약조건에위배될때발생하는에러이다. SQLEndTran 40003 실행이완료되지않았고, 트랜잭션의상태를알수없을때발생하는에러이다. SQLBulkOperations, SQLColumnPrivileges, SQLColumns, SQLExecDirect, SQLExecute, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetTypeInfo, SQLMoreResults, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLParamData, SQLSetPos, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 42000 문법에러또는접근위배가발생한경우나타나는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLParamData, SQLPrepare, SQLSetPos 제 4 장 tbcli 에러메시지 123
4.2.14. 42S01 ~ 42S22, 44000 42S01 기반테이블또는뷰가이미존재할때발생하는에러이다. SQLExecDirect, SQLPrepare 42S02 기반테이블또는뷰를찾을수없을때발생하는에러이다. SQLExecDirect, SQLPrepare 42S11 인덱스가이미존재할때발생하는에러이다. SQLExecDirect, SQLPrepare 42S12 인덱스를찾을수없을때발생하는에러이다. SQLExecDirect, SQLPrepare 42S21 컬럼이이미존재할때발생하는에러이다. SQLExecDirect, SQLPrepare 42S22 컬럼을찾을수없을때발생하는에러이다. SQLExecDirect, SQLPrepare 44000 WITH CHECK OPTION 에위배될때발생하는에러이다. SQLBulkOperations, SQLExecDirect, SQLExecute, SQLParamData, SQLSetPos 124 Tibero RDBMS tbcli 안내서
4.2.15. HY000 ~ HY024 HY000 일반적인에러를뜻하는에러이다. All ODBC functions except:, SQLError, SQLGetDiagField, SQLGetDiagRec HY001 메모리할당에실패했을때발생하는에러이다. All ODBC functions except:, SQLError, SQLGetDiagField, SQLGetDiagRec HY003 잘못된애플리케이션의버퍼타입일때발생하는에러이다. SQLBindCol, SQLBindParameter, SQLGetData HY004 잘못된 SQL 의데이터타입일때발생하는에러이다. SQLBindParameter, SQLGetTypeInfo HY007 해당문장이준비되지않았을때발생하는에러이다. SQLCopyDesc, SQLGetDescField, SQLGetDescRec HY008 연산이취소되었을때발생하는에러이다. SQLBulkOperations, SQLColAttribute, SQLColumnPrivileges, SQLColumns, SQLDescribeCol, SQLDescribeParam, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetData, SQLGetTypeInfo, SQLMoreResults, SQLNumParams, 제 4 장 tbcli 에러메시지 125
SQLNumResultCols, SQLParamData, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLPutData, SQLSetPos, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables HY009 NULL 포인터를잘못사용했을때발생하는에러이다. SQLAllocHandle, SQLBindParameter, SQLBulkOperations, SQLColumnPrivileges, SQLColumns, SQLExecDirect, SQLForeignKeys, SQLGetCursorName, SQLGetData, SQLGetFunctions, SQLNativeSql, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLPutData, SQLSetConnectAttr, SQLSetCursorName, SQLSetEnvAttr, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables HY010 시퀀스에문제가있는경우발생하는에러이다. SQLAllocHandle, SQLBindCol, SQLBindParameter, SQLBulkOperations, SQLCloseCursor, SQLColAttribute, SQLColumnPrivileges, SQLColumns, SQLCopyDesc, SQLDescribeCol, SQLDescribeParam, SQLDisconnect, SQLEndTran, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLFreeHandle, SQLFreeStmt, SQLGetConnectAttr, SQLGetCursorName, SQLGetData, SQLGetDescField, SQLGetDescRec, SQLGetFunctions, SQLGetStmtAttr, SQLGetTypeInfo, SQLMoreResults, SQLNumParams, SQLNumResultCols, SQLParamData, SQLPrepare, 126 Tibero RDBMS tbcli 안내서
SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLPutData, SQLRowCount, SQLSetConnectAttr, SQLSetCursorName, SQLSetDescField, SQLSetEnvAttr, SQLSetDescRec, SQLSetPos, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables HY011 현재설정될수없는속성일때발생하는에러이다. SQLBulkOperations, SQLParamData, SQLSetConnectAttr, SQLSetPos, SQLSetStmtAttr HY012 잘못된트랜잭션의연산코드일때발생하는에러이다. SQLEndTran HY013 메모리관리에에러가발생한경우나타나는에러이다. All ODBC functions except:, SQLGetDiagField, SQLGetDiagRec HY014 한정된핸들개수를초과했을때발생하는에러이다. SQLAllocHandle HY015 사용할수있는커서이름이없을때발생하는에러이다. SQLGetCursorName HY016 구현로우서술자를수정할수없을때발생하는에러이다. 제 4 장 tbcli 에러메시지 127
SQLCopyDesc, SQLSetDescField, SQLSetDescRec HY017 자동으로할당된서술자핸들을잘못사용했을때발생하는에러이다. SQLFreeHandle, SQLSetStmtAttr HY018 서버가취소요구를거부했을때발생하는에러이다. SQLCancel HY019 비문자열 (Non-character) 과비이진데이터 (Non-binary data) 를여러조각으로나누어보냈 을때발생하는에러이다. SQLPutData HY020 NULL 값을접합하려고시도했을때발생하는에러이다. SQLPutData HY021 모순이있는서술자정보일때발생하는에러이다. SQLBindParameter, SQLCopyDesc, SQLGetDescField, SQLSetDescField, SQLSetDescRec HY024 잘못된속성값일때발생하는에러이다. SQLSetConnectAttr, SQLSetEnvAttr, SQLSetStmtAttr 128 Tibero RDBMS tbcli 안내서
4.2.16. HY090 ~ HY111 HY090 잘못된문자열또는버퍼길이일때발생하는에러이다. SQLBindCol, SQLBindParameter, SQLBrowseConnect, SQLBulkOperations, SQLColAttribute, SQLColumnPrivileges, SQLColumns, SQLConnect, SQLDataSources, SQLDescribeCol, SQLDriverConnect, SQLDrivers, SQLExecDirect, SQLExecute, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetConnectAttr, SQLGetCursorName, SQLGetData, SQLGetDescField, SQLGetInfo, SQLGetStmtAttr, SQLNativeSql, SQLParamData, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLPutData, SQLSetConnectAttr, SQLSetCursorName, SQLSetDescField, SQLSetDescRec, SQLSetEnvAttr, SQLSetStmtAttr, SQLSetPos, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables HY091 잘못된서술자의필드식별자일때발생하는에러이다. SQLColAttribute, SQLGetDescField, SQLSetDescField HY092 잘못된속성및옵션식별자일때발생하는에러이다. SQLAllocHandle, SQLBulkOperations, SQLCopyDesc, SQLDriverConnect, SQLEndTran, SQLFreeStmt, SQLGetConnectAttr, SQLGetEnvAttr, SQLGetStmtAttr, SQLParamData, SQLSetConnectAttr, SQLSetDescField, SQLSetEnvAttr, SQLSetPos, SQLSetStmtAttr 제 4 장 tbcli 에러메시지 129
HY095 영역밖의타입인경우발생하는에러이다. SQLGetFunctions HY096 잘못된정보타입인경우발생하는에러이다. SQLGetInfo HY097 영역밖의컬럼인경우발생하는에러이다. SQLSpecialColumns HY098 영역밖의범위타입인경우발생하는에러이다. SQLSpecialColumns HY099 영역밖의 Nullable 타입인경우발생하는에러이다. SQLSpecialColumns HY100 영역밖의고유옵션타입인경우발생하는에러이다. SQLStatistics HY101 영역밖의정확도옵션타입인경우발생하는에러이다. SQLStatistics HY103 잘못된검색 (retrieval) 코드인경우발생하는에러이다. SQLDataSources, SQLDrivers 130 Tibero RDBMS tbcli 안내서
HY104 잘못된정밀도또는스케일값인경우발생하는에러이다. SQLBindParameter HY105 잘못된파라미터타입인경우발생하는에러이다. SQLBindParameter, SQLExecDirect, SQLExecute, SQLParamData, SQLSetDescField HY106 영역밖의페치타입인경우발생하는에러이다. SQLExtendedFetch, SQLFetchScroll HY107 영역밖의로우값인경우발생하는에러이다. SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLSetPos HY109 잘못된커서위치일때발생하는에러이다. SQLExecDirect, SQLExecute, SQLGetData, SQLGetStmtAttr, SQLNativeSql, SQLParamData, SQLSetPos HY110 잘못된드라이버완성 (driver completion) 일때발생하는에러이다. SQLDriverConnect HY111 잘못된북마크값인경우발생하는에러이다. SQLExtendedFetch, SQLFetchScroll 제 4 장 tbcli 에러메시지 131
4.2.17. HYC00 HYC00 구현되지않은선택적인기능 (Optional feature) 을사용하려할때발생하는에러이다. SQLBindCol, SQLBindParameter, SQLBulkOperations, SQLColAttribute, SQLColumnPrivileges, SQLColumns, SQLDriverConnect, SQLEndTran, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLForeignKeys, SQLGetConnectAttr, SQLGetData, SQLGetEnvAttr, SQLGetInfo, SQLGetStmtAttr, SQLGetTypeInfo, SQLParamData, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSetConnectAttr, SQLSetEnvAttr, SQLSetPos, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 4.2.18. HYT00 ~ HYT01 HYT00 제한시간을초과했을때발생하는에러이다. SQLBrowseConnect, SQLBulkOperations, SQLColumnPrivileges, SQLColumns, SQLConnect, SQLDriverConnect, SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLForeignKeys, SQLGetTypeInfo, SQLParamData, SQLPrepare, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSetPos, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, SQLTables 132 Tibero RDBMS tbcli 안내서
HYT01 데이터베이스연결제한시간을초과했을때발생하는에러이다. All ODBC functions except:, SQLDrivers, SQLDataSources, SQLGetEnvAttr, SQLSetEnvAttr 4.2.19. IM001 ~ IM015 IM001 드라이버가해당를제공하지않을때발생하는에러이다. All ODBC functions except:, SQLAllocHandle, SQLDataSources, SQLDrivers, SQLFreeHandle, SQLGetFunctions IM002 데이터소스의이름을찾을수없거나, 디폴트드라이버가존재하지않을때발생하는에러 이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect IM003 지정한드라이버를로드할수없을때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect IM004 해당드라이버에 SQLAllocHandle 를이용한환경핸들할당에실패했을때발생하는 에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect IM005 해당드라이버에 SQLAllocHandle 를이용한연결핸들할당에실패했을때발생하는 에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect 제 4 장 tbcli 에러메시지 133
IM006 해당드라이버에 SQLSetConnectAttr 를이용한데이터베이스연결속성설정에실패 했을때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect IM007 데이터소스또는드라이버가지정되지않았을때발생하는에러이다. SQLDriverConnect IM009 Translation DLL 를로드하는것이불가능할때발생하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect, SQLSetConnectAttr IM010 데이터소스의이름이 SQL_MAX_DSN_LENGTH 파라미터에설정된값보다길때발생 하는에러이다. SQLBrowseConnect, SQLConnect, SQLDriverConnect IM011 드라이버이름이길때발생하는에러이다. SQLBrowseConnect, SQLDriverConnect IM012 드라이버예약어에문법에러가발생했을때나타나는에러이다. SQLBrowseConnect, SQLDriverConnect IM013 트레이스파일에문제가발생한경우나타나는에러이다. All ODBC functions 134 Tibero RDBMS tbcli 안내서
IM014 잘못된파일 DSN 의이름일때발생하는에러이다. SQLDriverConnect IM015 손상된파일의데이터소스일때발생하는에러이다. SQLDriverConnect 제 4 장 tbcli 에러메시지 135
제 5 장 tbcli 와 ODBC 본장에서는 tbcli 와 ODBC 를연동하는방법을한다. 5.1. ODBC ODBC 는아래와같은 Call-Level Interface (CLI) 명세와표준을따르는데이터베이스의 API 이다. The Open Group CAE Specification "Data Management: SQL Call-Level Interface (CLI)" ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI) ODBC 를사용하게되면, 동일한애플리케이션프로그램으로다양한벤더의 DBMS 에접근할수있다. 이 를위해서는 ODBC 소프트웨어외에, 액세스할데이터베이스마다별도의모듈이나드라이버가필요하다. 5.2. tbcli 와 ODBC 의연동 tbcli는 Call-Level Interface (CLI) 명세와표준을따르므로, ODBC와연동할수있다. tbcli는 ODBC 3.51 표준에맞게구현되어있어데이터베이스추적로그등 ODBC가가진기능을사용할수있다. Tibero RDBMS에서는 ODBC와의연동을위해운영체제별로 ODBC 드라이버를제공한다. 5.2.1. Windows 계열에서의설치 Windows 계열에서 Tibero ODBC 4 Driver를설치할때사용자의편의를위해 Tibero RDBMS에서는 WIN32용 ODBC 드라이버설치실행파일 (odbc_driver_install.exe) 과 WIN32용 ODBC 클라이언트라이브러리파일 (libtbcli.dll) 을제공하고있다. 이두파일은다음과같은디렉터리에존재한다. Win32용배포판의경우 %TB_HOME%\client\bin\odbc_driver_install.exe %TB_HOME%\client\lib\libtbcli.dll UNIX 용배포판의경우 $TB_HOME/client/win32/bin/odbc_driver_install.exe $TB_HOME/client/win32/lib/libtbcli.dll 제 5 장 tbcli 와 ODBC 137
설치 설치순서는다음과같다. 1. libtbcli.dll 파일을설치할폴더에복사한다. ODBC 데이터원본관리자에서 libtbcli.dll 파일을동적으로링크하여사용한다. 2. 명령프롬프트 (cmd.exe) 창을실행한후, 다음과같은명령을실행한다. %TB_HOME%\client\bin\odbc_driver_install.exe -i [ 설치경로 ] 이때설치경로를입력하지않으면디폴트로설정된 %SystemRoot%\System32 폴더에설치된다. 설치확인 설치후확인하는순서는다음과같다. 1. ODBC 데이터원본관리자를실행한다. 실행하는방법은 [ 제어판 ] > [ 관리도구 ] > [ 데이터원본 (ODBC)] 메뉴를선택하거나또는 %System Root%\system32 폴더에서 odbcad32.exe 파일을실행하면된다. 2. 드라이버탭으로이동한후, Tibero 4 ODBC Driver 가있는지확인한다. [ 그림 5.1] Tibero 4 ODBC Driver 설치확인 138 Tibero RDBMS tbcli 안내서
DSN 등록 Tibero 4 ODBC Driver를정상적으로설치했으면, 이드라이버를통해 DSN(Data Source Name) 를등록하여데이터베이스접속정보를저장한다. DSN를등록하는방법은다음과같이두가지가있다. 사용자 DSN 현재로그인을한윈도우계정에서만사용할수있는 DSN이다. 시스템 DSN 어떠한윈도우계정으로도사용할수있는 DSN 이다. 등록순서는다음과같다. 본안내서에서는사용자 DSN 이라는방법을통해 DSN 을등록한다. 1. ODBC 데이터원본관리자를실행한다. 2. 사용자 DSN 탭으로이동한후 [ 추가 ] 버튼을클릭한다. [ 그림 5.2] 사용자 DSN - 추가 3. 설치된 Tibero 4 ODBC Driver 를선택한후, [ 마침 ] 버튼을클릭한다. 제 5 장 tbcli 와 ODBC 139
[ 그림 5.3] 사용자 DSN - Tibero 4 ODBC Driver 선택 4. TIBERO 4 ODBC CONFIGURATION 대화상자가나타난다. 이대화상자에데이터베이스접속정보를입력한다. TIBERO 4 ODBC Driver에서는 IP와 PORT로접속하는방식과 tbdsn.tbr 파일에설정된 SID로접속하는방식두가지를제공한다. (IP/PORT 방식으로접속하면 TB_HOME 환경을구축하지않고도간편하게드라이버를사용할수있지만 tbdsn.tbr 파일에 TB_NLS_LANG 설정값을넣는등의기능을사용할수없다는단점이있다.) [ 그림 5.4] 사용자 DSN - 데이터베이스접속정보입력 (IP, PORT 방식 ) 140 Tibero RDBMS tbcli 안내서