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 Developer

  • Published on
    05-Apr-2018

  • View
    221

  • Download
    6

Embed Size (px)

Transcript

<ul><li><p>ibm.com/redbooks</p><p>IBM Informix Developers Handbook</p><p>Whei-Jen ChenKrishna Doddi</p><p>Manoj GhogaleDavid Jay</p><p>Javier Sagrera</p><p>Learn application development with supported APIs, drivers, and interfaces</p><p>Understand Informix supported programming environments</p><p>Follow practical examples to develop an Informix application</p><p>Front cover</p><p>http://www.redbooks.ibm.com/http://www.redbooks.ibm.com/</p></li><li><p>IBM Informix Developers Handbook</p><p>October 2010</p><p>International Technical Support Organization</p><p>SG24-7884-00</p></li><li><p> 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.</p><p>First Edition (October 2010)</p><p>This edition applies to IBM Informix Version 11.5. </p><p>Note: Before using this information and the product it supports, read the information in Notices on page ix.</p></li><li><p>Contents</p><p>Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixTrademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x</p><p>Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiThe team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi</p><p>Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiiiNow you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . xiiiComments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xivStay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv</p><p>Chapter 1. Introduction to IBM Informix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Server options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2</p><p>1.1.1 Informix servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Informix tools for developers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9</p><p>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</p><p>1.3 Informix overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.1 Architecture overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3.2 Informix developer environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.3.3 Informix capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22</p><p>Chapter 2. Setting up an Informix development environment . . . . . . . . . 252.1 Server setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26</p><p>2.1.1 Planning for the installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.2 Installing Informix Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.3 Configuring Informix Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27</p><p>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</p><p>Chapter 3. Working with the ODBC driver . . . . . . . . . . . . . . . . . . . . . . . . . 573.1 ODBC and Informix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58</p><p> Copyright IBM Corp. 2010. All rights reserved. iii</p></li><li><p>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</p><p>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</p><p>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</p><p>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</p><p>Chapter 5. Working with the JDBC drivers . . . . . . . . . . . . . . . . . . . . . . . . 1535.1 JDBC drivers for an Informix database . . . . . . . . . . . . . . . . . . . . . . . . . . 154</p><p>5.1.1 IBM Informix JDBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.1.2 IBM Data Server Driver for JDBC and SQLJ . . . . . . . . . . . . . . . . . 156</p><p>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</p><p>5.3 JDBC type mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615.4 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163</p><p>5.4.1 Connection to the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.4.2 Manipulating data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168</p><p>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</p><p>5.6 Typical errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1855.6.1 Class not found errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186</p><p>iv IBM Informix Developers Handbook</p></li><li><p>5.6.2 Connectivity errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1865.6.3 Syntax errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187</p><p>5.7 Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875.7.1 IBM Informix JDBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875.7.2 IBM Data Server Driver for JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . 188</p><p>Chapter 6. IBM Informix with Hibernate . . . . . . . . . . . . . . . . . . . . . . . . . . 1896.1 Hibernate for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190</p><p>6.1.1 Overview of Hibernate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1906.1.2 Hibernate concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191</p><p>6.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926.2.2 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194</p><p>6.3 Using Hibernate with an Informix database. . . . . . . . . . . . . . . . . . . . . . . 1986.3.1 Components of a Hibernate application . . . . . . . . . . . . . . . . . . . . . 1986.3.2 Working with a Hibernate object . . . . . . . . . . . . . . . . . . . . . . . . . . . 2036.3.3 Using annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211</p><p>Chapter 7. Working with IBM Informix OLE DB Provider. . . . . . . . . . . . . 2157.1 IBM Informix OLE DB Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216</p><p>7.2.1 Installation and setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167.2.2 Verifying connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217</p><p>7.3 Developing an OLE DB application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2197.3.1 Supported interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2207.3.2 Connecting to database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217.3.3 Type mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2227.3.4 Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2247.3.5 Typical database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225</p><p>7.4 Visual Basic, ADO.NET, and SQL Server . . . . . . . . . . . . . . . . . . . . . . . . 2377.4.1 OLE DB with Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2387.4.2 ADO.NET and the OLEDB bridge . . . . . . . . . . . . . . . . . . . . . . . . . . 2407.4.3 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242</p><p>7.5 Troubleshooting and tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2457.5.1 Typical errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2457.5.2 Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248</p><p>Chapter 8. Working with .NET data providers. . . . . . . . . . . . . . . . . . . . . . 2538.1 Informix and .NET data providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2548.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254</p><p>8.2.1 IBM Informix .Net Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2548.2.2 IBM Data Server Provider for .NET. . . . . . . . . . . . . . . . . . . . . . . . . 2558.2.3 Verifying connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256</p><p>8.3 Developing a .NET application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259</p><p> Contents v</p></li><li><p>8.3.1 Connecting to the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2598.3.2 Data type mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2628.3.3 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648.3.4 Handling Informix specific data types . . . . . . . . . . . . . . . . . . . . . . . 2768.3.5 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2908.3.6 Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291</p><p>8.4 Visual Studio Add-In for Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . 293</p><p>Chapter 9. Working with PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2959.1 Informix and PHP extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2969.2 Setup and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297</p><p>9.2.1 Installing OAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2979.2.2 Verifying the PDO_INFORMIX setup . . . . . . . . . . . . . . . . . . . . . . . 2999.2.3 Verifying the PDO setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2999.2.4 Verifying connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300</p><p>9.3 Developing a PHP application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3019.3.1 Connecting to a database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3029.3.2 Performing database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 3049.3.3 Handling complex data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3109.3.4 Working with PHP extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3199.3.5 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3249.3.6...</p></li></ul>

Recommended

View more >