[svn-commits] r47 - drivers/python/trunk

crogr01 at ingres.com crogr01 at ingres.com
Thu Jun 5 10:33:37 PDT 2008


Author: crogr01
Date: 2008-06-05 10:33:37 -0700 (Thu, 05 Jun 2008)
New Revision: 47

Added:
   drivers/python/trunk/README.txt
Modified:
   drivers/python/trunk/README.html
Log:
Add svn:keywords Id Rev Author Url to files

Modified: drivers/python/trunk/README.html
===================================================================
--- drivers/python/trunk/README.html	2008-04-30 09:01:27 UTC (rev 46)
+++ drivers/python/trunk/README.html	2008-06-05 17:33:37 UTC (rev 47)
@@ -1,433 +1,872 @@
-<HTML>
-<HEAD>
-<!-- Created with DOC2HTML, v585 (12/13/2005) -->
-<title>Ingres Python DBI Driver Version 2.0.0</title>
-<META HTTP-EQUIV="Content-Type" Content="text-html; charset=Windows-1252">
-<style>
-<!--
-A:link                       { text-decoration: underline; font-weight: bold; color: #336699  }
-A:visited                    { text-decoration: underline; font-weight: bold; color: #336699  }
-BODY                         { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-size: 80%; font-weight: normal; color: 00000  }
-TABLE                        { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-size: 100%; color: 000000; }
-P                            { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-weight: normal; color: #000000  }
-H1                           { font-size: 180%; font-weight: bold; color: #336699  }
-H2                           { font-size: 155%; font-weight: normal; font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; color: #336699  }
-H3                           { font-size: 130%; font-weight: bold; font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; color: #336699  }
-H4                           { font-size: 130%; font-weight: bold; font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; color: #336699  }
-ol, ul ol, ul ul ol          { list-style-type: decimal; list-style-image : none; }
-ol ol, ul ol ol, ol ul ol    { list-style-type: lower-alpha; list-style-image: none; }
-ul, ol ul, ol ol ul          { list-style-type: disc; list-style-image: none; }
-ul ul, ol ul ul, ul ol ul    { list-style-type: circle; list-style-image: none;}
-ul ul ul                     { list-style-type: square; list-style-image: none; }
-ol ol ol                     { list-style-type: upper-roman; list-style-image: none; }
-B                            { font-weight: bold  }
-STRONG                       { font-weight: bold  }
-I                            { font-style: italic  }
-EM                           { font-style: italic  }
-INPUT                        { color: #336699; font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-size: 90%; } /* Special */
-TEXTAREA                     { color: #336699; font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-size: 90%; } /* Special */
-BLOCKQUOTE                   { font-size: 80%; }
-PRE                          { font-family: "courier new", courier, monospace; font-size: 100%  }
-table, td                    { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-weight: normal; color: #000000; vertical-align: top; border: 1px solid #EBEBEB; border-collapse: collapse; font-size: 12px; padding: 2px;}
-table.invis, td.invis        { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-weight: normal; color: #000000; vertical-align: middle; border: 0px; border-collapse: collapse; font-size: 12px; padding: 2px;}
-th                           { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; font-weight: bold; color: #000000; vertical-align: top; border: 1px solid #FFFFFF; background-color: #006699; color:#FFFFFF; text-align: left; padding: 2px;}
-tr.alt                       { background-color : #F1F5FA;}
-.computerassoc               { font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif; color: #FFFFFF; text-decoration: none; background-color: #336699; font-size: 130%; font-weight: bold; }
-hr                           { color: #CCCCCC; height:1px; }
--->
-</style>
-</HEAD>
-<BODY>
-<table width="100%"  border="0" cellspacing="0" cellpadding="0"><tr><td class="computerassoc">Ingres Corporation</td></tr></table>
-<h1><a name="ingres_python_dbi_driver_version_2_0_0">Ingres Python DBI Driver Version 2.0.0</a></h1>
-<p>
-<hr>
-<nobr>
-<p><b><a href="#welcome">1.0  Welcome</a></b>
-<br><a href="#new_in_this_release">1.1  New in This Release</a>
-<p><b><a href="#operating_system_support">2.0  Operating System Support</a></b>
-<p><b><a href="#installation_considerations">3.0  Installation Considerations</a></b>
-<p><b><a href="#general_considerations">4.0  General Considerations</a></b>
-<br><a href="#features_not_included">4.1  Features Not Included</a>
-<br><a href="#syntax_for_the_ingresdbi_connect_method">4.2  Syntax for the ingresdbi.connect() Method</a>
-<br><a href="#syntax_for_the_ingres_extension_cursor_prepared_attribute">4.3  Syntax for the Ingres Extension Cursor.prepared Attribute</a>
-<p><b><a href="#building_and_installing_the_ingres_python_dbi_driver">5.0  Building and Installing the Ingres Python DBI Driver</a></b>
-<br><a href="#building_the_driver">5.1  Building the Driver</a>
-<br><a href="#installing_the_driver">5.2  Installing the Driver</a>
-<p><b><a href="#example_code">6.0  Example Code</a></b>
-<p><b><a href="#known_issues">7.0  Known Issues</a></b>
-<p><b><a href="#contact_customer_support">8.0  Contact Customer Support</a></b>
-</nobr>
-<p>
-<hr>
-<h2><a name="welcome">1.0  Welcome</a></h2>
-<p>This readme contains all the documentation on the Ingres
-Python DBI driver.
-<p>Please review this readme before building or installing
-this software. We encourage users to test the software and
-provide feedback.
-<p>
-<hr>
-<h3><a name="new_in_this_release">1.1  New in This Release</a></h3>
-<p>The latest additions to the Ingres DBI 2.0.0 driver
-bring the driver to nearly 100% compliance to the DBI 2.0
-specification, including both core and extended
-specifications. These additions to the Ingres Python DBI
-driver ease application migration.  
-<p>The following changes have been made to the driver since
-its last release:
-<ul>
-<p><li>Expansion of Connection string attributes to include
-all of the Connection string attributes of the Ingres ODBC
-driver.
-<p><li>Support for the "messages" extended Cursor and
-Connection attributes.
-<p><li>Warnings for all extended DBI attributes and methods.
-<p><li>DBI exceptions are now visible on Connection objects.
-<p><li>Support for the "errorhandler" Cursor and Connection
-attributes.
-<p><li>Support for pooled ODBC connections (Windows only).
-<p><li>Support for the "prepared" Cursor attribute. This is
-an Ingres extension to the PEP 249 specification, according
-to the requirements of Ingres.
-<p><li>Support for the "setinputsizes" and "setoutputsize"
-Cursor methods.
-</ul>
-<p>
-<hr>
-<h2><a name="operating_system_support">2.0  Operating System Support</a></h2>
-<p>This Ingres Python DBI driver supports all of the
-platforms supported by Ingres, including:
-<ul>
-<p><li>Solaris
-<p><li>HP-UX
-<p><li>AIX
-<p><li>Linux
-<p><li>Windows
-<p><li>SCO UnixWare
-<p><li>SCO OpenServer
-</ul>
-<p>
-<hr>
-<h2><a name="installation_considerations">3.0  Installation Considerations</a></h2>
-<p>To build and install the Ingres Python DBI interface,
-the following components are needed:
-<ul>
-<p><li>Ingres r3 or above, including Ingres 2006. For a
-list of binary downloads, see <a href="http://www.ingres.com" target="_blank">http://www.ingres.com</a>. For a source listing if you wish to build Ingres
-from source code, see <a href="http://www.ingres.com" target="_blank">http://www.ingres.com</a>.
-<p><li>C compiler (for example, GNU/C or Microsoft Visual
-Studio)
-<p><li>Python interpreter version 2.4 or above
-<p><li>The Ingres Python DBI source code
-</ul>
-<p>
-<hr>
-<h2><a name="general_considerations">4.0  General Considerations</a></h2>
-<p>
-<hr>
-<h3><a name="features_not_included">4.1  Features Not Included</a></h3>
-<p>The following features are currently not included in the
-Ingres Open Source Python DBI driver:  
-<ul>
-<p><li>Connection pooling (non-Windows only)
-<p><li>The following extended Cursor attributes and methods:
-<ul>
-<p><li>messages
-<p><li>lastrowid
-<p><li>scroll
-</ul>
-<p><li>Due to the limitations of the Ingres ODBC driver,
-the following items are not supported:
-<ul>
-<p><li>Executing functions asynchronously
-<p><li>Cursor direction other than forward-only
-<p><li>Support for Ingres SQL command "COPY TABLE"
-<p><li>Support for Ingres SQL command "SAVEPOINT"
-</ul>
-<p><li>Due to syntax limitations of the Cursor.callproc()
-method, BYREF and output parameters are not supported in
-stored procedures. Row-returning procedures, however, are
-supported.
-</ul>
-<p>
-<hr>
-<h3><a name="syntax_for_the_ingresdbi_connect_method">4.2  Syntax for the ingresdbi.connect() Method</a></h3>
-<p>Connection objects are constructed using the
-ingresdbi.connect() method. The following keywords are
-valid:
-<ul>
-<p><li>dsn - the ODBC Data Source Name
-<p><li>database - the target database
-<p><li>connectstr - alternate connection string
-<p><li>vnode - vnode definition as defined in the Ingres
-netutil utility. For more information, see the <i>Ingres
-Connectivity Guide</i>.
-<p><li>uid - user login ID
-<p><li>pwd - user password
-<p><li>servertype - the type of the target database
-<p><li>trace - enables optional tracing of the DBI driver
-<p><li>rolename - role name
-<p><li>rolepwd - role password
-<p><li>group - group
-<p><li>dbms_pwd - DBMS password
-<p><li>selectloops - fetches using select loops instead of
-the default cursor loops
-<p><li>autocommit - whether autocommit is enabled.
-Autocommit is off by default.
-<p><li>catschemanull - whether to disable underscores in
-wildcard searches
-<p><li>catconnect - whether to use separate sessions for
-catalog operations
-<p><li>numeric_overflow - whether to ignore or fail numeric
-overflows
-</ul>
-<p>If the "dsn" keyword is specified, the other keywords
-are optional. If the database is specified, the other
-keywords are optional. If the vnode keyword is specified,
-and the connection is local, the value "(LOCAL)" can be
-used as the vnode definition, or the vnode attribute can be
-omitted.
-<p>If the "connectstr" keyword is specified, the other
-keywords are optional. The "connectstr" keyword specifies
-an ODBC connection string. For examples of valid Ingres
-ODBC connection strings, see the <i>Ingres Connectivity
-Guide</i>.
-<p>All of the above keywords reference string values except
-for the "trace" keyword. The "trace" keyword references a
-tuple with two members. The first member is the tracing
-level, which can be a value of 0 through 7. The second
-member is a string that describes the trace file. If the
-second member has a value of "None", the tracing is written
-to the standard output.
-<p>The following values are valid for the "autocommit",
-"selectloops", "catconnect", "catschemanull", and
-"numeric_overflow" keyword attributes:
-<ul>
-<p><li>"on"
-<p><li>"off"
-<p><li>"y"
-<p><li>"n"
-<p><li>"Yes"
-<p><li>"No"
-</ul>
-<p>The following values are valid for the "servertype"
-keyword:
-<ul>
-<p><li>"INGRES"
-<p><li>"DCOM"
-<p><li>"IDMS"
-<p><li>"DB2"
-<p><li>"IMS"
-<p><li>"ODBC"
-<p><li>"VSAM"
-<p><li>"RDB"
-<p><li>"STAR"
-<p><li>"RMS"
-<p><li>"ORACLE"
-<p><li>"INFORMIX"
-<p><li>"SYBASE"
-<p><li>"MSSQL"
-<p><li>"DB2UDB"
-</ul>
-<p>If "INGRES" is not specified, the "servertype" values
-require access to an Ingres (that is, Enterprise Access) or
-EDBC gateway server. Otherwise, no gateway is required. The
-default is "INGRES".
-<p>Select loops usually have the best performance. However,
-only one select loop can be active at a time. Cursor loops
-support unlimited multiple active result sets, but can be
-slower in performance.
-<p>Following is an example of a valid instantiation of the
-ingresdbi connection object, using all keywords:
-<pre>
-conn = ingresdbi.connect(dsn ="myDSN",
-                        database  "myDB",
-                        vnode = "(LOCAL)",
-                        uid = "myUID",
-                        pwd = "myPWD",
-                        dbms_pwd = "myDbmsPWD",
-                        group = "myGroup",
-                        rolename = "myRoleName",
-                        rolepwd = "myRolePwd",
-                        selectloops = "Y",
-                        autocommit = "Y",
-                        servertype = "INGRES",
-                        driver = "Ingres",
-                        catschemanull = "off",
-                        catconnect = "Off",
-                        numeric_overflow = "yes",
-                        connectStr = "DSN=myDSN",
-                        trace = (7, "dbi.log")
-                        )
-</pre>
-<p>Connection objects can be constructed without keywords.
-If keywords are not used, arguments must follow the order:
-dsn, database, vnode, uid, pwd, selectloops, autocommit,
-servertype, and trace. An example without keywords is shown
-here:
-<pre>
-conn = ingresdbi.connect("myDSN", "myDB", "(LOCAL)", "MnyUID", "myPWD",
-                        "Y", "Yes", "INGRES", "Ingres 3.0", "myRoleName",
-                        "myrolePWD", "myGroup", "n", "NO", "YES", "yes", "N",
-                        "myDbmsPwd", "DSN=myDSN", (7, "dbi.log"))
-</pre>
-<p>
-<hr>
-<h3><a name="syntax_for_the_ingres_extension_cursor_prepared_attribute">4.3  Syntax for the Ingres Extension Cursor.prepared Attribute</a></h3>
-<p>Although PEP 249 requires all queries to be prepared,
-the Ingres DBI driver does not prepare queries by default.
-Instead, the Cursor attribute "prepared" can be deployed.  
-<p>If Cursor.prepared is set to "y", "yes", or "on",
-subsequent queries specified in the Cursor.execute() or
-Cursor.executemany() methods are executed as prepared.
-However, only one query string is allowed for each cursor
-instantiation. If the query string is changed, a warning is
-issued, and the Ingres DBI driver resorts to direct query
-execution.
-<p>The Cursor.callproc() method raises an exception if the
-Cursor.prepared attribute is set to "y", "yes", or "on".
-<p>The following values (entered in either uppercase or
-lowercase) are valid for the Cursor.prepared attribute:
-<ul>
-<p><li>"on"
-<p><li>"off"
-<p><li>"y"
-<p><li>"n"
-<p><li>"Yes"
-<p><li>"No"
-</ul>
-<p>
-<hr>
-<h2><a name="building_and_installing_the_ingres_python_dbi_driver">5.0  Building and Installing the Ingres Python DBI Driver</a></h2>
-<p>
-<hr>
-<h3><a name="building_the_driver">5.1  Building the Driver</a></h3>
-<p>The build process has been simplified by the use of the
-Python DistUtils package. Start the build process by
-extracting the necessary files from the Ingres DBI
-compressed archive:
-<p><b>Linux and Non-Windows</b>
-<pre>
-tar zxvf ingresdbi-1.9.6.tar.gz
-</pre>
-<p><b>Windows</b>
-<ol>
-<p><li>Use WinZip (or similar product) to extract the
-directories and files from ingresdbi-1.9.6.zip.
-<p><li>Enter the newly created source directory,
-ingresdbi-1.9.6:
-<pre>
-cd ingresdbi-1.9.6
-</pre>
-<p><li>Initiate the build process.
-<pre>
-python setup.py build
-</pre>
-<p><b>Note:</b> You can skip this and jump straight to the
-install process as this will automatically build.  
-<p><b>Note for Microsoft Windows:</b> Make sure the
-Microsoft Visual Tools environment is set up before this
-step.
-</ol>
-<p>
-<hr>
-<h3><a name="installing_the_driver">5.2  Installing the Driver</a></h3>
-<p>As with the build process, the installation process
-makes use of DistUtils. By default, the Ingres Python DBI
-driver is installed into Python's site-packages directory.
-The ability to provide alternate installation locations has
-not been investigated at this time. The only requirement
-for installing is to be able to write to the site-packages
-directory.
-<p>To install, execute the following command:
-<pre>
-python setup.py install
-</pre>
-<p>To create a deliverable source package, execute the
-following command:
-<pre>
-python setup.py sdist
-</pre>
-<p>
-<hr>
-<h2><a name="example_code">6.0  Example Code</a></h2>
-<p>The following code provides a simple Python database
-example using the Ingres Python DBI driver:
-<pre>
-import ingresdbi
-import pprint
-"""
-import os
-username=os.getenv('test_username')
-password=os.getenv('test_password')
-vnode=os.getenv('test_vnode')
-database=os.getenv('test_database')
-trace=None
-"""
-enable_trace = 0
-if enable_trace == 1:
-   trace=(7, None)
-else:
-   trace=(0, None)
-database='iidbdb'
-vnode='(local)'
-prog_str = 'DEMO SIMPLE SELECT'
-print prog_str, "connecting to database: " + database
-dc=ingresdbi.connect(database=database, vnode=vnode, trace=trace)
-print prog_str, "Creating new cursor()"
-c=dc.cursor()
-print prog_str, "About to call cursor.execute()"
-c.execute("select * from iidbconstants")
-print "cursor.description = "
-description = c.description
-pprint.pprint (description )
-print prog_str, "cursor.fetchall()"
-rows = c.fetchall()
-print "rows = ", rows
-row_count = 0
-for row in rows:
-    row_count = row_count + 1
-print 'Row #', row_count
-count = 0
-for column in row:
-   print description[count][0] , ': ', column
-   count = count + 1
-print "-----------------------------"
-print prog_str, "connection.commit()"
-dc.commit()
-print prog_str, "connection.close()"
-dc.close()
-</pre>
-<p>
-<hr>
-<h2><a name="known_issues">7.0  Known Issues</a></h2>
-<p>Known issues are as follows:
-<ul>
-<p><li>There is no support for installing to an alternate
-directory other than the default site-packages.
-<p><li>win32 only/Python 2.3 only - If distutils fails with:
-<pre>
-error: Python was built with version 6 of Visual Studio,
-and extensions need to be built with the same version of the
-compiler, but it isn't installed.
-</pre>
-<p>and you do have Visual Studio version 6 installed, run
-Microsoft Visual C++ 6.0 msdev.exe (the GUI), quit out, and
-then retry the build. For further information, see Python
-mailing list <a href="http://mail.python.org/pipermail/python-dev/2003-November/040478.html" target="_blank">http://mail.python.org/pipermail/python-dev/2003-November/040478.html</a>.
-</ul>
-<p>
-<hr>
-<h2><a name="contact_customer_support">8.0  Contact Customer Support</a></h2>
-<p>For online technical assistance and a complete list of
-locations, primary service hours, and telephone numbers,
-contact technical support at <a href="http://ingres.com/support" target="_blank">http://ingres.com/support</a>.
-<p>
-<hr>
-<font size=-2>
-© 2006 Ingres Corporation. 
-All rights reserved.
-</font>
-</BODY>
-</HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+  <META name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 31 October 2006), see www.w3.org">
+  <TITLE>Ingres Python DBI Driver Version 2.0.1</TITLE>
+  <META http-equiv="Content-Type" content="text-html; charset=utf-8">
+  <STYLE type="text/css">
+  <!--
+            BODY
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-size: 80%;
+                font-weight: normal;
+                counter-reset: h1_no;
+            }
+            TABLE
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-size: 100%;
+                color: 000000;
+
+            }
+            P
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-weight: normal;
+      
+            }
+            H2:before 
+            {
+                content: counter(h1_no) ".0 ";
+                counter-increment: h1_no;  /* Add 1 to h1_no */
+            }
+            H3:before 
+            {
+                content: counter(h1_no) "." counter(h2_no) " ";
+                counter-increment: h2_no;
+            }
+            H1
+            {
+                font-size: 180%;
+                font-weight: bold;
+                color: #336699;
+            }
+            H2
+            {
+                font-size: 155%;
+                font-weight: normal;
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                color: #336699 ;
+                counter-reset: h2_no;
+            }
+            H3                           
+            {
+                font-size: 130%;
+                font-weight: bold;
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                color: #336699 ;
+                counter-reset: h3_no;
+            }
+            H4                           
+            {
+                font-size: 130%;
+                font-weight: bold;
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                color: #336699;
+            }
+            A:link                       {
+                text-decoration: underline;
+                font-weight: bold;
+                color: #336699;
+            }
+            A:visited                    {
+                text-decoration: underline;
+                font-weight: bold;
+                color: #336699;
+            }
+            ol 
+            {
+                list-style-type: decimal;
+                font-family:"Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+            }
+            ol.toc_l1 
+            {
+                counter-reset: toc_l1 
+            }
+            ol.toc_l2 
+            {
+                counter-reset: toc_l2 
+            }
+            ul
+            {
+                list-style-type: disc;
+                font-family:"Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+            }
+            li                           
+            {
+                font-family:"Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+            }
+            li.toc_l1:before
+            {
+                content: counter(toc_l1) ".0 "; counter-increment: toc_l1
+            }
+            li.toc_l2:before
+            {
+                content: counter(toc_l1) "." counter(toc_l2) " " ; counter-increment: toc_l2
+            }
+            li.toc_l1, li.toc_l2                       
+            {
+                font-family:"Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                color:#336699;
+                font-weight:bold;
+                display: block;
+            }
+            B                            
+            {
+                font-weight: bold  
+            }
+            STRONG                       
+            {
+                font-weight: bold  
+            }
+            I                            
+            {
+                font-style: italic  
+            }
+            EM                           
+            {
+                font-style: italic  
+            }
+            INPUT                        
+            {
+                color: #336699;
+                 font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                 font-size: 90%;
+            } /* Special */
+            TEXTAREA                     
+            {
+                color: #336699;
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-size: 90%;
+            } /* Special */
+            BLOCKQUOTE                   
+            {
+                font-size: 80%;
+            }
+            PRE, CODE
+            {
+                font-family: "courier new", courier, monospace;
+                font-size: 100%  
+            }
+            table, td                    
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-weight: normal;
+                color: #000000;
+                vertical-align: top;
+                border: 1px solid #EBEBEB;
+                border-collapse: collapse;
+                font-size: 12px;
+                padding: 2px;
+            }
+            table.invis, td.invis
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-weight: normal;
+                color: #000000;
+                vertical-align: middle;
+                border: 0px;
+                border-collapse: collapse;
+                font-size: 12px;
+                padding: 2px;
+            }
+            th
+            {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                font-weight: bold;
+                color: #000000;
+                vertical-align: top;
+                border: 1px solid #FFFFFF;
+                background-color: #006699;
+                color:#FFFFFF;
+                text-align: left;
+                padding: 2px;
+            }
+            tr.alt
+            {
+                background-color : #F1F5FA;
+            }
+            .ingrescorp               {
+                font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, Sans Serif;
+                color: #FFFFFF;
+                text-decoration: none;
+                background-color: #336699;
+                font-size: 130%;
+                font-weight: bold;
+            }
+            hr
+            {
+                color: #CCCCCC; height:1px;
+            }
+        -->
+  </STYLE>
+</HEAD>
+
+<BODY>
+  <H1><A name="ingres_python_dbi_driver_version_2.0.1" id=
+  "ingres_python_dbi_driver_version_2.0.1">Ingres Python DBI Driver Version
+  2.0.1</A></H1>
+  <HR>
+
+  <OL CLASS="toc_l1">
+    <LI class="toc_l1">
+      <B><A href="#welcome">Welcome</A></B>
+
+      <OL CLASS="toc_l2">
+        <LI class="toc_l2"><A href="#new_in_this_release">New in This
+        Release</A></LI>
+      </OL>
+    </LI>
+
+    <LI class="toc_l1"><B><A href="#operating_system_support">Operating System
+    Support</A></B></LI>
+
+    <LI class="toc_l1"><B><A href="#installation_considerations">Installation
+    Considerations</A></B></LI>
+
+    <LI class="toc_l1">
+      <B><A href="#general_considerations">General Considerations</A></B>
+
+      <OL CLASS="toc_l2">
+        <LI class="toc_l2"><A href="#features_not_included">Features Not
+        Included</A></LI>
+
+        <LI class="toc_l2"><A href=
+        "#syntax_for_the_ingresdbi_connect_method">Syntax for the
+        ingresdbi.connect() Method</A></LI>
+
+        <LI class="toc_l2"><A href=
+        "#syntax_for_the_ingres_extension_cursor_prepared_attribute">Syntax
+        for the Ingres Extension Cursor.prepared Attribute</A></LI>
+      </OL>
+    </LI>
+
+    <LI class="toc_l1">
+      <B><A href=
+      "#building_and_installing_the_ingres_python_dbi_driver">Building and
+      Installing the Ingres Python DBI Driver</A></B>
+
+      <OL CLASS="toc_l2">
+        <LI class="toc_l2"><A href="#building_the_driver">Building the
+        Driver</A></LI>
+
+        <LI class="toc_l2"><A href="#installing_the_driver">Installing the
+        Driver</A></LI>
+      </OL>
+    </LI>
+
+    <LI class="toc_l1"><B><A href="#example_code">Example Code</A></B></LI>
+
+    <LI class="toc_l1">
+      <B><A href="#known_issues">Known Issues</A></B>
+
+      <OL CLASS="toc_l2">
+        <LI class="toc_l2"><B><A href="#generic_issues">Generic Issues</A></B></LI>
+
+        <LI class="toc_l2"><B><A href="#windows_issues">Windows Issues</A></B></LI>
+      </OL>
+    </LI>
+
+    <LI class="toc_l1"><B><A href="#support">Support</A></B></LI>
+  </OL>
+  <HR>
+
+  <H2><A name="welcome" id="welcome">Welcome</A></H2>
+
+  <P>This README contains all the documentation on the Ingres Python DBI
+  driver.</P>
+
+  <P>Please review this README before building or installing this software. We
+  encourage users to test the software and provide feedback.</P>
+  <HR>
+
+  <H3><A name="new_in_this_release" id="new_in_this_release">New in This
+  Release</A></H3>
+
+  <P>The following changes have been made to the driver since its last
+  release:</P>
+
+  <UL>
+    <LI>Raise IOError if the trace file cannot be opened</LI>
+
+    <LI>Extend search for odbcinst.ini</LI>
+  </UL>
+
+  <P>See the <I>CHANGELOG</I> for a complete listing of all changes.</P>
+  <HR>
+
+  <H2><A name="operating_system_support" id=
+  "operating_system_support">Operating System Support</A></H2>
+
+  <P>This Ingres Python DBI driver supports all of the platforms supported by
+  Ingres, including:</P>
+
+  <UL>
+    <LI>Solaris</LI>
+
+    <LI>HP-UX</LI>
+
+    <LI>AIX</LI>
+
+    <LI>Linux</LI>
+
+    <LI>Windows</LI>
+
+    <LI>SCO UnixWare</LI>
+
+    <LI>SCO OpenServer</LI>
+  </UL>
+  <HR>
+
+  <H2><A name="installation_considerations" id=
+  "installation_considerations">Installation Considerations</A></H2>
+
+  <P>To build and install the Ingres Python DBI interface, the following
+  components are needed:</P>
+
+  <UL>
+    <LI>Ingres r3 or above, including Ingres 2006. For a list of binary
+    downloads, see <A href="http://www.ingres.com" target=
+    "_blank">http://www.ingres.com</A>. For a source listing if you wish to
+    build Ingres from source code, see <A href="http://www.ingres.com" target=
+    "_blank">http://www.ingres.com</A>.</LI>
+
+    <LI>C compiler (for example, GNU/C or Microsoft Visual Studio)</LI>
+
+    <LI>Python interpreter version 2.4 or above</LI>
+
+    <LI>The Ingres Python DBI source code</LI>
+  </UL>
+  <HR>
+
+  <H2><A name="general_considerations" id="general_considerations">General
+  Considerations</A></H2>
+
+  <H3><A name="features_not_included" id="features_not_included">Features Not
+  Included</A></H3>
+
+  <P>The following features are currently not included in the Ingres Open
+  Source Python DBI driver:</P>
+
+  <UL>
+    <LI>Connection pooling (non-Windows only)</LI>
+
+    <LI>The following extended Cursor attributes and methods:
+
+      <UL>
+        <LI>messages</LI>
+
+        <LI>lastrowid</LI>
+
+        <LI>scroll</LI>
+      </UL>
+    </LI>
+
+    <LI>Due to the limitations of the Ingres ODBC driver, the following items
+    are not supported:
+
+      <UL>
+        <LI>Executing functions asynchronously</LI>
+
+        <LI>Cursor direction other than forward-only</LI>
+
+        <LI>Support for Ingres SQL command "COPY TABLE"</LI>
+
+        <LI>Support for Ingres SQL command "SAVEPOINT"</LI>
+      </UL>
+    </LI>
+
+    <LI>Due to syntax limitations of the Cursor.callproc() method, BYREF and
+    output parameters are not supported in stored procedures. Row-returning
+    procedures, however, are supported.</LI>
+  </UL>
+  <HR>
+
+  <H3><A name="syntax_for_the_ingresdbi_connect_method" id=
+  "syntax_for_the_ingresdbi_connect_method">Syntax for the ingresdbi.connect()
+  Method</A></H3>
+
+  <P>Connection objects are constructed using the ingresdbi.connect() method.
+  The following keywords are valid:</P>
+
+  <TABLE>
+    <TR>
+      <TH>Keyword</TH>
+
+      <TH>Description</TH>
+    </TR>
+
+    <TR>
+      <TD>dsn</TD>
+
+      <TD>the ODBC Data Source Name</TD>
+    </TR>
+
+    <TR>
+      <TD>database</TD>
+
+      <TD>the target database</TD>
+    </TR>
+
+    <TR>
+      <TD>connectstr</TD>
+
+      <TD>alternate connection string</TD>
+    </TR>
+
+    <TR>
+      <TD>vnode</TD>
+
+      <TD>vnode definition as defined in the Ingres netutil utility. For more
+      information, see the <A href=
+      "http://docs.ingres.com/connectivity/">Ingres Connectivity
+      Guide</A></TD>
+    </TR>
+
+    <TR>
+      <TD>uid</TD>
+
+      <TD>user login ID</TD>
+    </TR>
+
+    <TR>
+      <TD>pwd</TD>
+
+      <TD>user password</TD>
+    </TR>
+
+    <TR>
+      <TD>servertype</TD>
+
+      <TD>the type of the target database</TD>
+    </TR>
+
+    <TR>
+      <TD>trace</TD>
+
+      <TD>enables optional tracing of the DBI driver</TD>
+    </TR>
+
+    <TR>
+      <TD>rolename</TD>
+
+      <TD>role name</TD>
+    </TR>
+
+    <TR>
+      <TD>rolepwd</TD>
+
+      <TD>role password</TD>
+    </TR>
+
+    <TR>
+      <TD>group</TD>
+
+      <TD>group</TD>
+    </TR>
+
+    <TR>
+      <TD>dbms_pwd</TD>
+
+      <TD>DBMS password</TD>
+    </TR>
+
+    <TR>
+      <TD>selectloops</TD>
+
+      <TD>fetches using select loops instead of the default cursor loops</TD>
+    </TR>
+
+    <TR>
+      <TD>autocommit</TD>
+
+      <TD>whether autocommit is enabled. Autocommit is off by default</TD>
+    </TR>
+
+    <TR>
+      <TD>catschemanull</TD>
+
+      <TD>whether to disable underscores in wildcard searches</TD>
+    </TR>
+
+    <TR>
+      <TD>catconnect</TD>
+
+      <TD>whether to use separate sessions for catalog operations</TD>
+    </TR>
+
+    <TR>
+      <TD>numeric_overflow</TD>
+
+      <TD>whether to ignore or fail numeric overflows</TD>
+    </TR>
+  </TABLE>
+
+  <P>If the "dsn" keyword is specified, the other keywords are optional. If
+  the database is specified, the other keywords are optional. If the vnode
+  keyword is specified, and the connection is local, the value "(LOCAL)" can
+  be used as the vnode definition, or the vnode attribute can be omitted.</P>
+
+  <P>If the "connectstr" keyword is specified, the other keywords are
+  optional. The "connectstr" keyword specifies an ODBC connection string. For
+  examples of valid Ingres ODBC connection strings, see the <A href=
+  "http://docs.ingres.com/connectivity/">Ingres Connectivity Guide</A>.</P>
+
+  <P>All of the above keywords reference string values except for the "trace"
+  keyword. The "trace" keyword references a tuple with two members. The first
+  member is the tracing level, which can be a value of 0 through 7. The second
+  member is a string that describes the trace file. If the second member has a
+  value of "None", the tracing is written to the standard output.</P>
+
+  <P>The following values are valid for the "autocommit", "selectloops",
+  "catconnect", "catschemanull", and "numeric_overflow" keyword
+  attributes:</P>
+
+  <UL>
+    <LI>"on"</LI>
+
+    <LI>"off"</LI>
+
+    <LI>"y"</LI>
+
+    <LI>"n"</LI>
+
+    <LI>"Yes"</LI>
+
+    <LI>"No"</LI>
+  </UL>
+
+  <P>The following values are valid for the "servertype" keyword:</P>
+
+  <UL>
+    <LI>"INGRES"</LI>
+
+    <LI>"DCOM"</LI>
+
+    <LI>"IDMS"</LI>
+
+    <LI>"DB2"</LI>
+
+    <LI>"IMS"</LI>
+
+    <LI>"ODBC"</LI>
+
+    <LI>"VSAM"</LI>
+
+    <LI>"RDB"</LI>
+
+    <LI>"STAR"</LI>
+
+    <LI>"RMS"</LI>
+
+    <LI>"ORACLE"</LI>
+
+    <LI>"INFORMIX"</LI>
+
+    <LI>"SYBASE"</LI>
+
+    <LI>"MSSQL"</LI>
+
+    <LI>"DB2UDB"</LI>
+  </UL>
+
+  <P>If "INGRES" is not specified, the "servertype" values require access to
+  an Ingres (that is, Enterprise Access) or EDBC gateway server. Otherwise, no
+  gateway is required. The default is "INGRES".</P>
+
+  <P>Select loops usually have the best performance. However, only one select
+  loop can be active at a time. Cursor loops support unlimited multiple active
+  result sets, but can be slower in performance.</P>
+
+  <P>Following is an example of a valid instantiation of the ingresdbi
+  connection object, using all keywords:</P>
+  <PRE>
+    conn = ingresdbi.connect(dsn ="myDSN",
+            database  "myDB",
+            vnode = "(LOCAL)",
+            uid = "myUID",
+            pwd = "myPWD",
+            dbms_pwd = "myDbmsPWD",
+            group = "myGroup",
+            rolename = "myRoleName",
+            rolepwd = "myRolePwd",
+            selectloops = "Y",
+            autocommit = "Y",
+            servertype = "INGRES",
+            driver = "Ingres",
+            catschemanull = "off",
+            catconnect = "Off",
+            numeric_overflow = "yes",
+            connectStr = "DSN=myDSN",
+            trace = (7, "dbi.log")
+            )
+            
+</PRE>
+
+  <P>Connection objects can be constructed without keywords. If keywords are
+  not used, arguments must follow the order: dsn, database, vnode, uid, pwd,
+  selectloops, autocommit, servertype, and trace. An example without keywords
+  is shown here:</P>
+  <PRE>
+    conn = ingresdbi.connect(
+            "myDSN",
+            "myDB",
+            "(LOCAL)",
+            "MnyUID",
+            "myPWD",
+            "Y",
+            "Yes",
+            "INGRES",
+            "Ingres 3.0",
+            "myRoleName",
+            "myrolePWD",
+            "myGroup",
+            "n",
+            "NO",
+            "YES",
+            "yes",
+            "N",
+            "myDbmsPwd",
+            "DSN=myDSN",
+            (7,"dbi.log")
+            )
+            
+</PRE>
+  <HR>
+
+  <H3><A name="syntax_for_the_ingres_extension_cursor_prepared_attribute" id=
+  "syntax_for_the_ingres_extension_cursor_prepared_attribute">Syntax for the
+  Ingres Extension Cursor.prepared Attribute</A></H3>
+
+  <P>Although PEP 249 requires all queries to be prepared, the Ingres DBI
+  driver does not prepare queries by default. Instead, the Cursor attribute
+  "prepared" can be deployed.</P>
+
+  <P>If Cursor.prepared is set to "y", "yes", or "on", subsequent queries
+  specified in the Cursor.execute() or Cursor.executemany() methods are
+  executed as prepared. However, only one query string is allowed for each
+  cursor instantiation. If the query string is changed, a warning is issued,
+  and the Ingres DBI driver resorts to direct query execution.</P>
+
+  <P>The Cursor.callproc() method raises an exception if the Cursor.prepared
+  attribute is set to "y", "yes", or "on".</P>
+
+  <P>The following values (entered in either uppercase or lowercase) are valid
+  for the Cursor.prepared attribute:</P>
+
+  <UL>
+    <LI>"on"</LI>
+
+    <LI>"off"</LI>
+
+    <LI>"y"</LI>
+
+    <LI>"n"</LI>
+
+    <LI>"Yes"</LI>
+
+    <LI>"No"</LI>
+  </UL>
+  <HR>
+
+  <H2><A name="building_and_installing_the_ingres_python_dbi_driver" id=
+  "building_and_installing_the_ingres_python_dbi_driver">Building and
+  Installing the Ingres Python DBI Driver</A></H2>
+
+  <H3><A name="building_the_driver" id="building_the_driver">Building the
+  Driver</A></H3>
+
+  <P>The build process has been simplified by the use of the Python <A href=
+  "http://docs.python.org/lib/module-distutils.html">DistUtils package</A>.
+  Start the build process by extracting the necessary files from the Ingres
+  DBI compressed archive:</P>
+
+  <H4>Mac OS X, Linux and Unix</H4>
+
+  <OL>
+    <LI>Extract the files from ingresdbi-2.0.1.tar.gz:
+      <PRE>
+    gzip -cd ingresdbi-2.0.1.tar.gz | tar zvf -
+</PRE>or if you have GNU tar:
+      <PRE>
+    tar zxvf ingresdbi-2.0.1.tar.gz
+</PRE>
+    </LI>
+
+    <LI>Enter the newly created source directory,
+    <CODE>ingresdbi-2.0.1</CODE>:
+      <PRE>
+    cd ingresdbi-2.0.1
+</PRE>
+    </LI>
+
+    <LI>Initiate the build process.
+      <PRE>
+    python setup.py build
+</PRE>
+    </LI>
+  </OL>
+
+  <H4>Windows</H4>
+
+  <UL>
+    <LI>Use WinZip (or similar product) to extract the directories and files
+    from ingresdbi-2.0.1.zip.
+
+      <UL>
+        <LI>Cygwin users can use either of the commands for <I>Mac OS X, Linux
+        and Unix</I></LI>
+      </UL>
+    </LI>
+
+    <LI>Enter the newly created source directory,
+    <CODE>ingresdbi-2.0.1</CODE>:
+      <PRE>
+    cd ingresdbi-2.0.1
+</PRE>
+    </LI>
+
+    <LI>Initiate the build process.
+      <PRE>
+    python setup.py build
+</PRE>
+    </LI>
+  </UL>
+
+  <P><B>Note:</B> You can skip this and jump straight to the install process
+  as this will automatically build.</P>
+  <HR>
+
+  <H3><A name="installing_the_driver" id="installing_the_driver">Installing
+  the Driver</A></H3>
+
+  <P>As with the build process, the installation process makes use of
+  DistUtils. By default, the Ingres Python DBI driver is installed into
+  Python's site-packages directory. The ability to provide alternate
+  installation locations has not been investigated at this time. The only
+  requirement for installing is to be able to write to the site-packages
+  directory.</P>
+
+  <P>To install, execute the following command:</P>
+  <PRE>
+    python setup.py install
+</PRE>
+
+  <P>To create a deliverable source package, execute the following
+  command:</P>
+  <PRE>
+    python setup.py sdist
+</PRE>
+  <HR>
+
+  <H2><A name="example_code" id="example_code">Example Code</A></H2>
+
+  <P>The following code provides a simple Python database example using the
+  Ingres Python DBI driver:</P>
+  <PRE>
+    import ingresdbi
+    import pprint
+    """
+    import os
+    username=os.getenv('test_username')
+    password=os.getenv('test_password')
+    vnode=os.getenv('test_vnode')
+    database=os.getenv('test_database')
+    trace=None
+    """
+    enable_trace = 0
+    if enable_trace == 1:
+        trace=(7, None)
+    else:
+        trace=(0, None)
+    database='iidbdb'
+    vnode='(local)'
+    prog_str = 'DEMO SIMPLE SELECT'
+    print prog_str, "connecting to database: " + database 
+    dc=ingresdbi.connect(database=database, vnode=vnode, trace=trace)
+    print prog_str, "Creating new cursor()"
+    c=dc.cursor()
+    print prog_str, "About to call cursor.execute()"
+    c.execute("select * from iidbconstants")
+    print "cursor.description = "
+    description = c.description
+    pprint.pprint (description )
+    print prog_str, "cursor.fetchall()"
+    rows = c.fetchall()
+    print "rows = ", rows
+    row_count = 0
+    for row in rows:
+        row_count = row_count + 1
+    print 'Row #', row_count
+    count = 0
+    for column in row:
+        print description[count][0] , ': ', column
+        count = count + 1
+    print "-----------------------------"
+    print prog_str, "connection.commit()"
+    dc.commit()
+    print prog_str, "connection.close()"
+    dc.close()
+</PRE>
+  <HR>
+
+  <H2><A name="known_issues" id="known_issues">Known Issues</A></H2>
+
+  <H3><A name="generic_issues" id="generic_issues">Generic
+  Issues</A></H3>
+
+  <UL>
+    <LI>There is no support for installing to an alternate directory other
+    than the default site-packages.</LI>
+  </UL>
+
+  <H3><A name="windows_issues" id="generic_issues">Windows
+  Issues</A></H3>
+
+  <UL>
+    <LI>
+      <B>Python 2.3 only</B> - <CODE>python setup.py build</CODE> may fail
+      with:
+      <PRE>
+    error: Python was built with version 6 of Visual Studio,
+    and extensions need to be built with the same version of the
+    compiler, but it isn't installed.
+</PRE>
+
+      <P>If you have Visual Studio version 6 installed, run Microsoft Visual
+      C++ 6.0 <CODE>MSDEV.EXE</CODE> (the GUI), quit out, and then retry the
+      build. For further information, see Python mailing list <A href=
+      "http://mail.python.org/pipermail/python-dev/2003-November/040478.html"
+      target=
+      "_blank">http://mail.python.org/pipermail/python-dev/2003-November/040478.html</A>.</P>
+    </LI>
+  </UL>
+  <HR>
+
+  <H2><A name="support" id="support">Support</A></H2>
+
+  <P>Support for the Python Ingres DBI interface is available from a number of
+  different sources. Users with a support contract can either raise an issue
+  via <A href=
+  "https://servicedesk.ingres.com/">https://servicedesk.ingres.com/</A> or
+  through their local technical support department. See <A href=
+  "http://ingres.com/support" target="_blank">http://ingres.com/support</A>
+  for a complete list of locations, primary service hours, and telephone
+  numbers. Users without a support contract can post questions or problems to
+  the Ingres Community Forums (<A href=
+  "http://community.ingres.com/forums/viewforum.php?f=5">http://community.ingres.com/forums/viewforum.php?f=5</A>)
+  or to comp.databases.ingres (<A href=
+  "http://groups.google.com/group/comp.databases.ingres">http://groups.google.com/group/comp.databases.ingres</A>).</P>
+  <HR>
+
+  <P>Revision $Id$</P>
+
+  <P>© 2008 Ingres Corporation. All rights reserved.</P><!--
+Vim modeline directives
+vim:tabstop=4 shiftwidth=4 expandtab fileencoding=utf-8
+-->
+</BODY>
+</HTML>

Added: drivers/python/trunk/README.txt
===================================================================
--- drivers/python/trunk/README.txt	                        (rev 0)
+++ drivers/python/trunk/README.txt	2008-06-05 17:33:37 UTC (rev 47)
@@ -0,0 +1,415 @@
+
+
+Ingres Python DBI Driver Version 2.0.1
+
+-------------------------------------------------------------------------------
+
+  1. Welcome
+
+       1. New_in_This_Release
+
+  2. Operating_System_Support
+  3. Installation_Considerations
+  4. General_Considerations
+
+       1. Features_Not_Included
+       2. Syntax_for_the_ingresdbi.connect()_Method
+       3. Syntax_for_the_Ingres_Extension_Cursor.prepared_Attribute
+
+  5. Building_and_Installing_the_Ingres_Python_DBI_Driver
+
+       1. Building_the_Driver
+       2. Installing_the_Driver
+
+  6. Example_Code
+  7. Known_Issues
+
+       1. Generic_Issues
+       2. Windows_Issues
+
+  8. Support
+
+-------------------------------------------------------------------------------
+
+Welcome
+
+This README contains all the documentation on the Ingres Python DBI driver.
+Please review this README before building or installing this software. We
+encourage users to test the software and provide feedback.
+-------------------------------------------------------------------------------
+
+New in This Release
+
+The following changes have been made to the driver since its last release:
+
+* Raise IOError if the trace file cannot be opened
+* Extend search for odbcinst.ini
+
+See the CHANGELOG for a complete listing of all changes.
+-------------------------------------------------------------------------------
+
+Operating System Support
+
+This Ingres Python DBI driver supports all of the platforms supported by
+Ingres, including:
+
+* Solaris
+* HP-UX
+* AIX
+* Linux
+* Windows
+* SCO UnixWare
+* SCO OpenServer
+
+-------------------------------------------------------------------------------
+
+Installation Considerations
+
+To build and install the Ingres Python DBI interface, the following components
+are needed:
+
+* Ingres r3 or above, including Ingres 2006. For a list of binary downloads,
+  see http://www.ingres.com. For a source listing if you wish to build Ingres
+  from source code, see http://www.ingres.com.
+* C compiler (for example, GNU/C or Microsoft Visual Studio)
+* Python interpreter version 2.4 or above
+* The Ingres Python DBI source code
+
+-------------------------------------------------------------------------------
+
+General Considerations
+
+
+Features Not Included
+
+The following features are currently not included in the Ingres Open Source
+Python DBI driver:
+
+* Connection pooling (non-Windows only)
+* The following extended Cursor attributes and methods:
+
+  o messages
+  o lastrowid
+  o scroll
+
+* Due to the limitations of the Ingres ODBC driver, the following items are not
+  supported:
+
+  o Executing functions asynchronously
+  o Cursor direction other than forward-only
+  o Support for Ingres SQL command "COPY TABLE"
+  o Support for Ingres SQL command "SAVEPOINT"
+
+* Due to syntax limitations of the Cursor.callproc() method, BYREF and output
+  parameters are not supported in stored procedures. Row-returning procedures,
+  however, are supported.
+
+-------------------------------------------------------------------------------
+
+Syntax for the ingresdbi.connect() Method
+
+Connection objects are constructed using the ingresdbi.connect() method. The
+following keywords are valid:
+
+Keyword          Description
+dsn              the ODBC Data Source Name
+database         the target database
+connectstr       alternate connection string
+vnode            vnode definition as defined in the Ingres netutil utility. For
+                 more information, see the Ingres_Connectivity_Guide
+uid              user login ID
+pwd              user password
+servertype       the type of the target database
+trace            enables optional tracing of the DBI driver
+rolename         role name
+rolepwd          role password
+group            group
+dbms_pwd         DBMS password
+selectloops      fetches using select loops instead of the default cursor loops
+autocommit       whether autocommit is enabled. Autocommit is off by default
+catschemanull    whether to disable underscores in wildcard searches
+catconnect       whether to use separate sessions for catalog operations
+numeric_overflow whether to ignore or fail numeric overflows
+
+If the "dsn" keyword is specified, the other keywords are optional. If the
+database is specified, the other keywords are optional. If the vnode keyword is
+specified, and the connection is local, the value "(LOCAL)" can be used as the
+vnode definition, or the vnode attribute can be omitted.
+If the "connectstr" keyword is specified, the other keywords are optional. The
+"connectstr" keyword specifies an ODBC connection string. For examples of valid
+Ingres ODBC connection strings, see the Ingres_Connectivity_Guide.
+All of the above keywords reference string values except for the "trace"
+keyword. The "trace" keyword references a tuple with two members. The first
+member is the tracing level, which can be a value of 0 through 7. The second
+member is a string that describes the trace file. If the second member has a
+value of "None", the tracing is written to the standard output.
+The following values are valid for the "autocommit", "selectloops",
+"catconnect", "catschemanull", and "numeric_overflow" keyword attributes:
+
+* "on"
+* "off"
+* "y"
+* "n"
+* "Yes"
+* "No"
+
+The following values are valid for the "servertype" keyword:
+
+* "INGRES"
+* "DCOM"
+* "IDMS"
+* "DB2"
+* "IMS"
+* "ODBC"
+* "VSAM"
+* "RDB"
+* "STAR"
+* "RMS"
+* "ORACLE"
+* "INFORMIX"
+* "SYBASE"
+* "MSSQL"
+* "DB2UDB"
+
+If "INGRES" is not specified, the "servertype" values require access to an
+Ingres (that is, Enterprise Access) or EDBC gateway server. Otherwise, no
+gateway is required. The default is "INGRES".
+Select loops usually have the best performance. However, only one select loop
+can be active at a time. Cursor loops support unlimited multiple active result
+sets, but can be slower in performance.
+Following is an example of a valid instantiation of the ingresdbi connection
+object, using all keywords:
+
+      conn = ingresdbi.connect(dsn ="myDSN",
+              database  "myDB",
+              vnode = "(LOCAL)",
+              uid = "myUID",
+              pwd = "myPWD",
+              dbms_pwd = "myDbmsPWD",
+              group = "myGroup",
+              rolename = "myRoleName",
+              rolepwd = "myRolePwd",
+              selectloops = "Y",
+              autocommit = "Y",
+              servertype = "INGRES",
+              driver = "Ingres",
+              catschemanull = "off",
+              catconnect = "Off",
+              numeric_overflow = "yes",
+              connectStr = "DSN=myDSN",
+              trace = (7, "dbi.log")
+              )
+
+Connection objects can be constructed without keywords. If keywords are not
+used, arguments must follow the order: dsn, database, vnode, uid, pwd,
+selectloops, autocommit, servertype, and trace. An example without keywords is
+shown here:
+
+      conn = ingresdbi.connect(
+              "myDSN",
+              "myDB",
+              "(LOCAL)",
+              "MnyUID",
+              "myPWD",
+              "Y",
+              "Yes",
+              "INGRES",
+              "Ingres 3.0",
+              "myRoleName",
+              "myrolePWD",
+              "myGroup",
+              "n",
+              "NO",
+              "YES",
+              "yes",
+              "N",
+              "myDbmsPwd",
+              "DSN=myDSN",
+              (7,"dbi.log")
+              )
+
+-------------------------------------------------------------------------------
+
+Syntax for the Ingres Extension Cursor.prepared Attribute
+
+Although PEP 249 requires all queries to be prepared, the Ingres DBI driver
+does not prepare queries by default. Instead, the Cursor attribute "prepared"
+can be deployed.
+If Cursor.prepared is set to "y", "yes", or "on", subsequent queries specified
+in the Cursor.execute() or Cursor.executemany() methods are executed as
+prepared. However, only one query string is allowed for each cursor
+instantiation. If the query string is changed, a warning is issued, and the
+Ingres DBI driver resorts to direct query execution.
+The Cursor.callproc() method raises an exception if the Cursor.prepared
+attribute is set to "y", "yes", or "on".
+The following values (entered in either uppercase or lowercase) are valid for
+the Cursor.prepared attribute:
+
+* "on"
+* "off"
+* "y"
+* "n"
+* "Yes"
+* "No"
+
+-------------------------------------------------------------------------------
+
+Building and Installing the Ingres Python DBI Driver
+
+
+Building the Driver
+
+The build process has been simplified by the use of the Python DistUtils
+package. Start the build process by extracting the necessary files from the
+Ingres DBI compressed archive:
+
+Mac OS X, Linux and Unix
+
+
+  1. Extract the files from ingresdbi-2.0.1.tar.gz:
+
+           gzip -cd ingresdbi-2.0.1.tar.gz | tar zvf -
+
+     or if you have GNU tar:
+
+           tar zxvf ingresdbi-2.0.1.tar.gz
+
+  2. Enter the newly created source directory, ingresdbi-2.0.1:
+
+           cd ingresdbi-2.0.1
+
+  3. Initiate the build process.
+
+           python setup.py build
+
+
+
+Windows
+
+
+* Use WinZip (or similar product) to extract the directories and files from
+  ingresdbi-2.0.1.zip.
+
+  o Cygwin users can use either of the commands for Mac OS X, Linux and Unix
+
+* Enter the newly created source directory, ingresdbi-2.0.1:
+
+        cd ingresdbi-2.0.1
+
+* Initiate the build process.
+
+        python setup.py build
+
+
+Note: You can skip this and jump straight to the install process as this will
+automatically build.
+-------------------------------------------------------------------------------
+
+Installing the Driver
+
+As with the build process, the installation process makes use of DistUtils. By
+default, the Ingres Python DBI driver is installed into Python's site-packages
+directory. The ability to provide alternate installation locations has not been
+investigated at this time. The only requirement for installing is to be able to
+write to the site-packages directory.
+To install, execute the following command:
+
+      python setup.py install
+
+To create a deliverable source package, execute the following command:
+
+      python setup.py sdist
+
+-------------------------------------------------------------------------------
+
+Example Code
+
+The following code provides a simple Python database example using the Ingres
+Python DBI driver:
+
+      import ingresdbi
+      import pprint
+      """
+      import os
+      username=os.getenv('test_username')
+      password=os.getenv('test_password')
+      vnode=os.getenv('test_vnode')
+      database=os.getenv('test_database')
+      trace=None
+      """
+      enable_trace = 0
+      if enable_trace == 1:
+          trace=(7, None)
+      else:
+          trace=(0, None)
+      database='iidbdb'
+      vnode='(local)'
+      prog_str = 'DEMO SIMPLE SELECT'
+      print prog_str, "connecting to database: " + database
+      dc=ingresdbi.connect(database=database, vnode=vnode, trace=trace)
+      print prog_str, "Creating new cursor()"
+      c=dc.cursor()
+      print prog_str, "About to call cursor.execute()"
+      c.execute("select * from iidbconstants")
+      print "cursor.description = "
+      description = c.description
+      pprint.pprint (description )
+      print prog_str, "cursor.fetchall()"
+      rows = c.fetchall()
+      print "rows = ", rows
+      row_count = 0
+      for row in rows:
+          row_count = row_count + 1
+      print 'Row #', row_count
+      count = 0
+      for column in row:
+          print description[count][0] , ': ', column
+          count = count + 1
+      print "-----------------------------"
+      print prog_str, "connection.commit()"
+      dc.commit()
+      print prog_str, "connection.close()"
+      dc.close()
+
+-------------------------------------------------------------------------------
+
+Known Issues
+
+
+Generic Issues
+
+
+* There is no support for installing to an alternate directory other than the
+  default site-packages.
+
+
+Windows Issues
+
+
+* Python 2.3 only - python setup.py build may fail with:
+
+            error: Python was built with version 6 of Visual Studio,
+            and extensions need to be built with the same version of the
+            compiler, but it isn't installed.
+
+  If you have Visual Studio version 6 installed, run Microsoft Visual C++ 6.0
+  MSDEV.EXE (the GUI), quit out, and then retry the build. For further
+  information, see Python mailing list http://mail.python.org/pipermail/python-
+  dev/2003-November/040478.html.
+
+-------------------------------------------------------------------------------
+
+Support
+
+Support for the Python Ingres DBI interface is available from a number of
+different sources. Users with a support contract can either raise an issue via
+https://servicedesk.ingres.com/ or through their local technical support
+department. See http://ingres.com/support for a complete list of locations,
+primary service hours, and telephone numbers. Users without a support contract
+can post questions or problems to the Ingres Community Forums (http://
+community.ingres.com/forums/viewforum.php?f=5) or to comp.databases.ingres
+(http://groups.google.com/group/comp.databases.ingres).
+-------------------------------------------------------------------------------
+Revision $Id$
+© 2008 Ingres Corporation. All rights reserved.
+




More information about the svn-commits mailing list