IBM Informix Developer's Handbook Informix and PHP ... environment. Whei-Jen Chen. IBM Informix Developer’s Handbook Krishna Doddi Manoj Ghogale David Jay Javier Sagrera. IBM Informix

  • View
    225

  • Download
    6

Embed Size (px)

Text of IBM Informix Developer's Handbook Informix and PHP ... environment. Whei-Jen Chen. IBM Informix...

  • ibm.com/redbooks

    IBM Informix Developers Handbook

    Whei-Jen ChenKrishna Doddi

    Manoj GhogaleDavid Jay

    Javier Sagrera

    Learn application development with supported APIs, drivers, and interfaces

    Understand Informix supported programming environments

    Follow practical examples to develop an Informix application

    Front cover

    http://www.redbooks.ibm.com/http://www.redbooks.ibm.com/

  • IBM Informix Developers Handbook

    October 2010

    International Technical Support Organization

    SG24-7884-00

  • Copyright International Business Machines Corporation 2010. All rights reserved.Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADPSchedule Contract with IBM Corp.

    First Edition (October 2010)

    This edition applies to IBM Informix Version 11.5.

    Note: Before using this information and the product it supports, read the information in Notices on page ix.

  • Contents

    Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixTrademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiThe team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

    Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiiiNow you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . xiiiComments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xivStay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

    Chapter 1. Introduction to IBM Informix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Server options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.1 Informix servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Informix tools for developers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.2.1 Informix Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.2 Informix Client Software Development Kit. . . . . . . . . . . . . . . . . . . . . . 91.2.3 4GL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.4 Ruby on Rails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.5 Informix DataBlade Developers Kit . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.6 Informix Spatial DataBlade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2.7 PHP on Informix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    1.3 Informix overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.1 Architecture overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3.2 Informix developer environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.3.3 Informix capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    Chapter 2. Setting up an Informix development environment . . . . . . . . . 252.1 Server setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.1.1 Planning for the installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.2 Installing Informix Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.3 Configuring Informix Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    2.2 Client setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.1 Informix Client options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.2 Installing and setting up Client SDK . . . . . . . . . . . . . . . . . . . . . . . . . 362.2.3 Setting up IBM Data Server drivers. . . . . . . . . . . . . . . . . . . . . . . . . . 432.2.4 Setting up Informix JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Chapter 3. Working with the ODBC driver . . . . . . . . . . . . . . . . . . . . . . . . . 573.1 ODBC and Informix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    Copyright IBM Corp. 2010. All rights reserved. iii

  • 3.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.2.1 IBM Informix ODBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.2.2 IBM Data Server Driver for ODBC and CLI . . . . . . . . . . . . . . . . . . . . 703.2.3 Verifying connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    3.3 Developing an ODBC application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.3.1 Connecting to the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.3.2 Type mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.3.3 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.3.4 Handling special data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953.3.5 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123.3.6 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    Chapter 4. Working with ESQL/C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.1 Informix ESQL/C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.3 Windows system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.4 Developing an ESQL/C application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    4.4.1 Creating an ESQL/C application . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284.4.2 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 1334.4.3 Data types mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.4.4 Handling special data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424.4.5 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.4.6 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

    Chapter 5. Working with the JDBC drivers . . . . . . . . . . . . . . . . . . . . . . . . 1535.1 JDBC drivers for an Informix database . . . . . . . . . . . . . . . . . . . . . . . . . . 154

    5.1.1 IBM Informix JDBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.1.2 IBM Data Server Driver for JDBC and SQLJ . . . . . . . . . . . . . . . . . 156

    5.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.2.1 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.2.2 Verify connectivity with Informix JDBC Driver . . . . . . . . . . . . . . . . . 1585.2.3 Verify connectivity with the Data Server Driver . . . . . . . . . . . . . . . . 160

    5.3 JDBC type mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615.4 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

    5.4.1 Connection to the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.4.2 Manipulating data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    5.5 Informix additional features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1745.5.1 Batch inserts or updates and using ResultSet metadata . . . . . . . . 1755.5.2 BIGSERIAL data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.5.3 Informix smart large objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1785.5.4 Secure Socket Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

    5.6 Typical errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1855.6.1 Class not found errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    iv IBM Informix Developers Handbook

  • 5.6.2 Connectivity errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1865.6.3 Syntax errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

    5.7 Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875.7.1 IBM Informix JDBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875.7.2 IBM Data Server Driver for JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . 188

    Chapter 6. IBM Informix with Hibernate . . . . . . . . . . . . . . . . . . . . . . . . . . 1896.1 Hibernate for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

    6.1.1 Overview of Hibernate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1906.1.2 Hibernate concepts . . . . . . . . . . . . .