IBM Informix Object Interface for C++ Programmer.s G many features of IBM Informix database servers

  • View
    0

  • Download
    0

Embed Size (px)

Text of IBM Informix Object Interface for C++ Programmer.s G many features of IBM Informix database servers

  • Informix Product Family Informix Client Software Development Kit Version 4.10

    IBM Informix Object Interface for C++ Programmer’s Guide

    SC27-5554-00

    ���

  • Informix Product Family Informix Client Software Development Kit Version 4.10

    IBM Informix Object Interface for C++ Programmer’s Guide

    SC27-5554-00

    ���

  • Note Before using this information and the product it supports, read the information in “Notices” on page E-1.

    This document contains proprietary information of IBM. It is provided under a license agreement and is protected by copyright law. The information contained in this publication does not include any product warranties, and any statements provided in this publication should not be interpreted as such.

    When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you.

    © Copyright IBM Corporation 1996, 2013. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

  • Contents

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii About this publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    Types of users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Software compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    Example code conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Additional documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Compliance with industry standards . . . . . . . . . . . . . . . . . . . . . . . . . . viii How to provide documentation feedback . . . . . . . . . . . . . . . . . . . . . . . . . viii

    Chapter 1. Architecture of the object interface for C++ . . . . . . . . . . . . . . . 1-1 Operation classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Value interfaces and value objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Class hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Implementation notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6

    Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Passing objects—compiler dependency . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Informix database server compatibility . . . . . . . . . . . . . . . . . . . . . . . . . 1-6

    Globalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 ITFactory list and the type map . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7

    Chapter 2. Issue database queries and retrieve results. . . . . . . . . . . . . . . 2-1 Using operation classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Create connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Find system names and database names . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

    Using ITSystemNameList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Using ITDBNameList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

    Manage errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Using the error handling feature . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

    Connection transaction states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Issue queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6

    When to use the different ITQuery methods . . . . . . . . . . . . . . . . . . . . . . . 2-6 Query method example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Using prepared statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 Using cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Using the large object manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 Using ITRoutineManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13

    Chapter 3. Access data values . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Access data values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Value object management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 The ITValue interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 The ITConversions interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 The ITDatum interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 The ITDateTime interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 The ITLargeObject interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 The ITErrorInfo interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 The ITRow interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 The ITSet interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 The ITContainer interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 The ITContainCvt interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7

    Chapter 4. Create and extend value objects . . . . . . . . . . . . . . . . . . . 4-1 The raw data object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1

    © Copyright IBM Corp. 1996, 2013 iii

  • Build simple value objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Expose multiple interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Value objects and connection events . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Create row type value objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10

    Create row type value objects without an open connection . . . . . . . . . . . . . . . . . . 4-10 Create collection type value objects without an open connection . . . . . . . . . . . . . . . . 4-11

    Object Containment and Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12 Dynamic loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15

    Map files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16

    Chapter 5. Operation class reference . . . . . . . . . . . . . . . . . . . . . . 5-1 The ITConnection class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 The ITConnectionStamp class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 The ITContainerIter class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 The ITCursor class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 The ITDBInfo class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 The ITDBNameList class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 The ITErrorManager class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 The ITFactoryList class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9

    Successful initialization verification . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 The ITInt8 class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 The ITLargeObjectManager class. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12

    Accessing smart large objects in nondefault sbspaces . . . . . . . . . . . . . . . . . . . . 5-13 The ITMVDesc class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 The ITObject class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 The ITPosition class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 The ITPreserveData class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 The ITQuery class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 The ITRoutineManager class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 The ITStatement class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 The ITString class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23 The ITSystemNameList class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 The ITTypeInfo class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25

    Chapter 6. Value interface reference . . . . . . . . . . . . . . . . . . . . . . . 6-1 The ITContainCvt interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 The ITContainer interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 The ITConversions interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

    C++ compiler interpretation of long doubles . . . . . . . . . . . . . . . . . . . . . . . 6-2 The ITDateTime interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 The ITDatum interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 The ITErrorInfo interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 The ITEssential interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 The ITLargeObject interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 The ITRow interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 The ITSet interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 The ITValue inte