lib/python/Products/ZODBCDA/browse.dtml100666 0 0 632 6636536566 20522 0ustar00unknownunknown 0 0 <!--#var title_or_id--> tables <!--#var Type--> lib/python/Products/ZODBCDA/CHANGES.txt100666 0 0 4006 6646421052 20147 0ustar00unknownunknown 0 0 Z ODBC DA Changes Z ODBC DA 3.0.3 New Features - Added documentation of the connection string format to the connection add form and README file. - The source for the extension module used by the DA is included. Bugs Fixed - Connection to MS SQL Server failed due to a failure to check for unusual "success" conditions during connection. - Errors were reported incorrectly due to a missing exception definition in the internal error handling machinery. Z ODBC DA 3.0.2 Bugs Fixed - Added module aliases for b/w compatibility with older databases containing AqueductODBC.DA objects. Z ODBC DA 3.0.1 Bugs Fixed - Changed the documentation to make it clear that no external binaries are needed to use this DA, as it is currently win32 only, and we provide the required ODBC extension (sql.pyd) in the distribution. Z ODBC DA 3.0.0 This is the first Zope version. Aqueduct ODBC 2.0.1 Bugs Fixed - Internal ODBC objects might be deleted in the wrong order, leading to process crashes. - The permission for adding ODBC permissions was not set correctly. Aqueduct ODBC 2.0 This is a major release. It adds advanced features for browsing database schema information. Bugs Fixed - Binary data were not handled correctly. - Date-time and Date data for dates before 1970 were not handled correctly. - Data modifications were automatically committed. - The interface could not distinguish between integer and floating-point numbers. Features Added - AqueductODBC database connection objects now have a "Browse" tab that can be used to browse tables and views and their schemas. - When adding a database connection, existing data sources are listed. It is no longer necessary to enter a connection string. lib/python/Products/ZODBCDA/connectionAdd.dtml100666 0 0 3701 6646416500 21773 0ustar00unknownunknown 0 0 Add Z ODBC Database Connection

Add Z ODBC Database Connection

Id
Title
Select an ODBC Data Source
or enter a Database Connection String 1
Connect immediately

1
The database connection string is of the form:
    dsn user password
  
where the data source name, user id, and password are separated by one or more spaces.
lib/python/Products/ZODBCDA/DA.py100666 0 0 21330 6763507012 17214 0ustar00unknownunknown 0 0 ############################################################################## # # Zope Public License (ZPL) Version 1.0 # ------------------------------------- # # Copyright (c) Digital Creations. All rights reserved. # # This license has been certified as Open Source(tm). # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # 1. Redistributions in source code must retain the above copyright # notice, this list of conditions, and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions, and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # # 3. Digital Creations requests that attribution be given to Zope # in any manner possible. Zope includes a "Powered by Zope" # button that is installed by default. While it is not a license # violation to remove this button, it is requested that the # attribution remain. A significant investment has been put # into Zope, and this effort will continue if the Zope community # continues to grow. This is one way to assure that growth. # # 4. All advertising materials and documentation mentioning # features derived from or use of this software must display # the following acknowledgement: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # In the event that the product being advertised includes an # intact Zope distribution (with copyright and license included) # then this clause is waived. # # 5. Names associated with Zope or Digital Creations must not be used to # endorse or promote products derived from this software without # prior written permission from Digital Creations. # # 6. Modified redistributions of any form whatsoever must retain # the following acknowledgment: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # Intact (re-)distributions of any official Zope release do not # require an external acknowledgement. # # 7. Modifications are encouraged but must be packaged separately as # patches to official Zope releases. Distributions that do not # clearly separate the patches from the original work must be clearly # labeled as unofficial distributions. Modifications which do not # carry the name Zope may be packaged in any form, as long as they # conform to all of the clauses above. # # # Disclaimer # # THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # # This software consists of contributions made by Digital Creations and # many individuals on behalf of Digital Creations. Specific # attributions are listed in the accompanying credits file. # ############################################################################## database_type='ODBC' __doc__='''%s Database Connection $Id: DA.py,v 1.12 1999/09/02 14:47:38 petrilli Exp $''' % database_type __version__='$Revision: 1.12 $'[11:-2] from db import DB, manage_ODBCDataSources import Shared.DC.ZRDB.Connection, sys from Globals import HTMLFile from ImageFile import ImageFile from ExtensionClass import Base manage_addZODBCConnectionForm=HTMLFile('connectionAdd',globals()) def manage_addZODBCConnection(self, id, title, connection_string, connection='', check=None, REQUEST=None): """Add a DB connection to a folder""" self._setObject(id, Connection( id, title, connection_string or connection, check)) if REQUEST is not None: return self.manage_main(self,REQUEST) class Connection(Shared.DC.ZRDB.Connection.Connection): " " database_type=database_type id='%s_database_connection' % database_type meta_type=title='Z %s Database Connection' % database_type icon='misc_/Z%sDA/conn' % database_type _isAnSQLConnection=1 def factory(self): return DB manage_options=Shared.DC.ZRDB.Connection.Connection.manage_options+( {'label': 'Browse', 'action':'manage_browse'}, # {'label': 'Design', 'action':'manage_tables'}, ) # manage_tables=HTMLFile('tables',globals()) manage_browse=HTMLFile('browse',globals()) def table_info(self): return self._v_database_connection.table_info() info=None def tpValues(self): r=[] c=self._v_database_connection try: for d in c.tables(rdb=0): try: d['_columns']=c.columns(d['TABLE_NAME']) b=TableBrowser() b._d=d try: b.icon=table_icons[d['TABLE_TYPE']] except: pass r.append(b) except: # print d['TABLE_NAME'], sys.exc_type, sys.exc_value pass finally: pass return r def manage_wizard(self, tables): " " def manage_join(self, tables, select_cols, join_cols, REQUEST=None): """Create an SQL join""" def manage_insert(self, table, cols, REQUEST=None): """Create an SQL insert""" def manage_update(self, table, keys, cols, REQUEST=None): """Create an SQL update""" class Browser(Base): def __getattr__(self, name): try: return self._d[name] except KeyError: raise AttributeError, name class TableBrowser(Browser): icon='what' Description='' info=HTMLFile('table_info',globals()) def tpValues(self): r=[] for d in self._d['_columns']: b=ColumnBrowser() b._d=d try: b.icon=field_icons[d['Type']] except: pass r.append(b) return r def tpId(self): return self._d['TABLE_NAME'] def tpURL(self): return "Table/%s" % self._d['TABLE_NAME'] def Name(self): return self._d['TABLE_NAME'] def Type(self): return self._d['TABLE_TYPE'] class ColumnBrowser(Browser): icon='field' def tpId(self): return self._d['Name'] def tpURL(self): return "Column/%s" % self._d['Name'] def Description(self): d=self._d if d['Scale']: return " %(Type)s(%(Precision)s,%(Scale)s) %(Nullable)s" % d else: return " %(Type)s(%(Precision)s) %(Nullable)s" % d classes=('DA.Connection',) meta_types=( {'name':'Z %s Database Connection' % database_type, 'action':'manage_addZ%sConnectionForm' % database_type, }, ) folder_methods={ 'manage_addZODBCConnection': manage_addZODBCConnection, 'manage_addZODBCConnectionForm': manage_addZODBCConnectionForm, 'manage_ODBCDataSources': manage_ODBCDataSources } __ac_permissions__=( ('Add Z ODBC Database Connections', ('manage_addZODBCConnectionForm', 'manage_addZODBCConnection')), ) misc_={ 'conn': ImageFile('Shared/DC/ZRDB/www/DBAdapterFolder_icon.gif'), } for icon in ('table', 'view', 'stable', 'what', 'field', 'text','bin','int','float', 'date','time','datetime'): misc_[icon]=ImageFile('icons/%s.gif' % icon, globals()) table_icons={ 'TABLE': 'table', 'VIEW':'view', 'SYSTEM_TABLE': 'stable', } field_icons={ 'BIGINT': 'int', 'BINARY': 'bin', 'BIT': 'bin', 'CHAR': 'text', 'DATE': 'date', 'DECIMAL': 'float', 'DOUBLE': 'float', 'FLOAT': 'float', 'INTEGER': 'int', 'LONGVARBINARY': 'bin', 'LONGVARCHAR': 'text', 'NUMERIC': 'float', 'REAL': 'float', 'SMALLINT': 'int', 'TIME': 'time', 'TIMESTAMP': 'datetime', 'TINYINT': 'int', 'VARBINARY': 'bin', 'VARCHAR': 'text', } lib/python/Products/ZODBCDA/db.py100666 0 0 24024 6763754120 17324 0ustar00unknownunknown 0 0 ############################################################################## # # Zope Public License (ZPL) Version 1.0 # ------------------------------------- # # Copyright (c) Digital Creations. All rights reserved. # # This license has been certified as Open Source(tm). # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # 1. Redistributions in source code must retain the above copyright # notice, this list of conditions, and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions, and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # # 3. Digital Creations requests that attribution be given to Zope # in any manner possible. Zope includes a "Powered by Zope" # button that is installed by default. While it is not a license # violation to remove this button, it is requested that the # attribution remain. A significant investment has been put # into Zope, and this effort will continue if the Zope community # continues to grow. This is one way to assure that growth. # # 4. All advertising materials and documentation mentioning # features derived from or use of this software must display # the following acknowledgement: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # In the event that the product being advertised includes an # intact Zope distribution (with copyright and license included) # then this clause is waived. # # 5. Names associated with Zope or Digital Creations must not be used to # endorse or promote products derived from this software without # prior written permission from Digital Creations. # # 6. Modified redistributions of any form whatsoever must retain # the following acknowledgment: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # Intact (re-)distributions of any official Zope release do not # require an external acknowledgement. # # 7. Modifications are encouraged but must be packaged separately as # patches to official Zope releases. Distributions that do not # clearly separate the patches from the original work must be clearly # labeled as unofficial distributions. Modifications which do not # carry the name Zope may be packaged in any form, as long as they # conform to all of the clauses above. # # # Disclaimer # # THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # # This software consists of contributions made by Digital Creations and # many individuals on behalf of Digital Creations. Specific # attributions are listed in the accompanying credits file. # ############################################################################### from sql import * from string import join, split, find, strip import sys from Shared.DC.ZRDB.THUNK import THUNKED_TM rc=sys.getrefcount error=DatabaseError='ODBC Database Error' def manage_ODBCDataSources(*args): r=[] status, name, desc = SQLDataSources(SQL_FETCH_FIRST) while status==SQL_SUCCESS: r.append((name, desc)) status, name, desc = SQLDataSources(SQL_FETCH_NEXT) return r defs={ SQL_BIGINT: 'i', SQL_BINARY: 't', SQL_BIT: 'i', SQL_CHAR: 't', SQL_DATE: 'd', SQL_DECIMAL: 'N', SQL_DOUBLE: 'n', SQL_FLOAT: 'n', SQL_INTEGER: 'i', SQL_LONGVARBINARY: 't', SQL_LONGVARCHAR: 't', SQL_NUMERIC: 'N', SQL_REAL: 'n', SQL_SMALLINT: 'i', SQL_TIME: 't', SQL_TIMESTAMP: 'd', SQL_TINYINT: 'i', SQL_VARBINARY: 't', SQL_VARCHAR: 't', } tpnames={ SQL_BIGINT: 'BIGINT', SQL_BINARY: 'BINARY', SQL_BIT: 'BIT', SQL_CHAR: 'CHAR', SQL_DATE: 'DATE', SQL_DECIMAL: 'DECIMAL', SQL_DOUBLE: 'DOUBLE', SQL_FLOAT: 'FLOAT', SQL_INTEGER: 'INTEGER', SQL_LONGVARBINARY: 'LONGVARBINARY', SQL_LONGVARCHAR: 'LONGVARCHAR', SQL_NUMERIC: 'NUMERIC', SQL_REAL: 'REAL', SQL_SMALLINT: 'SMALLINT', SQL_TIME: 'TIME', SQL_TIMESTAMP: 'TIMESTAMP', SQL_TINYINT: 'TINYINT', SQL_VARBINARY: 'VARBINARY', SQL_VARCHAR: 'VARCHAR', } binary_types=SQL_BINARY, SQL_LONGVARBINARY, SQL_VARBINARY class DB(THUNKED_TM): def __init__(self, connection_string=''): self.connection_string=connection_string d=split(connection_string) if len(d) < 1 or len(d) > 3: raise 'Invalid Connection String', d while len(d) < 3: d.append('') self.connection=c=SQLConnection(d[0],d[1],d[2]) try: SQLSetConnectOption(c,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF) except: pass # Oh well self.stmt=c() def table_info(self): SQLTables(self.stmt, None, None, None, 'TABLE') r=[] for row in split(self.query(), '\n')[2:-1]: q, owner, name, type, remarks = tuple(split(row,'\t')) if owner: owner="(owned by %s) " % owner owner=owner+remarks if owner: owner=', '+owner r.append((name, owner)) return r def tables(self, Qualifier=None, Owner=None, Name=None, Type=None, rdb=1): SQLTables(self.stmt, Qualifier, Owner, Name, Type) return self.query(rdb=rdb) def query(self, src=None, max_rows=99999999, rdb=1): stmt=self.stmt self._register() try: if src is not None: r=filter(strip,split(src,'\0')) if not r: raise ValueError, 'null sql' if len(r) > 1: res=None for s in r: SQLExecDirect(stmt,s) status, ncol = SQLNumResultCols(stmt) if ncol: if res is not None: raise ValueError, ( 'multiple selects are not allowed') res=self.query(None, max_rows, rdb) if res==None: if rdb: res="x\n8s\n" else: res=() return res SQLExecDirect(stmt,src) except error, v: state, native, mess = v raise error, "%s (%s)" % (mess, state) status, ncol = SQLNumResultCols(stmt) if ncol==0: if rdb: return "x\n8s\n" else: return () r=[] row=['']*ncol names=['']*ncol rdbdefs=['']*ncol indexes=range(ncol) binary_flags=[0]*ncol for i in range(ncol): status, name, tp, prec, scale, nullable=SQLDescribeCol(stmt,i+1) names[i]=name if prec < 1: prec=8 binary_flags[i]=tp in binary_types if defs.has_key(tp): tp=defs[tp] else: tp='t' if tp=='N' and scale==0: tp='i' rdbdefs[i]=tp row[i]="%s%s" % (prec,tp) if rdb: r.append(join(names,'\t')) r.append(join(row,'\t')) status=SQLFetch(stmt) while status==SQL_SUCCESS: for i in range(ncol): v=SQLGetString(stmt,i+1,binary_flags[i]) if rdbdefs[i]=='t': if find(v,'\\') >= 0: v=join(split(v,'\\'),'\\\\') if find(v,'\n') >= 0: v=join(split(v,'\n'),'\\n') if find(v,'\t') >= 0: v=join(split(v,'\t'),'\\t') row[i]=v if rdb: rd=join(row,'\t') else: rd={} for i in indexes: rd[names[i]]=row[i] r.append(rd) status=SQLFetch(stmt) SQLFreeStmt(stmt, SQL_CLOSE); if rdb: r=join(r,'\n')+'\n' return r def columns(self, table_name): stmt=self.stmt try: SQLExecDirect(stmt, 'select * from %s where 1=2' % table_name) except error, v: state, native, mess = v raise error, "%s (%s)" % (mess, state) status, ncol = SQLNumResultCols(stmt) r=[] standard_type=tpnames.has_key for i in range(ncol): status, name, tp, prec, scale, nullable=SQLDescribeCol(stmt,i+1) if standard_type(tp): tp=tpnames[tp] else: tp="Non-standard type %s" % tp r.append({'Name': name, 'Type': tp, 'Precision': prec, 'Scale': scale, 'Nullable': nullable and 'with Null' or ''}) SQLFreeStmt(stmt, SQL_CLOSE); return r def _begin(self): pass def _finish(self): SQLTransact(self.connection, SQL_COMMIT) def _abort(self): SQLTransact(self.connection, SQL_ROLLBACK) if __name__=='__main__': #print manage_ODBCDataSources() db=DB('test') #print db.table_info() if len(sys.argv)==2: print db.query(sys.argv[1]) else: print db.tables(rdb=0) #print db.columns('f') lib/python/Products/ZODBCDA/icons/bin.gif100666 0 0 1634 6501032314 20701 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @yHXB !>3jܸʼn 8"“( ReH-+zrdM8Mbȓ̔@OJQ'| qiə7TN݊ubզ2: ٳ-;lib/python/Products/ZODBCDA/icons/CVS/Entries100666 0 0 1376 6763721220 21447 0ustar00unknownunknown 0 0 /bin.gif/1.1/Mon Mar 9 18:28:27 1998/-kb/TZODBC-3-1-0-beta2 /date.gif/1.1/Mon Mar 9 18:28:28 1998/-kb/TZODBC-3-1-0-beta2 /datetime.gif/1.1/Mon Mar 9 18:28:28 1998/-kb/TZODBC-3-1-0-beta2 /field.gif/1.1/Mon Mar 9 18:28:29 1998/-kb/TZODBC-3-1-0-beta2 /float.gif/1.1/Mon Mar 9 18:28:29 1998/-kb/TZODBC-3-1-0-beta2 /int.gif/1.1/Mon Mar 9 18:28:30 1998/-kb/TZODBC-3-1-0-beta2 /stable.gif/1.1/Mon Mar 9 18:28:30 1998/-kb/TZODBC-3-1-0-beta2 /table.gif/1.1/Mon Mar 9 18:28:30 1998/-kb/TZODBC-3-1-0-beta2 /text.gif/1.1/Mon Mar 9 18:28:32 1998/-kb/TZODBC-3-1-0-beta2 /time.gif/1.1/Mon Mar 9 18:28:33 1998/-kb/TZODBC-3-1-0-beta2 /view.gif/1.1/Mon Mar 9 18:28:33 1998/-kb/TZODBC-3-1-0-beta2 /what.gif/1.1/Mon Mar 9 18:28:34 1998/-kb/TZODBC-3-1-0-beta2 D lib/python/Products/ZODBCDA/icons/CVS/Repository100666 0 0 61 6763721220 22143 0ustar00unknownunknown 0 0 /cvs-repository/Packages/Products/ZODBCDA/icons lib/python/Products/ZODBCDA/icons/CVS/Root100666 0 0 62 6763721220 20710 0ustar00unknownunknown 0 0 :ext:petrilli@korak.digicool.com:/cvs-repository lib/python/Products/ZODBCDA/icons/CVS/Tag100666 0 0 24 6763721220 20476 0ustar00unknownunknown 0 0 NZODBC-3-1-0-beta2 lib/python/Products/ZODBCDA/icons/date.gif100666 0 0 1642 6501032314 21045 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @H@†2tHB!VȱŌ Ji1dE\yFIM ]zLY3Ϙ4Y UѣH gNKQ6M'MTș@v*iӧbk&]˖!;lib/python/Products/ZODBCDA/icons/datetime.gif100666 0 0 1635 6501032314 21726 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @zH @B6QB)>ȱcG6qI\yPǗ/A$IȊ2a O JThƝHIHs͇SɊ8X*՜Xv5dѳh;lib/python/Products/ZODBCDA/icons/field.gif100666 0 0 1623 6501032316 21214 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @pHXȐ†6\@`ĉ3fƏycD' #E0CvIS&ɛ"ɳϟ:-bPgQ*j4ҡM_} 1ʥT%V:#Я`;lib/python/Products/ZODBCDA/icons/float.gif100666 0 0 1641 6501032316 21236 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @~HXpC F(3jbE#Niɓ"X"ɖ*=|q͘jrO+ JhP%dRHubYjΖX,fHU* ʴȧ]@@;lib/python/Products/ZODBCDA/icons/int.gif100666 0 0 1626 6501032316 20726 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @sHXȐ† 28Q E3bD`1ċ7"I H!#:(E _ѥƛ8Yϟ@ qcLɔRFz,%TTc&Q)VCÊE ;lib/python/Products/ZODBCDA/icons/stable.gif100666 0 0 1564 6501032316 21407 0ustar00unknownunknown 0 0 GIF89aPPP@@@@@!,@QH *\B:q"E/*̨GC)&QLrʗ*WG0kl&L:}$I4d@;lib/python/Products/ZODBCDA/icons/table.gif100666 0 0 1556 6501032316 21225 0ustar00unknownunknown 0 0 GIF89aPPP@@@@@!,@KH@ Tpƒ #2lqB j,xQ"Ɗ'>2ȍ\ɒ0Ur&͕6of$'Ϟ;lib/python/Products/ZODBCDA/icons/text.gif100666 0 0 1626 6501032320 21113 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @sHXÅB@3jܘŎ `IFS48cKQ$ə1?rϕ JTN8uɳR#F=t՝2O ڐbNEÊ ;lib/python/Products/ZODBCDA/icons/time.gif100666 0 0 1636 6501032322 21070 0ustar00unknownunknown 0 0 GIF89a PPP@@@@@!, @{HXPB (Q3jF|“(VDH%=fYrMhr3O, JhP5?|!R;'Bƥ0VS*I JltEhӲ;lib/python/Products/ZODBCDA/icons/view.gif100666 0 0 1575 6501032322 21106 0ustar00unknownunknown 0 0 GIF89aPPP@@@@@!,@ZH "$aB<`B(@ǎ-*IbÅ'+`#0cʄHp̓r &N<}*t΢FsL`@;lib/python/Products/ZODBCDA/icons/what.gif100666 0 0 1576 6501032322 21100 0ustar00unknownunknown 0 0 GIF89aPPP@@@@@!,@[(ThBXذ`ÅL|ć /bQG;fXPeA]4@dŃ(;̸Ç\^_^یM^T^FZ^Rich^PELL;! [0Btddt.text `.rdataB@@.data_P@.reloc @BhthÐS\$ U- WhSՋ|$G8t5V3QhSՋW <2t hSՃG<u^hSՃ3_][ÐD$PSU3VWtC$:utX:^uu3tGGEu$D$RhP`L$QPd3_^][ĀË Q_^][ĀÐD$PSU3VWtC$:utX:^uu3tIGEu$L$PhQ`T$RQd_^][ĀË $RQ_^][ĀÐVt$Ft.PԇfuFPft hhȷQdV(^ÐVWhPP\u_^Ë|$ N ~QW@RZft"Hu FVPOjQ}_^Ë_^ÐVt$F t!jPfthhPdFJF8u HPQV(^ÐQD$LVH;tPhPd3^YPTL$jQVtPhPd3^YWL$hQVW=( ut$t$tP׋Fut$tV׃X_^AXYÐSUVW$3l$?_RGG$t=<0|<9$:utX:^uu3$$E-u Ba$$ E4 8 ;=SUt[F;|ꋄ$ L$_^$][Ë7D$F7$ OQt PR_^]3[;SUnk {}EhL$PQE+Ћ$0RT$( QR$4t$:utP:Vuu3tFm x$$SPN$ L$$_^][Ë$Ӄ3э(+t$|$3󤋼$$э(+t$|$ȃ󤋴$ L$ǂ $m_RՃ3_^][Ë$ _^3*][Ë$ _^(]3[þ\NJ:utP^:uu3u$ _^]3[Ë$ _^][ÐD$L$SV0:utP^:uu^3[^[ÐD$HD$QRP  ÐD$L$T$VPhQ$(D$R$(Px QRP荀fu+L$D$T$QRPL$jQhdlu5XhVRHHu FVP3^Ð LVt$F;uVTVNQRPD$jRPj8;@uD$jjVjjPj;Du&D$jjVjjPjL$(T$$jQR^f3^ÐQT$ D$ L$PQhlRD$<uYËD$ L$PQYS\$ UVW3AQE_}tN08~jQ,$Qu<*t<&tp_FGFuD$@H;u^P8D$3уQD$ Ut PV hV VhV(; LPT3уQT$ jRV(uRD$Ut"PS ShS(7hS ShS(S3(3U(uPhxQd_^][ÐD$Vt$ v3у@PuT$L$;_r' BHL$;sT$ \‰ `Ht#W|$(3+ȃ_^Ð 3L$D$D$D$D$PD$T$ QRhP<u ËL$T$D$QRP ÐD$LSUHV;WtPhPd3_^][PTL$jQVWtPhPd3_^][Ë|$L$hQV u T$hRV u xD$hlPV ud{L$h\QV uT]T$hHRV u@?D$h8PVz u0!L$hQV\ (t l$uPhPd3_^][þNJ:utP^:uu3uD$LQ0_^][þxNJ:utP^:uu3uD$LTQR4_^][þdNJ:utP^:uu3uD$LEQ0_^][þTNJ:utP^:uu3uD$LQ0_^][þ@NJ:utP^:uu3uD$D$4_^][þ0NJ:utP^:uu3uD$Uh_^][þ(NJ:utP^:uu3u.D$DtPh_^][h\h_^][Ë PhиRd3_^][Ð3L$D$D$D$ D$D$T$PQL$ D$RPhعQ<uËT$D$L$RT$PQRÐD$LSUHV;WtPh(Pd3_^][Ë-TPՍL$jQVtPh(Pd3_^][Ë|$ L$hQV u T$hRV u xD$hlPVr ud{L$h\QVT uT]T$hHRV6 u@?D$h8PV u0!L$hQV (t D$uPh Pd3_^][þNJ:utP^:uu3u-D$P8L$ T$X_^]A[XþxNJ:utP^:uu3u-D$P,L$ T$ʡX_^][AXþdNJ:utP^:uu3u.D$P8L$ T$fJX_^]A[XþTNJ:utP^:uu3@NJ:utP^:uu3u-D$P,L$ T$X_^][AXþ0NJ:utP^:uu3uD$PՋL$ T$ы(NJ:utP^:uu3D$PՋL$T$ ؃,t P(\Ê:utP:Vuu3uEX_^]A[XË3QЃU3+ȃX_^][AXË PhRd3_^][ÐD$VL$PD$T$QR3hhPD$t$<u^ËD$;tL$T$QVR ^Ð0S\$8UVWÊ:utP:Vuu3u|$LD$dÊ:utP:Vuu3u|$LD$l?sTÊ:utP:Vuu3u|$LD$\'xÊ:utP:Vuu3u|$LD$@Ê:utP:Vuu3u|$LD$H0Ê:utP:Vuu3u|$LD$8K(Ê:utP:Vuu3K|$LD$Pl$u (hQd3_^][0ËT$HÊ:utX:^uu3uR8ϋD$Dd:utX:^uu3u/R89fЋfЋfD$DT:utX:^uu3uR8ϋD$Dx:utX:^uu3u+R,] }hD$D@:utX:^uu3u%R,\$PD$Lϋ D$D0:utX:^uu3uRTOWPUD$D(:utX:^uu3RT؅~`D$Ll$D$Dt;3QЋ3U+ȃED$DHD$Dul$L$LD؋T$D$RUP\L$$Qh_^][0ËPhxPd3_^][0ÐQL$ D$PhQD$ < uYËT$RYÐQT$ D$ L$PQhȺRD$<uYËD$ L$PQYQD$LVH;PTT$hRVuD$ L$T$ D$ hPV uL$ T$L$ hlQV uT$ D$ BL$ T$ h\RV uD$ L$T$ iD$ hHPV[ u L$T$ AL$ h8QV7 u T$D$ D$ jPV uuL$D$ D$ WT$hRV3уQD$ Vt PW5 hW WhW(_^YáPhԺQd3^YËt$^YÐQT$ D$ L$PQh$R<uYËD$ L$PQXAXYÐSUVt$W3AQӋE_}tN08~jQ,$Qu<*t<&tp_FGFut$3AQӋ؃_{tP0:~jP,$Hu<*t<&tp_FGFujSU jUS_^][ÐSUVWu!|P3=x=x |;|!ɉ |QP4=x3~P؋t$ :utA:Fuu3ɃtE;|š u'|$3}IEME x} \$t;E:utP:Vuu3t@} ujЋ3D$IB3JB U |_^][ËD$t_E^][Ð $3D$D$D$V5x Ph4Q< u^ ÍT$WR$hL$PD$QT$$hRPV9hQh0lT$=$D$RPPV*L$$$,QRPV(_^ ÐSVt$ WuD$_^[áX;u!JX8u HPQD$_^[ËV=ܠ;tUj׋UjVӃ]j׋D$PjWWV ؋Hu NVQHu WWR_^[Ð$ Sx VD$WL$PQh\RD$(D$$D$<u _^[ËD$ X=;u3BHup2; t"PhHQd3_^[P׋0D$tQ;Xu3IHu@ 9; t#PhHPd3_^[P׋D$L$ T$$QhRL$T$(QRPVSePh0l=$L$$jQPVT$(R0PVL$HD$0PQPV4_^[ÐQT$ D$ V5x L$PQhhRD$<u^YËD$ X;u3?Hu@/; tPhHQd3^YPT$RPVePh0l^YÐT$VD$WL$PQhxRD$D$<u_^ËD$ X=;u3>Hup.; tPhHQd3_^P׋0D$ X;u3PVw_^ËHu@ PVY_^; tPhHPd3_^P׋PV_^ÐQT$ D$ L$PQhRD$<uYËD$ X;uT$ 3RPiYËHuT$ @ RPKY; tPhHQd3YPT$RP YÐT$D$L$Vt$PjQjRVcftf=tVj,^ËD$L$PQ4^ÐQT$ D$ L$PQhRD$<uYËD$ X;uT$ 3RPiYËHuT$ @ RPKY; tPhHQd3YPT$RP YÐT$D$Vt$PL$jQjRVbftf=t Vj^ËD$ P0^ÐD$L$PD$T$QRhPD$<uËD$ X;u3AHu@ 1; t PhHRd3PL$T$QRP ÐSUV$W$$D$PL$0GhQWRSD$,`D$uhh_^][ĜÅtt=~t~ D$fuPD$0P$_^][Ĝjt$cft$L$T$QjD$0Rx L$,PQSjR%`ft f=лD$ :utP:Vuu3D$L$,PQ$D$T$PRzD$JD$8u HPQ$T$RD$0hPWQS_苄$D$tt=~t~ D$ft$f uahȻhPPhhhD$T$,PR$D$ttPV|e PVhQT$$PRHu FVPD$_^][ĜËt$D$Sjit$Hu NVQD$tJD$8u PPR_^]3[ĜÐVt$tJ8uHPQT$^ËD$ ^ËL$ ^ÐSVD$WL$PD$,T$QR3hػP\$ \$$\$(<u_^[ËD$ X;u3\$D$ X;u%3\$:L$QP;u_^3[ÍT$RPm;u _^3[ËD$;t+;Xu3\$(L$(QP8;u _^3[ËD$(T$(L$RPD$ PVQW=_^[ÐVt$VL$}3^VT^ÐVWhPP\u_^Ë x ~WQc\ftf=u1T$ D$L$RT$PD$QL$RPQR,\ft,f=t&Hu FVPjj_^Ë_^QL$ D$PhQD$ < uYËD$ X;u3?Hu@ /; tPhHPd3YPP[Qh0lYÐVW=x jD$hP< u_^VW)[ftf=tjj)_^Qh0lh0?VPW_^ÐVt$t,PZft hh QdV(^ÐSUVD$WL$PT$QL$8D$RP3h8Ql$(l$,l$0l$4<u_^][ËD$ X;u3EHuX5; t!PhHPd3_^][PD$ X;u3l$$D$ X;u&3l$ ;u_^]3[ ÍT$ RP ;u _^]3[ ËD$ X;uE3l$8T$(L$,RT$PhVӃ@j?PhVj@PhhV$ jAPhPVjBPh4VӃ@jCPhVjDPhVjEPhVHjFPhV Ӄ@jGPhV8jHPhVjHPhVtjPhtV0Ӄ@j!Ph`VhPhHV4 jPh8V jPh VӃ@jףPhVjPhVjPhVjPhVxӃ@jPhVjPhV( jPhVjPhVӃ@j PhlVj Ph\Vj PhLV$j Pdh,VӃ@j PhVjPhVjPhVjPhVӃ@jPhVjPhVjPhVjPhV0Ӄ@jPhdV jPhHV8jPh(VjPh VӃ@jPhVjPhV@jPhVjPhVӃ@jPhVjPhtV j Ph\Vj!Ph@VӃ@j"Ph$VTj#Ph Vj$PhV j%PhVӃ@j&PhVj'PhVj(PhVXj)PhV Ӄ@j*PhtVPj+Ph\Vj,PhHV j-Ph8VӃ@j.Ph(Vj/PhVj0PhVj1PhVӃ@j2PhV<j3PhVpj4PhVj5PhVP Ӄ@j6PhxV`j7PhhVj8PhTV j9Ph@V Ӄ@j:Ph,Vj;PhVjPhVdj?PhVj@PhVjAPhV Ӄ@jBPhVjCPhlVtjDPhXVPjEף Ph@VӃ@jFPh,VPjGPhV0 jHPhVL jIPhVdӃ@jJPhVjKPhVjLPhVjMPhVӃ@jNPhtV4jOPh`VjPPhDVjQPh,VӃ@jRPhV jSPhV`jTPhV jUPhVӃ@jVPhV8jWPhVjXPhVPjYPhV Ӄ@jZPhpVj[Ph`Vj\PhLV, j]Ph0VӃ@j^PhVTj_PhV j`PhVjaPhVӃ@jbPhVjcPhVLjdPhV\jePhpVӃ@jfPh\VjgPh<VjhPh(VjiPhVӃ@jjPhVjkPhVjlPhVjmPhVӃ@jnPhV joPhpVDjpPhTVtjqPh<VӃ@jrPh$V hPhVjrPhVhPhVӃ@jPhV8jPhVjPhV< jPhV|Ӄ@jPhVDj PhVj@PhtVhףPhdVӃ@hPhTVxhPh@VhPh0VhPhV Ӄ@hPhVLh PhVh@PhVhPhV`Ӄ@hPhVhPhVhףLPhVjPhVӃ@jPh|V jPhhVjPhXV4jPhDVӃ@jPh0Vj PhVLj@PhVhPhVӃ@hPhV<hPhVhPhVlhPhVӃ@hPhVh PhxVD h@PhhVhPhPVӃ@hPh<VhPh(VhPhVjPhVHӃ@jPhVjPhV@jPhVjPhV Ӄ@j PhVj@PhVhPhVhPh|VӃ@hPhhVhPhXVLhPhHV$hPh8V,Ӄ@h Ph(V h@PhV hPhV hPhVDӃ@hPhVlhPhVhPhVhPhVhӃ@h PhV h@PhV$hPhpVjPh`VӃ@jPhLV` jPh4VljPh VjPh V Ӄ@j PhV|j@PhVhPhVDhPhVӃ@hPhVhPhV<hףxPhVhPh|VӃ@h PhdVh@PhLVhPh8VhPh$VӃ@jPhVjPhVjPhVjPhVӃ@jPhV8jףxPhVjPhVjPhVӃ@j PhxVj@PhdVhPhPVXhPh@V Ӄ@jPh0VLjPh V$jPhVjPhVHӃ@jPp hVjPhVjPhVjPhV(Ӄ@jPhV8jPhVjPhVjPhtVӃ@jPhdVjPhTVjPhDVjPh0Vl Ӄ@jPh V,jPhVTjPhVjPhV,Ӄ@jPhVjPhVjPhVjPhVӃ@jPhVpjPhVjPhxVDjPhdV8 Ӄ@jPhTVjPh@V|jPh,VjPhVӃ@jPhV jPhV jPhV@jPhVӃ@j PhVTj@PhVt hPhVjPhdVhӃ@jPhLVdjPh4VDjPhVjPhVӃ@jPhVtjPhVjPhV jPhVXӃ@jPhVdjףDPhVjPhV jPhVӃ@jPhVjPhlVjPh\VjPhHVӃ@jPh4VTjPh VjPhV0 jPhV4Ӄ@jףPhVjPhV|jPhVjPhVӃ@jPhVtjPhlVjPhLV(jPh,VӃ@jPhVDjPhVjPhVjPh,VӃ@jPhVjPhVjPhVjPhdV(Ӄ@jPhLVjPh4VjPhV8jPhVtӃ@jPhVjPhVjPhVjPhVӃ@jPhVjPhV4jPhVjPhxVpӃ@jPhlVjPhXVjPhHVj Ph4VӃ@j@Ph$VHjPhV jPhVjPhVӃ@jPhVjPhV jPhV jPhVHӃ@jPhVjPhV\ jPhpV$ jPhdVӃ@jPhTVjPhHVjPh<VjPh,VӃ@jPh VjPhVhjPhV`j PhVӃ@j@PhVjPhV(jPhVjPhV0Ӄ@jף PhVjPh|VjPhlVjPh\VӃ@jPhLV jPh<V j Ph,Vj PhVӃ@j PhV`j PhV j PhVjP$hVӃ@jPhVjPhVjPhV,jPhpVӃ@jPh`V`jPhPVjPh<VjPh$VӃ@jPh VpjPhVjPh4VjPhVxӃ@jPhVjPhVjPhVjPhtVӃ@jPh`V jPhLVljPh4V jPhV Ӄ@jPhVjPhV jPhV jPhVӃ@jPhVjPhVjPhVjPhpVӃ@jPhdV\jPhXV$jPhHV@jPh<VӃ@jPh0VjPh VjePhVjfPhVӃ@jgPhVjhPhV$jiPhVjjPhVӃ@jkPhVjlPhVHjmPhpVjnPh\VPӃ@joPhLVX jpPh<Vh jpPh(VhPh VӃ@jePhVjPhVjPhV\jPhVӃ@jPhV<jPhVjPh|VXjף\Ph`VӃ@jPhLVhjPh8VjPh VhPhVlӃ@jPhV jPhVXjPhVjPhV Ӄ@jPhVjPhVjP hxVjPh`VTӃ@jPhLVHjPh8V| jPh(VljPhV,Ӄ@jPhVjPhV jPhVjPhVTӃ@jPhVjPhVjPhVhjPhVxӃ@jPhV<jPhtV hhPh`Vh`V hW3уQhW$@Ph@VӃ hx [ _^][fthh PdjhhejhhTjhhCjhh2jhh!jhhHjhhjhhjhhڠjhhɠjhh踠jh|h觠Hjhh蓠jhh肠jhthqjhh`jhlhOjhh>Hjhh*jhhjhlhjhhjhthjhh՟Hjh|hjhh谟jhht蟟jhht莟jhht}jhlhtlHjh|htXjhhtGjhht6jhdh\%jhhjhhHjhhjhhޞjhh͞jhh輞jhhl諞jhhl蚞Hjhhl膞jh|hlujhhldjhhlSjhthlBjhh1Hjhthjhh jhhjh|hjhlhٝjhhȝHjh|h贝jhh裝jhh蒝jhth聝jhlhpjhh_HjhhKjhLh@:jh0h@)jh(h@jh h@jhh@HjhhjhLhќjhhjh(h诜jh h螜jhh荜Hjhhyjhhhjhh|Wjhh|Fjhh|5jhlh|$Hjhth|jhh|jhh|jhhݛjhh̛jh\hd軛Hjhh觛jhh薛jhh腛jhhtjhLhcjhhRHjhh>jh h-jh(hjhLh0 jh@h0jhh0Hjh h0՚jh(h0Ějhh 賚jhLh 袚jh@h 葚jhh 耚Hjhh ljhh [jh(h Jjh0h 9jhh (jhhHjhhjhhjhh(jhLh(Йjh@h(这jhh(讙Hjhh(蚙jhh(艙jh h(xjhh(gjh0h(VjhhEHjh h1jh(h jhhjhhjhLhjhhܘHjhhȘjhh跘jhlh覘jhh蕘jhth脘jhhsHjhh_jh|hNjhh=jhh,jhhjhh HjhhjhLhjhhԗjhh×jh(h貗jh h街Hjhh荗jhh|jhhkjhhZjhhLIjh hL8HjhhL$jh0hLjh(hLjhhLjhhLjhhLϖHjh@hL軖jhLh誖jh@h虖jh0h舖jh(hwjh hfHÐVW=j׋hFF F@׃Ft_^Ð%Ԡ%%%Ġ%%%%%%%l%%%%%%%d%h%L%D%H%P%T%X%\%`%̠%Р%Ƞ%p%t%x%|%%%̋D$u9~.  < u?hYu3f hhYY=u9t0 Vq;rtѡP(%Y^jX US]Vu W}u =&tu"t WVSЅt WVSu3NWVSSE u u7WPStu&WVSu!E } ttWVSЉE E _^[] %8|$u=u t$jX Φ4*FPZdlv> 0134562-,* + 9H /(.Ф(@ZrХvdN>* ڣȣnXLDܠءΦ4*FPZdlv> 0134562-,* + 9H /(.Ф(@ZrХvdN>* ڣȣnXODBC32.dllPyString_FromStringUPyErr_SetString~PyExc_NameErrorOPyObject_Init\_Py_NoneStructPyString_AsStringPyExc_TypeErrorPyString_TypeTPyErr_SetObjectPy_BuildValuePyFloat_TypePyInt_TypePyArg_ParseTuplePyInt_AsLongPyFloat_FromDoublePyInt_FromLongPyFloat_AsDouble|PyExc_MemoryErrorPyString_FromStringAndSize|PySequence_ConcatPyTuple_SetItemPyTuple_NewPyTuple_TypePyCObject_TypePyCObject_AsVoidPtrAPyObject_CallFunctionJPyObject_GetAttrStringPyImport_ImportModulePyList_AppendPyList_NewPyString_SizePyCObject_FromVoidPtr3PyDict_GetItemString9PyDict_SetItemStringPyModule_GetDictPy_InitModule4PyType_Typepython21.dllXfprintfsprintf^freemallocstrncatstrncpyqsortstrncmp_pctype_isctypea__mb_cur_maxreallocMSVCRT.dll_initterm_adjust_fdiv]DisableThreadLibraryCallsKERNEL32.dllL;2(,0`:sql.pydinitsqll0@0123456789abcdef` @@4 ^ ]p[ԶZȶYXWV`U|ShR\QPP<O(N0N 0MKJܵIĵHpGFED|ChBXAHA<p?,> >@< 8 76ش5̴P42P1p.p,0,`&0!xpPptrcastptrvalueptrsetptrcreateptrfreeptraddptrmapSQLDataSourcesSQLErrorSQLTransactSQLExceptionSQLGetFloatSQLGetIntSQLGetStringSQLConnectionSQLFetchSQLAllocConnectSQLConnectSQLDisconnectSQLAllocStmtSQLGetConnectOptionSQLGetFunctionsSQLGetInfoSQLSetConnectOptionSQLFreeStmtSQLBindColSQLBindInputParameterSQLCancelSQLColAttributesSQLDescribeColSQLExecDirectSQLExecuteSQLGetCursorNameSQLNumResultColsSQLPrepareSQLRowCountSQLSetCursorNameSQLColumnsSQLGetDataSQLGetStmtOptionSQLGetTypeInfoSQLParamDataSQLPutDataSQLSetStmtOptionSQLSpecialColumnsSQLStatisticsSQLTablesODBC/CLI Statement handlesStatementODBC/CLI database connectionsConnectionvarlink } , %sGlobal variables { C global variable %s not found.error in SQL connection destructorerror in SQL statement destructor_char_ppType error in ptrfree. Argument is not a valid pointer value.NULLs#is#Os:ptrcastType error in ptrcast. Argument is not a valid pointer value._0%sO|is:ptrvalueUnable to dereference unsupported datatype.Unable to dereference NULL pointer.unknownchar *char_char_pfloat_float_plong_long_pshort_short_pdouble_double_pint_int_pType error in ptrvalue. Argument is not a valid pointer value.OO|is:ptrsetUnable to set unsupported datatype.Unable to set NULL pointer.Type error in ptrset. Argument is not a valid pointer value.s|Oi:ptrcreateUnable to create unknown datatype.Out of memory in swig_create.O:ptrfreeOi:ptraddType error in ptradd. Argument is not a valid pointer value.INVALID POINTERss:ptrmaphh:SQLDataSourcesExpected CObjectOO:SQLErrorOh:SQLTransactOO:SQLExceptionOh:SQLGetFloatOh:SQLGetIntOhi:SQLGetStringOOjoinstring01004OOO:SQLConnectionO:SQLFetch:SQLAllocConnecterror calling SQLFreeConnect in destructorOOOO:SQLConnectO:SQLDisconnectO:SQLAllocStmterror calling SQLFreeStmt in destructorType error in argument 3 of SQLGetConnectOption. Expected _SQLPOINTER.Ohs:SQLGetConnectOptionOh:SQLGetFunctionsOh:SQLGetInfoOhl:SQLSetConnectOptionOh:SQLFreeStmtType error in argument 6 of SQLBindCol. Expected _SQLINTEGER_p._SQLINTEGER_pType error in argument 4 of SQLBindCol. Expected _SQLPOINTER.Ohhsls:SQLBindColOhhO:SQLBindInputParameterO:SQLCancelOhh:SQLColAttributesOh:SQLDescribeColOO:SQLExecDirectO:SQLExecuteO:SQLGetCursorNameO:SQLNumResultColsOO:SQLPrepareO:SQLRowCountOO:SQLSetCursorNameOOOOO:SQLColumnsType error in argument 6 of SQLGetData. Expected _SQLINTEGER_p.Type error in argument 4 of SQLGetData. Expected _SQLPOINTER.Ohhsls:SQLGetDataType error in argument 3 of SQLGetStmtOption. Expected _SQLPOINTER.Ohs:SQLGetStmtOptionOh:SQLGetTypeInfoType error in argument 2 of SQLParamData. Expected _SQLPOINTER_p.Os:SQLParamDataOO:SQLPutDataOhl:SQLSetStmtOptionOhOOOhh:SQLSpecialColumnsOOOOhh:SQLStatisticsOOOOO:SQLTables_unsigned_int_SQLHWND_HWND_signed_int_int_unsigned_char_UCHAR_SQLCHAR_UWORD_unsigned_short_USHORT_SQLUSMALLINT_SSHORT_SWORD_short_signed_short_RETCODE_SQLSMALLINT_float_SFLOAT_ULONG_UDWORD_unsigned_long_SQLUINTEGER_BOOKMARK_signed_char_SQLSCHAR_SCHAR_SDOUBLE_double_LDOUBLE_long_SDWORD_SLONG_signed_long_SQLINTEGERcould not allocate environment__version__$Revision: 1.3 $errorsql.errorSQL_FETCH_FIRSTSQL_FETCH_NEXTSQL_PC_PSEUDOSQL_PC_NOT_PSEUDOSQL_PC_UNKNOWNSQL_INDEX_OTHERSQL_INDEX_HASHEDSQL_INDEX_CLUSTEREDSQL_TABLE_STATSQL_ENSURESQL_QUICKSQL_INDEX_ALLSQL_INDEX_UNIQUESQL_SCOPE_SESSIONSQL_SCOPE_TRANSACTIONSQL_SCOPE_CURROWSQL_ROWVERSQL_BEST_ROWIDSQL_CUR_DEFAULTSQL_CUR_USE_DRIVERSQL_CUR_USE_ODBCSQL_CUR_USE_IF_NEEDEDSQL_OPT_TRACE_FILE_DEFAULT\SQL.LOGSQL_OPT_TRACE_DEFAULTSQL_OPT_TRACE_ONSQL_OPT_TRACE_OFFSQL_LOGIN_TIMEOUT_DEFAULTSQL_AUTOCOMMIT_DEFAULTSQL_AUTOCOMMIT_ONSQL_AUTOCOMMIT_OFFSQL_MODE_DEFAULTSQL_MODE_READ_ONLYSQL_MODE_READ_WRITESQL_CONN_OPT_MINSQL_CONNECT_OPT_DRVR_STARTSQL_CONN_OPT_MAXSQL_PACKET_SIZESQL_QUIET_MODESQL_ODBC_CURSORSSQL_CURRENT_QUALIFIERSQL_TXN_ISOLATIONSQL_TRANSLATE_OPTIONSQL_TRANSLATE_DLLSQL_OPT_TRACEFILESQL_OPT_TRACESQL_LOGIN_TIMEOUTSQL_AUTOCOMMITSQL_ACCESS_MODESQL_UB_DEFAULTSQL_UB_ONSQL_UB_OFFSQL_RD_DEFAULTSQL_RD_ONSQL_RD_OFFSQL_SC_UNIQUESQL_SC_TRY_UNIQUESQL_SC_NON_UNIQUESQL_KEYSET_SIZE_DEFAULTSQL_ROWSET_SIZE_DEFAULTSQL_CURSOR_TYPE_DEFAULTSQL_CURSOR_STATICSQL_CURSOR_DYNAMICSQL_CURSOR_KEYSET_DRIVENSQL_CURSOR_FORWARD_ONLYSQL_CONCUR_DEFAULTSQL_CONCUR_VALUESSQL_CONCUR_ROWVERSQL_CONCUR_LOCKSQL_CONCUR_READ_ONLYSQL_BIND_TYPE_DEFAULTSQL_BIND_BY_COLUMNSQL_ASYNC_ENABLE_DEFAULTSQL_ASYNC_ENABLE_ONSQL_ASYNC_ENABLE_OFFSQL_MAX_LENGTH_DEFAULTSQL_NOSCAN_DEFAULTSQL_NOSCAN_ONSQL_NOSCAN_OFFSQL_MAX_ROWS_DEFAULTSQL_QUERY_TIMEOUT_DEFAULTSQL_STMT_OPT_MINSQL_STMT_OPT_MAXSQL_ROW_NUMBERSQL_GET_BOOKMARKSQL_USE_BOOKMARKSSQL_RETRIEVE_DATASQL_SIMULATE_CURSORSQL_ROWSET_SIZESQL_KEYSET_SIZESQL_CONCURRENCYSQL_CURSOR_TYPESQL_BIND_TYPESQL_ASYNC_ENABLESQL_MAX_LENGTHSQL_NOSCANSQL_MAX_ROWSSQL_QUERY_TIMEOUTSQL_OJ_ALL_COMPARISON_OPSSQL_OJ_INNERSQL_OJ_NOT_ORDEREDSQL_OJ_NESTEDSQL_OJ_FULLSQL_OJ_RIGHTSQL_OJ_LEFTSQL_QL_ENDSQL_QL_STARTSQL_POS_ADDSQL_POS_DELETESQL_POS_UPDATESQL_POS_REFRESHSQL_POS_POSITIONSQL_LCK_UNLOCKSQL_LCK_EXCLUSIVESQL_LCK_NO_CHANGESQL_SS_UPDATESSQL_SS_DELETIONSSQL_SS_ADDITIONSSQL_BP_SCROLLSQL_BP_OTHER_HSTMTSQL_BP_UPDATESQL_BP_TRANSACTIONSQL_BP_DROPSQL_BP_DELETESQL_BP_CLOSESQL_U_UNION_ALLSQL_U_UNIONSQL_SQ_CORRELATED_SUBQUERIESSQL_SQ_QUANTIFIEDSQL_SQ_INSQL_SQ_EXISTSSQL_SQ_COMPARISONSQL_QU_PRIVILEGE_DEFINITIONSQL_QU_INDEX_DEFINITIONSQL_QU_TABLE_DEFINITIONSQL_QU_PROCEDURE_INVOCATIONSQL_QU_DML_STATEMENTSSQL_OU_PRIVILEGE_DEFINITIONSQL_OU_INDEX_DEFINITIONSQL_OU_TABLE_DEFINITIONSQL_OU_PROCEDURE_INVOCATIONSQL_OU_DML_STATEMENTSSQL_GB_NO_RELATIONSQL_GB_GROUP_BY_CONTAINS_SELECTSQL_GB_GROUP_BY_EQUALS_SELECTSQL_GB_NOT_SUPPORTEDSQL_PS_SELECT_FOR_UPDATESQL_PS_POSITIONED_UPDATESQL_PS_POSITIONED_DELETESQL_AT_DROP_COLUMNSQL_AT_ADD_COLUMNSQL_GD_BOUNDSQL_GD_BLOCKSQL_GD_ANY_ORDERSQL_GD_ANY_COLUMNSQL_FILE_QUALIFIERSQL_FILE_TABLESQL_FILE_NOT_SUPPORTEDSQL_NC_ENDSQL_NC_STARTSQL_NC_LOWSQL_NC_HIGHSQL_NNC_NON_NULLSQL_NNC_NULLSQL_CN_ANYSQL_CN_DIFFERENTSQL_CN_NONESQL_TXN_VERSIONINGSQL_TXN_SERIALIZABLESQL_TXN_REPEATABLE_READSQL_TXN_READ_COMMITTEDSQL_TXN_READ_UNCOMMITTEDSQL_FD_FETCH_BOOKMARKSQL_FD_FETCH_RESUMESQL_FD_FETCH_RELATIVESQL_FD_FETCH_ABSOLUTESQL_FD_FETCH_PRIORSQL_FD_FETCH_LASTSQL_FD_FETCH_FIRSTSQL_FD_FETCH_NEXTSQL_SCCO_OPT_VALUESSQL_SCCO_OPT_ROWVERSQL_SCCO_LOCKSQL_SCCO_READ_ONLYSQL_SO_STATICSQL_SO_MIXEDSQL_SO_DYNAMICSQL_SO_KEYSET_DRIVENSQL_SO_FORWARD_ONLYSQL_TC_DDL_IGNORESQL_TC_DDL_COMMITSQL_TC_ALLSQL_TC_DMLSQL_TC_NONESQL_IC_MIXEDSQL_IC_SENSITIVESQL_IC_LOWERSQL_IC_UPPERSQL_CB_PRESERVESQL_CB_CLOSESQL_CB_DELETESQL_CB_NON_NULLSQL_CB_NULLSQL_OSC_EXTENDEDSQL_OSC_CORESQL_OSC_MINIMUMSQL_OSCC_COMPLIANTSQL_OSCC_NOT_COMPLIANTSQL_OAC_LEVEL2SQL_OAC_LEVEL1SQL_OAC_NONESQL_FN_TSI_YEARSQL_FN_TSI_QUARTERSQL_FN_TSI_MONTHSQL_FN_TSI_WEEKSQL_FN_TSI_DAYSQL_FN_TSI_HOURSQL_FN_TSI_MINUTESQL_FN_TSI_SECONDSQL_FN_TSI_FRAC_SECONDSQL_FN_SYS_IFNULLSQL_FN_SYS_DBNAMESQL_FN_SYS_USERNAMESQL_FN_TD_MONTHNAMESQL_FN_TD_DAYNAMESQL_FN_TD_TIMESTAMPDIFFSQL_FN_TD_TIMESTAMPADDSQL_FN_TD_SECONDSQL_FN_TD_MINUTESQL_FN_TD_HOURSQL_FN_TD_CURTIMESQL_FN_TD_YEARSQL_FN_TD_WEEKSQL_FN_TD_QUARTERSQL_FN_TD_MONTHSQL_FN_TD_DAYOFYEARSQL_FN_TD_DAYOFWEEKSQL_FN_TD_DAYOFMONTHSQL_FN_TD_CURDATESQL_FN_TD_NOWSQL_FN_NUM_TRUNCATESQL_FN_NUM_ROUNDSQL_FN_NUM_RADIANSSQL_FN_NUM_POWERSQL_FN_NUM_LOG10SQL_FN_NUM_DEGREESSQL_FN_NUM_RANDSQL_FN_NUM_PISQL_FN_NUM_TANSQL_FN_NUM_SQRTSQL_FN_NUM_SINSQL_FN_NUM_SIGNSQL_FN_NUM_MODSQL_FN_NUM_LOGSQL_FN_NUM_FLOORSQL_FN_NUM_EXPSQL_FN_NUM_COTSQL_FN_NUM_COSSQL_FN_NUM_CEILINGSQL_FN_NUM_ATAN2SQL_FN_NUM_ATANSQL_FN_NUM_ASINSQL_FN_NUM_ACOSSQL_FN_NUM_ABSSQL_FN_STR_SPACESQL_FN_STR_SOUNDEXSQL_FN_STR_LOCATE_2SQL_FN_STR_DIFFERENCESQL_FN_STR_CHARSQL_FN_STR_ASCIISQL_FN_STR_UCASESQL_FN_STR_SUBSTRINGSQL_FN_STR_RTRIMSQL_FN_STR_RIGHTSQL_FN_STR_REPLACESQL_FN_STR_REPEATSQL_FN_STR_LCASESQL_FN_STR_LOCATESQL_FN_STR_LENGTHSQL_FN_STR_LTRIMSQL_FN_STR_LEFTSQL_FN_STR_INSERTSQL_FN_STR_CONCATSQL_FN_CVT_CONVERTSQL_CVT_LONGVARBINARYSQL_CVT_TIMESTAMPSQL_CVT_TIMESQL_CVT_DATESQL_CVT_BIGINTSQL_CVT_TINYINTSQL_CVT_BITSQL_CVT_VARBINARYSQL_CVT_BINARYSQL_CVT_LONGVARCHARSQL_CVT_VARCHARSQL_CVT_DOUBLESQL_CVT_REALSQL_CVT_FLOATSQL_CVT_SMALLINTSQL_CVT_INTEGERSQL_CVT_DECIMALSQL_CVT_NUMERICSQL_CVT_CHARSQL_INFO_DRIVER_STARTSQL_INFO_LASTSQL_OJ_CAPABILITIESSQL_QUALIFIER_LOCATIONSQL_LIKE_ESCAPE_CLAUSESQL_MAX_BINARY_LITERAL_LENSQL_NEED_LONG_DATA_LENSQL_TIMEDATE_DIFF_INTERVALSSQL_TIMEDATE_ADD_INTERVALSSQL_MAX_CHAR_LITERAL_LENSQL_MAX_USER_NAME_LENSQL_MAX_TABLES_IN_SELECTSQL_MAX_STATEMENT_LENSQL_MAX_ROW_SIZESQL_MAX_ROW_SIZE_INCLUDES_LONGSQL_MAX_INDEX_SIZESQL_MAX_COLUMNS_IN_TABLESQL_MAX_COLUMNS_IN_SELECTSQL_MAX_COLUMNS_IN_ORDER_BYSQL_MAX_COLUMNS_IN_INDEXSQL_MAX_COLUMNS_IN_GROUP_BYSQL_UNIONSQL_SUBQUERIESSQL_SPECIAL_CHARACTERSSQL_QUOTED_IDENTIFIER_CASESQL_QUALIFIER_USAGESQL_OWNER_USAGESQL_ORDER_BY_COLUMNS_IN_SELECTSQL_KEYWORDSSQL_GROUP_BYSQL_COLUMN_ALIASSQL_ALTER_TABLESQL_NULL_COLLATIONSQL_FILE_USAGESQL_STATIC_SENSITIVITYSQL_BOOKMARK_PERSISTENCESQL_GETDATA_EXTENSIONSSQL_POSITIONED_STATEMENTSSQL_POS_OPERATIONSSQL_LOCK_TYPESSQL_DRIVER_ODBC_VERSQL_DRIVER_HLIBSQL_NON_NULLABLE_COLUMNSSQL_CORRELATION_NAMESQL_ODBC_SQL_OPT_IEFSQL_TXN_ISOLATION_OPTIONSQL_CONVERT_LONGVARBINARYSQL_CONVERT_VARCHARSQL_CONVERT_VARBINARYSQL_CONVERT_TINYINTSQL_CONVERT_TIMESTAMPSQL_CONVERT_TIMESQL_CONVERT_SMALLINTSQL_CONVERT_REALSQL_CONVERT_NUMERICSQL_CONVERT_LONGVARCHARSQL_CONVERT_INTEGERSQL_CONVERT_FLOATSQL_CONVERT_DOUBLESQL_CONVERT_DECIMALSQL_CONVERT_DATESQL_CONVERT_CHARSQL_CONVERT_BITSQL_CONVERT_BINARYSQL_CONVERT_BIGINTSQL_TIMEDATE_FUNCTIONSSQL_SYSTEM_FUNCTIONSSQL_STRING_FUNCTIONSSQL_NUMERIC_FUNCTIONSSQL_CONVERT_FUNCTIONSSQL_USER_NAMESQL_TXN_CAPABLESQL_TABLE_TERMSQL_SCROLL_OPTIONSSQL_SCROLL_CONCURRENCYSQL_QUALIFIER_TERMSQL_QUALIFIER_NAME_SEPARATORSQL_PROCEDURE_TERMSQL_OWNER_TERMSQL_OUTER_JOINSSQL_MULTIPLE_ACTIVE_TXNSQL_MULT_RESULT_SETSSQL_MAX_TABLE_NAME_LENSQL_MAX_QUALIFIER_NAME_LENSQL_MAX_PROCEDURE_NAME_LENSQL_MAX_OWNER_NAME_LENSQL_MAX_CURSOR_NAME_LENSQL_MAX_COLUMN_NAME_LENSQL_IDENTIFIER_QUOTE_CHARSQL_IDENTIFIER_CASESQL_EXPRESSIONS_IN_ORDERBYSQL_DEFAULT_TXN_ISOLATIONSQL_DATA_SOURCE_READ_ONLYSQL_CURSOR_ROLLBACK_BEHAVIORSQL_CURSOR_COMMIT_BEHAVIORSQL_CONCAT_NULL_BEHAVIORSQL_PROCEDURESSQL_ACCESSIBLE_PROCEDURESSQL_ACCESSIBLE_TABLESSQL_DBMS_VERSQL_DBMS_NAMESQL_ODBC_SQL_CONFORMANCESQL_SEARCH_PATTERN_ESCAPESQL_SERVER_NAMESQL_ODBC_SAG_CLI_CONFORMANCESQL_ROW_UPDATESSQL_ODBC_VERSQL_ODBC_API_CONFORMANCESQL_FETCH_DIRECTIONSQL_DRIVER_VERSQL_DRIVER_NAMESQL_DRIVER_HSTMTSQL_DRIVER_HENVSQL_DRIVER_HDBCSQL_DATA_SOURCE_NAMESQL_ACTIVE_STATEMENTSSQL_ACTIVE_CONNECTIONSSQL_INFO_FIRSTSQL_API_LOADBYORDINALSQL_NUM_EXTENSIONSSQL_API_ALL_FUNCTIONSSQL_EXT_API_LASTSQL_API_SQLBINDPARAMETERSQL_API_SQLDRIVERSSQL_API_SQLTABLEPRIVILEGESSQL_API_SQLSETSCROLLOPTIONSSQL_API_SQLSETPOSSQL_API_SQLPROCEDURESSQL_API_SQLPROCEDURECOLUMNSSQL_API_SQLPRIMARYKEYSSQL_API_SQLPARAMOPTIONSSQL_API_SQLNUMPARAMSSQL_API_SQLNATIVESQLSQL_API_SQLMORERESULTSSQL_API_SQLFOREIGNKEYSSQL_API_SQLEXTENDEDFETCHSQL_API_SQLDESCRIBEPARAMSQL_API_SQLDATASOURCESSQL_API_SQLCOLUMNPRIVILEGESSQL_API_SQLBROWSECONNECTSQL_API_SQLTABLESSQL_API_SQLSTATISTICSSQL_API_SQLSPECIALCOLUMNSSQL_API_SQLSETSTMTOPTIONSQL_API_SQLSETCONNECTOPTIONSQL_API_SQLPUTDATASQL_API_SQLPARAMDATASQL_API_SQLGETTYPEINFOSQL_API_SQLGETSTMTOPTIONSQL_API_SQLGETINFOSQL_API_SQLGETFUNCTIONSSQL_API_SQLGETDATASQL_API_SQLGETCONNECTOPTIONSQL_API_SQLDRIVERCONNECTSQL_API_SQLCOLUMNSSQL_EXT_API_STARTSQL_NUM_FUNCTIONSSQL_API_SQLTRANSACTSQL_API_SQLSETPARAMSQL_API_SQLSETCURSORNAMESQL_API_SQLROWCOUNTSQL_API_SQLPREPARESQL_API_SQLNUMRESULTCOLSSQL_API_SQLGETCURSORNAMESQL_API_SQLFREESTMTSQL_API_SQLFREEENVSQL_API_SQLFREECONNECTSQL_API_SQLFETCHSQL_API_SQLEXECUTESQL_API_SQLEXECDIRECTSQL_API_SQLERRORSQL_API_SQLDISCONNECTSQL_API_SQLDESCRIBECOLSQL_API_SQLCONNECTSQL_API_SQLCOLATTRIBUTESSQL_API_SQLCANCELSQL_API_SQLBINDCOLSQL_API_SQLALLOCSTMTSQL_API_SQLALLOCENVSQL_API_SQLALLOCCONNECTSQL_NO_TOTALSQL_C_BOOKMARKSQL_C_UTINYINTSQL_C_USHORTSQL_C_ULONGSQL_C_STINYINTSQL_C_SSHORTSQL_C_SLONGSQL_C_TINYINTSQL_C_BITSQL_C_BINARYSQL_C_TIMESTAMPSQL_C_TIMESQL_C_DATESQL_UNSIGNED_OFFSETSQL_SIGNED_OFFSETSQL_TYPE_DRIVER_ENDSQL_TYPE_DRIVER_STARTSQL_UNICODE_CHARSQL_UNICODE_LONGVARCHARSQL_UNICODE_VARCHARSQL_UNICODESQL_INTERVAL_MINUTE_TO_SECONDSQL_INTERVAL_HOUR_TO_SECONDSQL_INTERVAL_HOUR_TO_MINUTESQL_INTERVAL_DAY_TO_SECONDSQL_INTERVAL_DAY_TO_MINUTESQL_INTERVAL_DAY_TO_HOURSQL_INTERVAL_SECONDSQL_INTERVAL_MINUTESQL_INTERVAL_HOURSQL_INTERVAL_DAYSQL_INTERVAL_YEAR_TO_MONTHSQL_INTERVAL_MONTHSQL_INTERVAL_YEARSQL_BITSQL_TINYINTSQL_BIGINTSQL_LONGVARBINARYSQL_VARBINARYSQL_BINARYSQL_LONGVARCHARSQL_TIMESTAMPSQL_TIMESQL_DATESQL_NEED_DATASQL_STILL_EXECUTINGSQL_MAX_OPTION_STRING_LENGTHSQL_NULL_HSTMTSQL_NULL_HDBCSQL_NULL_HENVSQL_SEARCHABLESQL_ALL_EXCEPT_LIKESQL_LIKE_ONLYSQL_UNSEARCHABLESQL_ATTR_READWRITE_UNKNOWNSQL_ATTR_WRITESQL_ATTR_READONLYSQL_COLATT_OPT_MINSQL_COLUMN_DRIVER_STARTSQL_COLATT_OPT_MAXSQL_COLUMN_LABELSQL_COLUMN_QUALIFIER_NAMESQL_COLUMN_OWNER_NAMESQL_COLUMN_TABLE_NAMESQL_COLUMN_TYPE_NAMESQL_COLUMN_SEARCHABLESQL_COLUMN_CASE_SENSITIVESQL_COLUMN_AUTO_INCREMENTSQL_COLUMN_UPDATABLESQL_COLUMN_MONEYSQL_COLUMN_UNSIGNEDSQL_COLUMN_NULLABLESQL_COLUMN_DISPLAY_SIZESQL_COLUMN_SCALESQL_COLUMN_PRECISIONSQL_COLUMN_LENGTHSQL_COLUMN_TYPESQL_COLUMN_NAMESQL_COLUMN_COUNTSQL_ROLLBACKSQL_COMMITSQL_RESET_PARAMSSQL_UNBINDSQL_DROPSQL_CLOSESQL_NTSSQL_DATA_AT_EXECSQL_NULL_DATASQL_NULLABLE_UNKNOWNSQL_NULLABLESQL_NO_NULLSSQL_C_DEFAULTSQL_C_DOUBLESQL_C_FLOATSQL_C_SHORTSQL_C_LONGSQL_C_CHARSQL_ALL_TYPESSQL_TYPE_MAXSQL_TYPE_MINSQL_TYPE_NULLSQL_VARCHARSQL_DOUBLESQL_REALSQL_FLOATSQL_SMALLINTSQL_INTEGERSQL_DECIMALSQL_NUMERICSQL_CHARSQL_NO_DATA_FOUNDSQL_SUCCESS_WITH_INFOSQL_SUCCESSSQL_ERRORSQL_INVALID_HANDLESQL_MAX_DSN_LENGTHSQL_MAX_MESSAGE_LENGTHSQL_SQLSTATE_SIZESQL_SPEC_STRING02.50SQL_SPEC_MINORSQL_SPEC_MAJORODBCVERsql00000>0U0j00001111122#2-2A2H2O2Y222223%3*333B3^3c3l3~33334444444444555(505@55555566p777777S89O9x9~9999999:`:o:::::;$;=;Y;`;j;s;;;;;;;;;<<$<0<5<>>>2>=>P>[>n>y>>>>>>>> ?R?_????? $E0R0000001 11^1e111111112!242B2U2c2v22222222223333\3o3}333333&4:4H4N444444B555555*686?6D6M6z66677S7`7777738D888888889I9h999: :T::::;;+;c;;; <<<;>%>/>8>F>K>T>>>>>>>? ?f?w?????0\0000"0-030;0000101n1t1{1111$222Q2W2]222233!323?3F3K3T3y3333333334\4g4v44444444445+5B5H5Y5f5m5r5{5555555 6/6B6a6|66666707?7R7q777777 878F8[8l8y8888899c9y999:3::::::::;;;%;=;P;\;b;i;p;\*>=>N>[>c>h>q>>>>>>>>?? ??H?M?T?^?????????@ 00-0000 11/1@1M1U1Z1c1r11111111 2222/2^2d2i2r22222223&333;3@3I3Z333333344)464=4B4K4\4444455*575>5C5L5`5555566.6;6C6H6Q6b66666667 777&7X7^777777778888=8F8a8u8z8888 9$9:9K9X9`9e9n999999: :-:5:::C:R::::::::; ;;&;v;|;;;;;<<#<*><>K>_>p>}>>>>>>>> ?$?5?B?J?O?X?l??????Pp0 0-050:0C0R00000001111#141C111111112 22"2T2Z2g22222222233d3j333333444"414E444B5H5555555556(6-666Q6e6j6s66667%767C7K7P7Y7j77777788$858B8I8N8W8f8888888 999?9D9M99999999: ::$:3::::::::;;;";[;a;;;;;;;;<<(<<<<==L=c=|=========9>>>>??,?9?@?E?N?b?q???`X00000000000000 1111'1-191?1N1T1`1f1u1{111111111111111 222#2/252A2G2V2[2h2n2z222222222222222333"3(373=3I3O3[3a3m3s3333333333333334 444*404<4B4N4T4c4i4u4{444444444444444 555#5/555D5J5V5\5h5n5z555555555555556666(6.6:6@6L6R6^6d6v6{666666666666666 777$70767B7H7W7]7i7o7{777777777777777888#8)888>8J8P8\8b8n8t8888888888888889 999+919=9C9O9U9d9j9v9|99999999999999: :::$:0:6:E:K:W:]:i:o:{:::::::::::::::;;;&;,;8;>;J;P;\;a;q;w;;;;;;;;;;;;;;;< <<<+<1<=>>&>,>8>>>J>P>_>e>t>z>>>>>>>>>>>>>>> ???"?.?4?C?I?U?[?g?m?y?~??????????????pP000$0*060<0H0M0Z0`0o0u0000000000000001 111)1/1;1A1P1V1b1h1t1z111111111111111 222"21272C2I2U2[2g2m2|222222222222222333$3*363<3H3N3]3c3o3u3333333333333334 444)4/4>4D4P4V4b4g4t4z444444444444444 555%51565C5I5U5[5j5p5|555555555555556666$6*666<6K6Q6]6c6o6u666666666666666777#72787D7J7V7\7h7n7}77777777777777 88%8+8:8@8O8U8d8j8|888888888888889 999*909<9B9Q9W9i9o9~9999999999999:::,:2:A:G:S:Y:h:m:z::::::::::::::; ;;";1;7;F;L;^;d;s;y;;;;;;;;;;;;; < >>>(>.>=>C>O>U>d>j>y>>>>>>>>>>>>>>>???$?*?6?>>>>*>0>9>D>W>\>c>m>r>~>>>>>>>>>>>>>>>> ????+?0???D?P?U?a?f?r?w????????????????000"0'03080D0I0U0Z0f0k0z00000000000000001 111'1,181=1L1Q1]1b1n1s11111111111111111 222#2/242@2E2Q2V2b2g2s2x2222222222222223333#3(34393E3J3Y3^3j3o3{33333333333333334 444+404<4A4M4R4^4c4o4t44444444444444445555$50555A5F5R5W5f5k5w5|5555555555555556666$6)686=6I6N6Z6_6k6p6|6666666666666666 777 7,717=7B7N7S7_7d7s7x7777777777777777888 8%81868E8J8V8[8g8l8x8}8888888888888889999(9-999>9J9O9[9`9l9q9999999999999::::: :&:,:2:8:>:D:J:P:V:\:b:h:n:t:z:::::::::::::::::;;;;';<;H;N;p;;;;<<0,00040<00000 11X1p1t111111111111111112222 2$20242@2D2P2T2`2d2p2t222222222222222223333 3$30343@3D3P3T3`3d3p3t333333333333333334444 4$40444@4D4P4T4lib/python/Products/ZODBCDA/src/Makefile.pre.in100666 0 0 23673 6644513252 22014 0ustar00unknownunknown 0 0 # Universal Unix Makefile for Python extensions # ============================================= # Short Instructions # ------------------ # 1. Build and install Python (1.5 or newer). # 2. "make -f Makefile.pre.in boot" # 3. "make" # You should now have a shared library. # Long Instructions # ----------------- # Build *and install* the basic Python 1.5 distribution. See the # Python README for instructions. (This version of Makefile.pre.in # only withs with Python 1.5, alpha 3 or newer.) # Create a file Setup.in for your extension. This file follows the # format of the Modules/Setup.in file; see the instructions there. # For a simple module called "spam" on file "spammodule.c", it can # contain a single line: # spam spammodule.c # You can build as many modules as you want in the same directory -- # just have a separate line for each of them in the Setup.in file. # If you want to build your extension as a shared library, insert a # line containing just the string # *shared* # at the top of your Setup.in file. # Note that the build process copies Setup.in to Setup, and then works # with Setup. It doesn't overwrite Setup when Setup.in is changed, so # while you're in the process of debugging your Setup.in file, you may # want to edit Setup instead, and copy it back to Setup.in later. # (All this is done so you can distribute your extension easily and # someone else can select the modules they actually want to build by # commenting out lines in the Setup file, without editing the # original. Editing Setup is also used to specify nonstandard # locations for include or library files.) # Copy this file (Misc/Makefile.pre.in) to the directory containing # your extension. # Run "make -f Makefile.pre.in boot". This creates Makefile # (producing Makefile.pre and sedscript as intermediate files) and # config.c, incorporating the values for sys.prefix, sys.exec_prefix # and sys.version from the installed Python binary. For this to work, # the python binary must be on your path. If this fails, try # make -f Makefile.pre.in Makefile VERSION=1.5 installdir= # where is the prefix used to install Python for installdir # (and possibly similar for exec_installdir=). # Note: "make boot" implies "make clobber" -- it assumes that when you # bootstrap you may have changed platforms so it removes all previous # output files. # If you are building your extension as a shared library (your # Setup.in file starts with *shared*), run "make" or "make sharedmods" # to build the shared library files. If you are building a statically # linked Python binary (the only solution of your platform doesn't # support shared libraries, and sometimes handy if you want to # distribute or install the resulting Python binary), run "make # python". # Note: Each time you edit Makefile.pre.in or Setup, you must run # "make Makefile" before running "make". # Hint: if you want to use VPATH, you can start in an empty # subdirectory and say (e.g.): # make -f ../Makefile.pre.in boot srcdir=.. VPATH=.. # === Bootstrap variables (edited through "make boot") === # The prefix used by "make inclinstall libainstall" of core python installdir= /usr/local # The exec_prefix used by the same exec_installdir=$(installdir) # Source directory and VPATH in case you want to use VPATH. # (You will have to edit these two lines yourself -- there is no # automatic support as the Makefile is not generated by # config.status.) srcdir= . VPATH= . # === Variables that you may want to customize (rarely) === # (Static) build target TARGET= python # Installed python binary (used only by boot target) PYTHON= python # Add more -I and -D options here CFLAGS= $(OPT) -I$(INCLUDEPY) -I$(EXECINCLUDEPY) $(DEFS) # These two variables can be set in Setup to merge extensions. # See example[23]. BASELIB= BASESETUP= # === Variables set by makesetup === MODOBJS= _MODOBJS_ MODLIBS= _MODLIBS_ # === Definitions added by makesetup === # === Variables from configure (through sedscript) === VERSION= @VERSION@ CC= @CC@ LINKCC= @LINKCC@ SGI_ABI= @SGI_ABI@ OPT= @OPT@ LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ DEFS= @DEFS@ LIBS= @LIBS@ LIBM= @LIBM@ LIBC= @LIBC@ RANLIB= @RANLIB@ MACHDEP= @MACHDEP@ SO= @SO@ LDSHARED= @LDSHARED@ CCSHARED= @CCSHARED@ LINKFORSHARED= @LINKFORSHARED@ #@SET_CCC@ # Install prefix for architecture-independent files prefix= /usr/local # Install prefix for architecture-dependent files exec_prefix= $(prefix) # === Fixed definitions === # Shell used by make (some versions default to the login shell, which is bad) SHELL= /bin/sh # Expanded directories BINDIR= $(exec_installdir)/bin LIBDIR= $(exec_prefix)/lib MANDIR= $(installdir)/man INCLUDEDIR= $(installdir)/include SCRIPTDIR= $(prefix)/lib # Detailed destination directories BINLIBDEST= $(LIBDIR)/python$(VERSION) LIBDEST= $(SCRIPTDIR)/python$(VERSION) INCLUDEPY= $(INCLUDEDIR)/python$(VERSION) EXECINCLUDEPY= $(exec_installdir)/include/python$(VERSION) LIBP= $(exec_installdir)/lib/python$(VERSION) DESTSHARED= $(BINLIBDEST)/site-packages LIBPL= $(LIBP)/config PYTHONLIBS= $(LIBPL)/libpython$(VERSION).a MAKESETUP= $(LIBPL)/makesetup MAKEFILE= $(LIBPL)/Makefile CONFIGC= $(LIBPL)/config.c CONFIGCIN= $(LIBPL)/config.c.in SETUP= $(LIBPL)/Setup SYSLIBS= $(LIBM) $(LIBC) ADDOBJS= $(LIBPL)/python.o config.o # Portable install script (configure doesn't always guess right) INSTALL= $(LIBPL)/install-sh -c # Shared libraries must be installed with executable mode on some systems; # rather than figuring out exactly which, we always give them executable mode. # Also, making them read-only seems to be a good idea... INSTALL_SHARED= ${INSTALL} -m 555 # === Fixed rules === # Default target. This builds shared libraries only default: sharedmods # Build everything all: static sharedmods # Build shared libraries from our extension modules sharedmods: $(SHAREDMODS) # Build a static Python binary containing our extension modules static: $(TARGET) $(TARGET): $(ADDOBJS) lib.a $(PYTHONLIBS) Makefile $(BASELIB) $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) \ $(ADDOBJS) lib.a $(PYTHONLIBS) \ $(LINKPATH) $(BASELIB) $(MODLIBS) $(LIBS) $(SYSLIBS) \ -o $(TARGET) $(LDLAST) install: sharedmods if test ! -d $(DESTSHARED) ; then \ mkdir $(DESTSHARED) ; else true ; fi -for i in X $(SHAREDMODS); do \ if test $$i != X; \ then $(INSTALL_SHARED) $$i $(DESTSHARED)/$$i; \ fi; \ done # Build the library containing our extension modules lib.a: $(MODOBJS) -rm -f lib.a ar cr lib.a $(MODOBJS) -$(RANLIB) lib.a # This runs makesetup *twice* to use the BASESETUP definition from Setup config.c Makefile: Makefile.pre Setup $(BASESETUP) $(MAKESETUP) $(MAKESETUP) \ -m Makefile.pre -c $(CONFIGCIN) Setup -n $(BASESETUP) $(SETUP) $(MAKE) -f Makefile do-it-again # Internal target to run makesetup for the second time do-it-again: $(MAKESETUP) \ -m Makefile.pre -c $(CONFIGCIN) Setup -n $(BASESETUP) $(SETUP) # Make config.o from the config.c created by makesetup config.o: config.c $(CC) $(CFLAGS) -c config.c # Setup is copied from Setup.in *only* if it doesn't yet exist Setup: cp $(srcdir)/Setup.in Setup # Make the intermediate Makefile.pre from Makefile.pre.in Makefile.pre: Makefile.pre.in sedscript sed -f sedscript $(srcdir)/Makefile.pre.in >Makefile.pre # Shortcuts to make the sed arguments on one line P=prefix E=exec_prefix H=Generated automatically from Makefile.pre.in by sedscript. L=LINKFORSHARED # Make the sed script used to create Makefile.pre from Makefile.pre.in sedscript: $(MAKEFILE) sed -n \ -e '1s/.*/1i\\/p' \ -e '2s%.*%# $H%p' \ -e '/^VERSION=/s/^VERSION=[ ]*\(.*\)/s%@VERSION[@]%\1%/p' \ -e '/^CC=/s/^CC=[ ]*\(.*\)/s%@CC[@]%\1%/p' \ -e '/^CCC=/s/^CCC=[ ]*\(.*\)/s%#@SET_CCC[@]%CCC=\1%/p' \ -e '/^LINKCC=/s/^LINKCC=[ ]*\(.*\)/s%@LINKCC[@]%\1%/p' \ -e '/^OPT=/s/^OPT=[ ]*\(.*\)/s%@OPT[@]%\1%/p' \ -e '/^LDFLAGS=/s/^LDFLAGS=[ ]*\(.*\)/s%@LDFLAGS[@]%\1%/p' \ -e '/^DEFS=/s/^DEFS=[ ]*\(.*\)/s%@DEFS[@]%\1%/p' \ -e '/^LIBS=/s/^LIBS=[ ]*\(.*\)/s%@LIBS[@]%\1%/p' \ -e '/^LIBM=/s/^LIBM=[ ]*\(.*\)/s%@LIBM[@]%\1%/p' \ -e '/^LIBC=/s/^LIBC=[ ]*\(.*\)/s%@LIBC[@]%\1%/p' \ -e '/^RANLIB=/s/^RANLIB=[ ]*\(.*\)/s%@RANLIB[@]%\1%/p' \ -e '/^MACHDEP=/s/^MACHDEP=[ ]*\(.*\)/s%@MACHDEP[@]%\1%/p' \ -e '/^SO=/s/^SO=[ ]*\(.*\)/s%@SO[@]%\1%/p' \ -e '/^LDSHARED=/s/^LDSHARED=[ ]*\(.*\)/s%@LDSHARED[@]%\1%/p' \ -e '/^CCSHARED=/s/^CCSHARED=[ ]*\(.*\)/s%@CCSHARED[@]%\1%/p' \ -e '/^$L=/s/^$L=[ ]*\(.*\)/s%@$L[@]%\1%/p' \ -e '/^$P=/s/^$P=\(.*\)/s%^$P=.*%$P=\1%/p' \ -e '/^$E=/s/^$E=\(.*\)/s%^$E=.*%$E=\1%/p' \ $(MAKEFILE) >sedscript echo "/^#@SET_CCC@/d" >>sedscript echo "/^installdir=/s%=.*%= $(installdir)%" >>sedscript echo "/^exec_installdir=/s%=.*%=$(exec_installdir)%" >>sedscript echo "/^srcdir=/s%=.*%= $(srcdir)%" >>sedscript echo "/^VPATH=/s%=.*%= $(VPATH)%" >>sedscript echo "/^LINKPATH=/s%=.*%= $(LINKPATH)%" >>sedscript echo "/^BASELIB=/s%=.*%= $(BASELIB)%" >>sedscript echo "/^BASESETUP=/s%=.*%= $(BASESETUP)%" >>sedscript # Bootstrap target boot: clobber VERSION=`$(PYTHON) -c "import sys; print sys.version[:3]"`; \ installdir=`$(PYTHON) -c "import sys; print sys.prefix"`; \ exec_installdir=`$(PYTHON) -c "import sys; print sys.exec_prefix"`; \ $(MAKE) -f $(srcdir)/Makefile.pre.in VPATH=$(VPATH) srcdir=$(srcdir) \ VERSION=$$VERSION \ installdir=$$installdir \ exec_installdir=$$exec_installdir \ Makefile # Handy target to remove intermediate files and backups clean: -rm -f *.o *~ # Handy target to remove everything that is easily regenerated clobber: clean -rm -f *.a tags TAGS config.c Makefile.pre $(TARGET) sedscript -rm -f *.so *.sl so_locations # Handy target to remove everything you don't want to distribute distclean: clobber -rm -f Makefile Setup lib/python/Products/ZODBCDA/src/pysql.c100666 0 0 14751 6644513252 20473 0ustar00unknownunknown 0 0 /***************************************************************************** Zope Public License (ZPL) Version 0.9.4 --------------------------------------- Copyright (c) Digital Creations. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source code must retain the above copyright notice, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Any use, including use of the Zope software to operate a website, must either comply with the terms described below under "Attribution" or alternatively secure a separate license from Digital Creations. 4. All advertising materials, documentation, or technical papers mentioning features derived from or use of this software must display the following acknowledgement: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 5. Names associated with Zope or Digital Creations must not be used to endorse or promote products derived from this software without prior written permission from Digital Creations. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 7. Modifications are encouraged but must be packaged separately as patches to official Zope releases. Distributions that do not clearly separate the patches from the original work must be clearly labeled as unofficial distributions. Disclaimer THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Attribution Individuals or organizations using this software as a web site must provide attribution by placing the accompanying "button" and a link to the accompanying "credits page" on the website's main entry point. In cases where this placement of attribution is not feasible, a separate arrangment must be concluded with Digital Creations. Those using the software for purposes other than web sites must provide a corresponding attribution in locations that include a copyright using a manner best suited to the application environment. This software consists of contributions made by Digital Creations and many individuals on behalf of Digital Creations. Specific attributions are listed in the accompanying credits file. ****************************************************************************/ static PyObject * SQLException(SQLHDBC hdbc, SQLHSTMT hstmt); typedef struct { PyObject_HEAD SQLHDBC connection; } Connection; typedef struct { PyObject_HEAD Connection *connection; SQLHSTMT stmt; } Statement; staticforward PyTypeObject StatementType; static void Connection_dealloc(Connection *self) { if(self->connection != SQL_NULL_HDBC) { UNLESS(SQLDisconnect(self->connection) == SQL_SUCCESS && SQLFreeConnect(self->connection) == SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error in SQL connection destructor"); } PyMem_DEL(self); } static PyObject * Connection_call(Connection *self, PyObject *args, PyObject *kw) { Statement *stmt; UNLESS(stmt = PyObject_NEW(Statement, &StatementType)) return NULL; stmt->connection=self; Py_INCREF(self); UNLESS(SQLAllocStmt(self->connection, &(stmt->stmt)) == SQL_SUCCESS) { Py_DECREF(stmt); return SQLException(self->connection, SQL_NULL_HSTMT); } return (PyObject*)stmt; } static PyTypeObject ConnectionType = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "Connection", /*tp_name*/ sizeof(Connection), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ (destructor)Connection_dealloc, /*tp_dealloc*/ (printfunc)0, /*tp_print*/ (getattrfunc)0, /*obsolete tp_getattr*/ (setattrfunc)0, /*obsolete tp_setattr*/ (cmpfunc)0, /*tp_compare*/ (reprfunc)0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ (hashfunc)0, /*tp_hash*/ (ternaryfunc)Connection_call, /*tp_call*/ (reprfunc)0, /*tp_str*/ (getattrofunc)0, /*tp_getattro*/ (setattrofunc)0, /*tp_setattro*/ /* Space for future expansion */ 0L,0L, "ODBC/CLI database connections" }; static void Statement_dealloc(Statement *self) { if(self->stmt != SQL_NULL_HSTMT && SQLFreeStmt(self->stmt, SQL_DROP) != SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error in SQL statement destructor"); Py_DECREF(self->connection); PyMem_DEL(self); } static PyTypeObject StatementType = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "Statement", /*tp_name*/ sizeof(Statement), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ (destructor)Statement_dealloc, /*tp_dealloc*/ (printfunc)0, /*tp_print*/ (getattrfunc)0, /*obsolete tp_getattr*/ (setattrfunc)0, /*obsolete tp_setattr*/ (cmpfunc)0, /*tp_compare*/ (reprfunc)0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ (hashfunc)0, /*tp_hash*/ (ternaryfunc)0, /*tp_call*/ (reprfunc)0, /*tp_str*/ (getattrofunc)0, /*tp_getattro*/ (setattrofunc)0, /*tp_setattro*/ /* Space for future expansion */ 0L,0L, "ODBC/CLI Statement handles" }; lib/python/Products/ZODBCDA/src/Setup100666 0 0 471 6644733546 20146 0ustar00unknownunknown 0 0 *shared* # Use this for Solid sql sql.c -DSOLIDSQLAPI -I/usr/local/solid/include /usr/local/solid/lib/scllux22.a # Or maybe this for Solid 2.3, based ob feedback from Andrew Kuchling: #sql sql.c -DSOLIDSQLAPI -I/usr/local/solid/include -L/usr/local/solid/lib -lsolcli # Use this for win32 #sql sql.c lib/python/Products/ZODBCDA/src/sql.c100666 0 0 677222 6645422222 20147 0ustar00unknownunknown 0 0 /* * FILE : sql.c * * This file was automatically generated by : * Simplified Wrapper and Interface Generator (SWIG) * Version 1.1 (Patch 2) * * Portions Copyright (c) 1995-1997 * The University of Utah and The Regents of the University of California. * Permission is granted to distribute this file in any manner provided * this notice remains intact. * * Do not make changes to this file--changes will be lost! * */ #define SWIGCODE /* Implementation : PYTHON */ #define SWIGPYTHON #include #include /*********************************************************************** * $Header: /cvs-repository/Packages/Products/ZODBCDA/src/sql.c,v 1.3 1999/01/08 15:30:25 jim Exp $ * swig_lib/python/python.cfg * * This file contains coded needed to add variable linking to the * Python interpreter. C variables are added as a new kind of Python * datatype. * * Also contains supporting code for building python under Windows * and things like that. * * $Log: sql.c,v $ * Revision 1.3 1999/01/08 15:30:25 jim * *** empty log message *** * ************************************************************************/ #ifdef __cplusplus extern "C" { #endif #include "Python.h" #ifdef __cplusplus } #endif /* Definitions for Windows/Unix exporting */ #if defined(__WIN32__) # if defined(_MSC_VER) # define SWIGEXPORT(a,b) __declspec(dllexport) a b # else # if defined(__BORLANDC__) # define SWIGEXPORT(a,b) a _export b # else # define SWIGEXPORT(a,b) a b # endif # endif #else # define SWIGEXPORT(a,b) a b #endif #ifdef SWIG_GLOBAL #ifdef __cplusplus #define SWIGSTATIC extern "C" #else #define SWIGSTATIC #endif #endif #ifndef SWIGSTATIC #define SWIGSTATIC static #endif typedef struct { char *name; PyObject *(*get_attr)(void); int (*set_attr)(PyObject *); } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar **vars; int nvars; int maxvars; } swig_varlinkobject; /* ---------------------------------------------------------------------- swig_varlink_repr() Function for python repr method ---------------------------------------------------------------------- */ static PyObject * swig_varlink_repr(swig_varlinkobject *v) { v = v; return PyString_FromString(""); } /* --------------------------------------------------------------------- swig_varlink_print() Print out all of the global variable names --------------------------------------------------------------------- */ static int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { int i = 0; flags = flags; fprintf(fp,"Global variables { "); while (v->vars[i]) { fprintf(fp,"%s", v->vars[i]->name); i++; if (v->vars[i]) fprintf(fp,", "); } fprintf(fp," }\n"); return 0; } /* -------------------------------------------------------------------- swig_varlink_getattr This function gets the value of a variable and returns it as a PyObject. In our case, we'll be looking at the datatype and converting into a number or string -------------------------------------------------------------------- */ static PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { int i = 0; char temp[128]; while (v->vars[i]) { if (strcmp(v->vars[i]->name,n) == 0) { return (*v->vars[i]->get_attr)(); } i++; } sprintf(temp,"C global variable %s not found.", n); PyErr_SetString(PyExc_NameError,temp); return NULL; } /* ------------------------------------------------------------------- swig_varlink_setattr() This function sets the value of a variable. ------------------------------------------------------------------- */ static int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { char temp[128]; int i = 0; while (v->vars[i]) { if (strcmp(v->vars[i]->name,n) == 0) { return (*v->vars[i]->set_attr)(p); } i++; } sprintf(temp,"C global variable %s not found.", n); PyErr_SetString(PyExc_NameError,temp); return 1; } statichere PyTypeObject varlinktype = { /* PyObject_HEAD_INIT(&PyType_Type) Note : This doesn't work on some machines */ PyObject_HEAD_INIT(0) 0, "varlink", /* Type name */ sizeof(swig_varlinkobject), /* Basic size */ 0, /* Itemsize */ 0, /* Deallocator */ (printfunc) swig_varlink_print, /* Print */ (getattrfunc) swig_varlink_getattr, /* get attr */ (setattrfunc) swig_varlink_setattr, /* Set attr */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_mapping*/ 0, /* tp_hash */ }; /* Create a variable linking object for use later */ SWIGSTATIC PyObject * SWIG_newvarlink(void) { swig_varlinkobject *result = 0; result = PyMem_NEW(swig_varlinkobject,1); varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ result->ob_type = &varlinktype; /* _Py_NewReference(result); Does not seem to be necessary */ result->nvars = 0; result->maxvars = 64; result->vars = (swig_globalvar **) malloc(64*sizeof(swig_globalvar *)); result->vars[0] = 0; Py_XINCREF((PyObject *) result); return ((PyObject*) result); } SWIGSTATIC void SWIG_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v; v= (swig_varlinkobject *) p; if (v->nvars >= v->maxvars -1) { v->maxvars = 2*v->maxvars; v->vars = (swig_globalvar **) realloc(v->vars,v->maxvars*sizeof(swig_globalvar *)); if (v->vars == NULL) { fprintf(stderr,"SWIG : Fatal error in initializing Python module.\n"); exit(1); } } v->vars[v->nvars] = (swig_globalvar *) malloc(sizeof(swig_globalvar)); v->vars[v->nvars]->name = (char *) malloc(strlen(name)+1); strcpy(v->vars[v->nvars]->name,name); v->vars[v->nvars]->get_attr = get_attr; v->vars[v->nvars]->set_attr = set_attr; v->nvars++; v->vars[v->nvars] = 0; } /***************************************************************************** * $Header: /cvs-repository/Packages/Products/ZODBCDA/src/sql.c,v 1.3 1999/01/08 15:30:25 jim Exp $ * * swigptr.swg * * This file contains supporting code for the SWIG run-time type checking * mechanism. The following functions are available : * * SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)); * * Registers a new type-mapping with the type-checker. origtype is the * original datatype and newtype is an equivalent type. cast is optional * pointer to a function to cast pointer values between types (this * is typically used to cast pointers from derived classes to base classes in C++) * * SWIG_MakePtr(char *buffer, void *ptr, char *typestring); * * Makes a pointer string from a pointer and typestring. The result is returned * in buffer which is assumed to hold enough space for the result. * * char * SWIG_GetPtr(char *buffer, void **ptr, char *type) * * Gets a pointer value from a string. If there is a type-mismatch, returns * a character string to the received type. On success, returns NULL. * * * You can remap these functions by making a file called "swigptr.swg" in * your the same directory as the interface file you are wrapping. * * These functions are normally declared static, but this file can be * can be used in a multi-module environment by redefining the symbol * SWIGSTATIC. *****************************************************************************/ #include #ifdef SWIG_GLOBAL #ifdef __cplusplus #define SWIGSTATIC extern "C" #else #define SWIGSTATIC #endif #endif #ifndef SWIGSTATIC #define SWIGSTATIC static #endif /* SWIG pointer structure */ typedef struct SwigPtrType { char *name; /* Datatype name */ int len; /* Length (used for optimization) */ void *(*cast)(void *); /* Pointer casting function */ struct SwigPtrType *next; /* Linked list pointer */ } SwigPtrType; /* Pointer cache structure */ typedef struct { int stat; /* Status (valid) bit */ SwigPtrType *tp; /* Pointer to type structure */ char name[256]; /* Given datatype name */ char mapped[256]; /* Equivalent name */ } SwigCacheType; /* Some variables */ static int SwigPtrMax = 64; /* Max entries that can be currently held */ /* This value may be adjusted dynamically */ static int SwigPtrN = 0; /* Current number of entries */ static int SwigPtrSort = 0; /* Status flag indicating sort */ static int SwigStart[256]; /* Starting positions of types */ /* Pointer table */ static SwigPtrType *SwigPtrTable = 0; /* Table containing pointer equivalences */ /* Cached values */ #define SWIG_CACHESIZE 8 #define SWIG_CACHEMASK 0x7 static SwigCacheType SwigCache[SWIG_CACHESIZE]; static int SwigCacheIndex = 0; static int SwigLastCache = 0; /* Sort comparison function */ static int swigsort(const void *data1, const void *data2) { SwigPtrType *d1 = (SwigPtrType *) data1; SwigPtrType *d2 = (SwigPtrType *) data2; return strcmp(d1->name,d2->name); } /* Binary Search function */ static int swigcmp(const void *key, const void *data) { char *k = (char *) key; SwigPtrType *d = (SwigPtrType *) data; return strncmp(k,d->name,d->len); } /* Register a new datatype with the type-checker */ SWIGSTATIC void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) { int i; SwigPtrType *t = 0,*t1; /* Allocate the pointer table if necessary */ if (!SwigPtrTable) { SwigPtrTable = (SwigPtrType *) malloc(SwigPtrMax*sizeof(SwigPtrType)); SwigPtrN = 0; } /* Grow the table */ if (SwigPtrN >= SwigPtrMax) { SwigPtrMax = 2*SwigPtrMax; SwigPtrTable = (SwigPtrType *) realloc((char *) SwigPtrTable,SwigPtrMax*sizeof(SwigPtrType)); } for (i = 0; i < SwigPtrN; i++) if (strcmp(SwigPtrTable[i].name,origtype) == 0) { t = &SwigPtrTable[i]; break; } if (!t) { t = &SwigPtrTable[SwigPtrN]; t->name = origtype; t->len = strlen(t->name); t->cast = 0; t->next = 0; SwigPtrN++; } /* Check for existing entry */ while (t->next) { if ((strcmp(t->name,newtype) == 0)) { if (cast) t->cast = cast; return; } t = t->next; } /* Now place entry (in sorted order) */ t1 = (SwigPtrType *) malloc(sizeof(SwigPtrType)); t1->name = newtype; t1->len = strlen(t1->name); t1->cast = cast; t1->next = 0; t->next = t1; SwigPtrSort = 0; } /* Make a pointer value string */ SWIGSTATIC void SWIG_MakePtr(char *_c, const void *_ptr, char *type) { static char _hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; unsigned long _p, _s; char _result[20], *_r; /* Note : a 64-bit hex number = 16 digits */ _r = _result; _p = (unsigned long) _ptr; if (_p > 0) { while (_p > 0) { _s = _p & 0xf; *(_r++) = _hex[_s]; _p = _p >> 4; } *_r = '_'; while (_r >= _result) *(_c++) = *(_r--); } else { strcpy (_c, "NULL"); } if (_ptr) strcpy (_c, type); } /* Define for backwards compatibility */ #define _swig_make_hex SWIG_MakePtr /* Function for getting a pointer value */ SWIGSTATIC char *SWIG_GetPtr(char *_c, void **ptr, char *_t) { unsigned long _p; char temp_type[256]; char *name; int i, len; SwigPtrType *sp,*tp; SwigCacheType *cache; int start, end; _p = 0; /* Pointer values must start with leading underscore */ if (*_c == '_') { _c++; /* Extract hex value from pointer */ while (*_c) { if ((*_c >= '0') && (*_c <= '9')) _p = (_p << 4) + (*_c - '0'); else if ((*_c >= 'a') && (*_c <= 'f')) _p = (_p << 4) + ((*_c - 'a') + 10); else break; _c++; } if (_t) { if (strcmp(_t,_c)) { if (!SwigPtrSort) { qsort((void *) SwigPtrTable, SwigPtrN, sizeof(SwigPtrType), swigsort); for (i = 0; i < 256; i++) { SwigStart[i] = SwigPtrN; } for (i = SwigPtrN-1; i >= 0; i--) { SwigStart[(int) (SwigPtrTable[i].name[1])] = i; } for (i = 255; i >= 1; i--) { if (SwigStart[i-1] > SwigStart[i]) SwigStart[i-1] = SwigStart[i]; } SwigPtrSort = 1; for (i = 0; i < SWIG_CACHESIZE; i++) SwigCache[i].stat = 0; } /* First check cache for matches. Uses last cache value as starting point */ cache = &SwigCache[SwigLastCache]; for (i = 0; i < SWIG_CACHESIZE; i++) { if (cache->stat) { if (strcmp(_t,cache->name) == 0) { if (strcmp(_c,cache->mapped) == 0) { cache->stat++; *ptr = (void *) _p; if (cache->tp->cast) *ptr = (*(cache->tp->cast))(*ptr); return (char *) 0; } } } SwigLastCache = (SwigLastCache+1) & SWIG_CACHEMASK; if (!SwigLastCache) cache = SwigCache; else cache++; } /* We have a type mismatch. Will have to look through our type mapping table to figure out whether or not we can accept this datatype */ start = SwigStart[(int) _t[1]]; end = SwigStart[(int) _t[1]+1]; sp = &SwigPtrTable[start]; while (start < end) { if (swigcmp(_t,sp) == 0) break; sp++; start++; } if (start >= end) sp = 0; /* Try to find a match for this */ if (sp) { while (swigcmp(_t,sp) == 0) { name = sp->name; len = sp->len; tp = sp->next; /* Try to find entry for our given datatype */ while(tp) { if (tp->len >= 255) { return _c; } strncpy(temp_type,tp->name,255); strncat(temp_type,_t+len,255-tp->len); if (strcmp(_c,temp_type) == 0) { strcpy(SwigCache[SwigCacheIndex].mapped,_c); strcpy(SwigCache[SwigCacheIndex].name,_t); SwigCache[SwigCacheIndex].stat = 1; SwigCache[SwigCacheIndex].tp = tp; SwigCacheIndex = SwigCacheIndex & SWIG_CACHEMASK; /* Get pointer value */ *ptr = (void *) _p; if (tp->cast) *ptr = (*(tp->cast))(*ptr); return (char *) 0; } tp = tp->next; } sp++; /* Hmmm. Didn't find it this time */ } } /* Didn't find any sort of match for this data. Get the pointer value and return the received type */ *ptr = (void *) _p; return _c; } else { /* Found a match on the first try. Return pointer value */ *ptr = (void *) _p; return (char *) 0; } } else { /* No type specified. Good luck */ *ptr = (void *) _p; return (char *) 0; } } else { if (strcmp (_c, "NULL") == 0) { *ptr = (void *) 0; return (char *) 0; } *ptr = (void *) 0; return _c; } } /* Compatibility mode */ #define _swig_get_hex SWIG_GetPtr #define SWIG_init initsql #define SWIG_name "sql" #ifdef SOLIDSQLAPI #include "cli0defs.h" #include "cli0core.h" #include "cli0ext1.h" #define SQLHENV HENV #define SQLHDBC HDBC #define SQLHSTMT HSTMT typedef UCHAR SQLCHAR; typedef SCHAR SQLSCHAR; typedef SDWORD SQLINTEGER; typedef SWORD SQLSMALLINT; typedef UDWORD SQLUINTEGER; typedef UWORD SQLUSMALLINT; typedef void* SQLPOINTER; SWORD SQLDataSources( SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1, SQLCHAR *OUT2, SQLSMALLINT DIM2, SQLSMALLINT *ODIM2) { return SQL_NO_DATA_FOUND; } #else #include #include "sql.h" #include "sqlext.h" #endif static PyObject *PyExc_SQLError; static SQLHENV SQLEnv; static void PyVar_Assign(PyObject **v, PyObject *e) { Py_XDECREF(*v); *v=e; } #define ASSIGN(V,E) PyVar_Assign(&(V),(E)) #define UNLESS(E) if(!(E)) #define UNLESS_ASSIGN(V,E) ASSIGN(V,E); UNLESS(V) #include "pysql.c" static char * PySequence_CharArray(PyObject *s, int *d) { if((*d=PyString_Size(s)) < 0) return NULL; return PyString_AsString(s); } static void ___FreeConnect(void *p) { if(p && (SQLHDBC*)p != SQL_NULL_HDBC) { UNLESS(SQLFreeConnect(*(SQLHDBC*)p) == SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error calling SQLFreeConnect in destructor"); free(p); } } static void ___FreeStmt(void *p) { if(p && (SQLHSTMT*)p != SQL_NULL_HSTMT) { UNLESS(SQLFreeStmt(*(SQLHSTMT*)p, SQL_DROP) == SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error calling SQLFreeStmt in destructor"); free(p); } } static PyObject* t_output_helper(PyObject* target, PyObject* o) { PyObject* o2; PyObject* o3; if (!target) { target = o; } else if (target == Py_None) { Py_DECREF(Py_None); target = o; } else { if (!PyTuple_Check(target)) { o2 = target; target = PyTuple_New(1); PyTuple_SetItem(target, 0, o2); } o3 = PyTuple_New(1); PyTuple_SetItem(o3, 0, o); o2 = target; target = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return target; } #include /*------------------------------------------------------------------ ptrcast(value,type) Constructs a new pointer value. Value may either be a string or an integer. Type is a string corresponding to either the C datatype or mangled datatype. ptrcast(0,"Vector *") or ptrcast(0,"Vector_p") ------------------------------------------------------------------ */ static PyObject *ptrcast(PyObject *_PTRVALUE, char *type) { char *r,*s; void *ptr; PyObject *obj; char *typestr,*c; /* Produce a "mangled" version of the type string. */ typestr = (char *) malloc(strlen(type)+2); /* Go through and munge the typestring */ r = typestr; *(r++) = '_'; c = type; while (*c) { if (!isspace(*c)) { if ((*c == '*') || (*c == '&')) { *(r++) = 'p'; } else *(r++) = *c; } else { *(r++) = '_'; } c++; } *(r++) = 0; /* Check to see what kind of object _PTRVALUE is */ if (PyInt_Check(_PTRVALUE)) { ptr = (void *) PyInt_AsLong(_PTRVALUE); /* Received a numerical value. Make a pointer out of it */ r = (char *) malloc(strlen(typestr)+22); if (ptr) { SWIG_MakePtr(r, ptr, typestr); } else { sprintf(r,"_0%s",typestr); } obj = PyString_FromString(r); free(r); } else if (PyString_Check(_PTRVALUE)) { /* Have a real pointer value now. Try to strip out the pointer value */ s = PyString_AsString(_PTRVALUE); r = (char *) malloc(strlen(type)+22); /* Now extract the pointer value */ if (!SWIG_GetPtr(s,&ptr,0)) { if (ptr) { SWIG_MakePtr(r,ptr,typestr); } else { sprintf(r,"_0%s",typestr); } obj = PyString_FromString(r); } else { obj = NULL; } free(r); } else { obj = NULL; } free(typestr); if (!obj) PyErr_SetString(PyExc_TypeError,"Type error in ptrcast. Argument is not a valid pointer value."); return obj; } /*------------------------------------------------------------------ ptrvalue(ptr,type = 0) Attempts to dereference a pointer value. If type is given, it will try to use that type. Otherwise, this function will attempt to "guess" the proper datatype by checking against all of the builtin C datatypes. ------------------------------------------------------------------ */ static PyObject *ptrvalue(PyObject *_PTRVALUE, int index, char *type) { void *ptr; char *s; PyObject *obj; if (!PyString_Check(_PTRVALUE)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); return NULL; } s = PyString_AsString(_PTRVALUE); if (SWIG_GetPtr(s,&ptr,0)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrvalue. Argument is not a valid pointer value."); return NULL; } /* If no datatype was passed, try a few common datatypes first */ if (!type) { /* No datatype was passed. Type to figure out if it's a common one */ if (!SWIG_GetPtr(s,&ptr,"_int_p")) { type = "int"; } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { type = "double"; } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { type = "short"; } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { type = "long"; } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { type = "float"; } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { type = "char"; } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { type = "char *"; } else { type = "unknown"; } } if (!ptr) { PyErr_SetString(PyExc_TypeError,"Unable to dereference NULL pointer."); return NULL; } /* Now we have a datatype. Try to figure out what to do about it */ if (strcmp(type,"int") == 0) { obj = PyInt_FromLong((long) *(((int *) ptr) + index)); } else if (strcmp(type,"double") == 0) { obj = PyFloat_FromDouble((double) *(((double *) ptr)+index)); } else if (strcmp(type,"short") == 0) { obj = PyInt_FromLong((long) *(((short *) ptr)+index)); } else if (strcmp(type,"long") == 0) { obj = PyInt_FromLong((long) *(((long *) ptr)+index)); } else if (strcmp(type,"float") == 0) { obj = PyFloat_FromDouble((double) *(((float *) ptr)+index)); } else if (strcmp(type,"char") == 0) { obj = PyString_FromString(((char *) ptr)+index); } else if (strcmp(type,"char *") == 0) { char *c = *(((char **) ptr)+index); if (c) obj = PyString_FromString(c); else obj = PyString_FromString("NULL"); } else { PyErr_SetString(PyExc_TypeError,"Unable to dereference unsupported datatype."); return NULL; } return obj; } /*------------------------------------------------------------------ ptrcreate(type,value = 0,numelements = 1) Attempts to create a new object of given type. Type must be a basic C datatype. Will not create complex objects. ------------------------------------------------------------------ */ static PyObject *ptrcreate(char *type, PyObject *_PYVALUE, int numelements) { void *ptr; PyObject *obj; int sz; char *cast; char temp[40]; /* Check the type string against a variety of possibilities */ if (strcmp(type,"int") == 0) { sz = sizeof(int)*numelements; cast = "_int_p"; } else if (strcmp(type,"short") == 0) { sz = sizeof(short)*numelements; cast = "_short_p"; } else if (strcmp(type,"long") == 0) { sz = sizeof(long)*numelements; cast = "_long_p"; } else if (strcmp(type,"double") == 0) { sz = sizeof(double)*numelements; cast = "_double_p"; } else if (strcmp(type,"float") == 0) { sz = sizeof(float)*numelements; cast = "_float_p"; } else if (strcmp(type,"char") == 0) { sz = sizeof(char)*numelements; cast = "_char_p"; } else if (strcmp(type,"char *") == 0) { sz = sizeof(char *)*(numelements+1); cast = "_char_pp"; } else { PyErr_SetString(PyExc_TypeError,"Unable to create unknown datatype."); return NULL; } /* Create the new object */ ptr = (void *) malloc(sz); if (!ptr) { PyErr_SetString(PyExc_MemoryError,"Out of memory in swig_create."); return NULL; } /* Now try to set its default value */ if (_PYVALUE) { if (strcmp(type,"int") == 0) { int *ip,i,ivalue; ivalue = (int) PyInt_AsLong(_PYVALUE); ip = (int *) ptr; for (i = 0; i < numelements; i++) ip[i] = ivalue; } else if (strcmp(type,"short") == 0) { short *ip,ivalue; int i; ivalue = (short) PyInt_AsLong(_PYVALUE); ip = (short *) ptr; for (i = 0; i < numelements; i++) ip[i] = ivalue; } else if (strcmp(type,"long") == 0) { long *ip,ivalue; int i; ivalue = (long) PyInt_AsLong(_PYVALUE); ip = (long *) ptr; for (i = 0; i < numelements; i++) ip[i] = ivalue; } else if (strcmp(type,"double") == 0) { double *ip,ivalue; int i; ivalue = (double) PyFloat_AsDouble(_PYVALUE); ip = (double *) ptr; for (i = 0; i < numelements; i++) ip[i] = ivalue; } else if (strcmp(type,"float") == 0) { float *ip,ivalue; int i; ivalue = (float) PyFloat_AsDouble(_PYVALUE); ip = (float *) ptr; for (i = 0; i < numelements; i++) ip[i] = ivalue; } else if (strcmp(type,"char") == 0) { char *ip,*ivalue; ivalue = (char *) PyString_AsString(_PYVALUE); ip = (char *) ptr; strncpy(ip,ivalue,numelements-1); } else if (strcmp(type,"char *") == 0) { char **ip, *ivalue; int i; ivalue = (char *) PyString_AsString(_PYVALUE); ip = (char **) ptr; for (i = 0; i < numelements; i++) { if (ivalue) { ip[i] = (char *) malloc(strlen(ivalue)+1); strcpy(ip[i],ivalue); } else { ip[i] = 0; } } ip[numelements] = 0; } } /* Create the pointer value */ SWIG_MakePtr(temp,ptr,cast); obj = PyString_FromString(temp); return obj; } /*------------------------------------------------------------------ ptrset(ptr,value,index = 0,type = 0) Attempts to set the value of a pointer variable. If type is given, we will use that type. Otherwise, we'll guess the datatype. ------------------------------------------------------------------ */ static PyObject *ptrset(PyObject *_PTRVALUE, PyObject *_PYVALUE, int index, char *type) { void *ptr; char *s; PyObject *obj; if (!PyString_Check(_PTRVALUE)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); return NULL; } s = PyString_AsString(_PTRVALUE); if (SWIG_GetPtr(s,&ptr,0)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrset. Argument is not a valid pointer value."); return NULL; } /* If no datatype was passed, try a few common datatypes first */ if (!type) { /* No datatype was passed. Type to figure out if it's a common one */ if (!SWIG_GetPtr(s,&ptr,"_int_p")) { type = "int"; } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { type = "double"; } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { type = "short"; } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { type = "long"; } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { type = "float"; } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { type = "char"; } else if (!SWIG_GetPtr(s,&ptr,"_char_pp")) { type = "char *"; } else { type = "unknown"; } } if (!ptr) { PyErr_SetString(PyExc_TypeError,"Unable to set NULL pointer."); return NULL; } /* Now we have a datatype. Try to figure out what to do about it */ if (strcmp(type,"int") == 0) { *(((int *) ptr)+index) = (int) PyInt_AsLong(_PYVALUE); } else if (strcmp(type,"double") == 0) { *(((double *) ptr)+index) = (double) PyFloat_AsDouble(_PYVALUE); } else if (strcmp(type,"short") == 0) { *(((short *) ptr)+index) = (short) PyInt_AsLong(_PYVALUE); } else if (strcmp(type,"long") == 0) { *(((long *) ptr)+index) = (long) PyInt_AsLong(_PYVALUE); } else if (strcmp(type,"float") == 0) { *(((float *) ptr)+index) = (float) PyFloat_AsDouble(_PYVALUE); } else if (strcmp(type,"char") == 0) { char *c = PyString_AsString(_PYVALUE); strcpy(((char *) ptr)+index, c); } else if (strcmp(type,"char *") == 0) { char *c = PyString_AsString(_PYVALUE); char **ca = (char **) ptr; if (ca[index]) free(ca[index]); if (strcmp(c,"NULL") == 0) { ca[index] = 0; } else { ca[index] = (char *) malloc(strlen(c)+1); strcpy(ca[index],c); } } else { PyErr_SetString(PyExc_TypeError,"Unable to set unsupported datatype."); return NULL; } Py_INCREF(Py_None); return Py_None; } /*------------------------------------------------------------------ ptradd(ptr,offset) Adds a value to an existing pointer value. Will do a type-dependent add for basic datatypes. For other datatypes, will do a byte-add. ------------------------------------------------------------------ */ static PyObject *ptradd(PyObject *_PTRVALUE, int offset) { char *r,*s; void *ptr,*junk; PyObject *obj; char *type; /* Check to see what kind of object _PTRVALUE is */ if (PyString_Check(_PTRVALUE)) { /* Have a potential pointer value now. Try to strip out the value */ s = PyString_AsString(_PTRVALUE); /* Try to handle a few common datatypes first */ if (!SWIG_GetPtr(s,&ptr,"_int_p")) { ptr = (void *) (((int *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,"_double_p")) { ptr = (void *) (((double *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,"_short_p")) { ptr = (void *) (((short *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,"_long_p")) { ptr = (void *) (((long *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,"_float_p")) { ptr = (void *) (((float *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,"_char_p")) { ptr = (void *) (((char *) ptr) + offset); } else if (!SWIG_GetPtr(s,&ptr,0)) { ptr = (void *) (((char *) ptr) + offset); } else { PyErr_SetString(PyExc_TypeError,"Type error in ptradd. Argument is not a valid pointer value."); return NULL; } type = SWIG_GetPtr(s,&junk,"INVALID POINTER"); r = (char *) malloc(strlen(type)+20); if (ptr) { SWIG_MakePtr(r,ptr,type); } else { sprintf(r,"_0%s",type); } obj = PyString_FromString(r); free(r); } return obj; } /*------------------------------------------------------------------ ptrmap(type1,type2) Allows a mapping between type1 and type2. (Like a typedef) ------------------------------------------------------------------ */ static void ptrmap(char *type1, char *type2) { char *typestr1,*typestr2,*c,*r; /* Produce a "mangled" version of the type string. */ typestr1 = (char *) malloc(strlen(type1)+2); /* Go through and munge the typestring */ r = typestr1; *(r++) = '_'; c = type1; while (*c) { if (!isspace(*c)) { if ((*c == '*') || (*c == '&')) { *(r++) = 'p'; } else *(r++) = *c; } else { *(r++) = '_'; } c++; } *(r++) = 0; typestr2 = (char *) malloc(strlen(type2)+2); /* Go through and munge the typestring */ r = typestr2; *(r++) = '_'; c = type2; while (*c) { if (!isspace(*c)) { if ((*c == '*') || (*c == '&')) { *(r++) = 'p'; } else *(r++) = *c; } else { *(r++) = '_'; } c++; } *(r++) = 0; SWIG_RegisterMapping(typestr1,typestr2,0); SWIG_RegisterMapping(typestr2,typestr1,0); } /*------------------------------------------------------------------ ptrfree(ptr) Destroys a pointer value ------------------------------------------------------------------ */ PyObject *ptrfree(PyObject *_PTRVALUE) { void *ptr, *junk; char *s; if (!PyString_Check(_PTRVALUE)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); return NULL; } s = PyString_AsString(_PTRVALUE); if (SWIG_GetPtr(s,&ptr,0)) { PyErr_SetString(PyExc_TypeError,"Type error in ptrfree. Argument is not a valid pointer value."); return NULL; } /* Check to see if this pointer is a char ** */ if (!SWIG_GetPtr(s,&junk,"_char_pp")) { char **c = (char **) ptr; if (c) { int i = 0; while (c[i]) { free(c[i]); i++; } } } if (ptr) free((char *) ptr); Py_INCREF(Py_None); return Py_None; } static PyObject *_wrap_python_const_ODBCVER; static PyObject *_wrap_python_const_SQL_SPEC_MAJOR; static PyObject *_wrap_python_const_SQL_SPEC_MINOR; static PyObject *_wrap_python_const_SQL_SPEC_STRING; static PyObject *_wrap_python_const_SQL_SQLSTATE_SIZE; static PyObject *_wrap_python_const_SQL_MAX_MESSAGE_LENGTH; static PyObject *_wrap_python_const_SQL_MAX_DSN_LENGTH; static PyObject *_wrap_python_const_SQL_INVALID_HANDLE; static PyObject *_wrap_python_const_SQL_ERROR; static PyObject *_wrap_python_const_SQL_SUCCESS; static PyObject *_wrap_python_const_SQL_SUCCESS_WITH_INFO; static PyObject *_wrap_python_const_SQL_NO_DATA_FOUND; static PyObject *_wrap_python_const_SQL_CHAR; static PyObject *_wrap_python_const_SQL_NUMERIC; static PyObject *_wrap_python_const_SQL_DECIMAL; static PyObject *_wrap_python_const_SQL_INTEGER; static PyObject *_wrap_python_const_SQL_SMALLINT; static PyObject *_wrap_python_const_SQL_FLOAT; static PyObject *_wrap_python_const_SQL_REAL; static PyObject *_wrap_python_const_SQL_DOUBLE; static PyObject *_wrap_python_const_SQL_VARCHAR; static PyObject *_wrap_python_const_SQL_TYPE_NULL; static PyObject *_wrap_python_const_SQL_TYPE_MIN; static PyObject *_wrap_python_const_SQL_TYPE_MAX; static PyObject *_wrap_python_const_SQL_ALL_TYPES; static PyObject *_wrap_python_const_SQL_C_CHAR; static PyObject *_wrap_python_const_SQL_C_LONG; static PyObject *_wrap_python_const_SQL_C_SHORT; static PyObject *_wrap_python_const_SQL_C_FLOAT; static PyObject *_wrap_python_const_SQL_C_DOUBLE; static PyObject *_wrap_python_const_SQL_C_DEFAULT; static PyObject *_wrap_python_const_SQL_NO_NULLS; static PyObject *_wrap_python_const_SQL_NULLABLE; static PyObject *_wrap_python_const_SQL_NULLABLE_UNKNOWN; static PyObject *_wrap_python_const_SQL_NULL_DATA; static PyObject *_wrap_python_const_SQL_DATA_AT_EXEC; static PyObject *_wrap_python_const_SQL_NTS; static PyObject *_wrap_python_const_SQL_CLOSE; static PyObject *_wrap_python_const_SQL_DROP; static PyObject *_wrap_python_const_SQL_UNBIND; static PyObject *_wrap_python_const_SQL_RESET_PARAMS; static PyObject *_wrap_python_const_SQL_COMMIT; static PyObject *_wrap_python_const_SQL_ROLLBACK; static PyObject *_wrap_python_const_SQL_COLUMN_COUNT; static PyObject *_wrap_python_const_SQL_COLUMN_NAME; static PyObject *_wrap_python_const_SQL_COLUMN_TYPE; static PyObject *_wrap_python_const_SQL_COLUMN_LENGTH; static PyObject *_wrap_python_const_SQL_COLUMN_PRECISION; static PyObject *_wrap_python_const_SQL_COLUMN_SCALE; static PyObject *_wrap_python_const_SQL_COLUMN_DISPLAY_SIZE; static PyObject *_wrap_python_const_SQL_COLUMN_NULLABLE; static PyObject *_wrap_python_const_SQL_COLUMN_UNSIGNED; static PyObject *_wrap_python_const_SQL_COLUMN_MONEY; static PyObject *_wrap_python_const_SQL_COLUMN_UPDATABLE; static PyObject *_wrap_python_const_SQL_COLUMN_AUTO_INCREMENT; static PyObject *_wrap_python_const_SQL_COLUMN_CASE_SENSITIVE; static PyObject *_wrap_python_const_SQL_COLUMN_SEARCHABLE; static PyObject *_wrap_python_const_SQL_COLUMN_TYPE_NAME; static PyObject *_wrap_python_const_SQL_COLUMN_TABLE_NAME; static PyObject *_wrap_python_const_SQL_COLUMN_OWNER_NAME; static PyObject *_wrap_python_const_SQL_COLUMN_QUALIFIER_NAME; static PyObject *_wrap_python_const_SQL_COLUMN_LABEL; static PyObject *_wrap_python_const_SQL_COLATT_OPT_MAX; static PyObject *_wrap_python_const_SQL_COLUMN_DRIVER_START; static PyObject *_wrap_python_const_SQL_COLATT_OPT_MIN; static PyObject *_wrap_python_const_SQL_ATTR_READONLY; static PyObject *_wrap_python_const_SQL_ATTR_WRITE; static PyObject *_wrap_python_const_SQL_ATTR_READWRITE_UNKNOWN; static PyObject *_wrap_python_const_SQL_UNSEARCHABLE; static PyObject *_wrap_python_const_SQL_LIKE_ONLY; static PyObject *_wrap_python_const_SQL_ALL_EXCEPT_LIKE; static PyObject *_wrap_python_const_SQL_SEARCHABLE; static PyObject *_wrap_python_const_SQL_NULL_HENV; static PyObject *_wrap_python_const_SQL_NULL_HDBC; static PyObject *_wrap_python_const_SQL_NULL_HSTMT; static PyObject *_wrap_python_const_SQL_MAX_OPTION_STRING_LENGTH; static PyObject *_wrap_python_const_SQL_STILL_EXECUTING; static PyObject *_wrap_python_const_SQL_NEED_DATA; static PyObject *_wrap_python_const_SQL_DATE; static PyObject *_wrap_python_const_SQL_TIME; static PyObject *_wrap_python_const_SQL_TIMESTAMP; static PyObject *_wrap_python_const_SQL_LONGVARCHAR; static PyObject *_wrap_python_const_SQL_BINARY; static PyObject *_wrap_python_const_SQL_VARBINARY; static PyObject *_wrap_python_const_SQL_LONGVARBINARY; static PyObject *_wrap_python_const_SQL_BIGINT; static PyObject *_wrap_python_const_SQL_TINYINT; static PyObject *_wrap_python_const_SQL_BIT; static PyObject *_wrap_python_const_SQL_INTERVAL_YEAR; static PyObject *_wrap_python_const_SQL_INTERVAL_MONTH; static PyObject *_wrap_python_const_SQL_INTERVAL_YEAR_TO_MONTH; static PyObject *_wrap_python_const_SQL_INTERVAL_DAY; static PyObject *_wrap_python_const_SQL_INTERVAL_HOUR; static PyObject *_wrap_python_const_SQL_INTERVAL_MINUTE; static PyObject *_wrap_python_const_SQL_INTERVAL_SECOND; static PyObject *_wrap_python_const_SQL_INTERVAL_DAY_TO_HOUR; static PyObject *_wrap_python_const_SQL_INTERVAL_DAY_TO_MINUTE; static PyObject *_wrap_python_const_SQL_INTERVAL_DAY_TO_SECOND; static PyObject *_wrap_python_const_SQL_INTERVAL_HOUR_TO_MINUTE; static PyObject *_wrap_python_const_SQL_INTERVAL_HOUR_TO_SECOND; static PyObject *_wrap_python_const_SQL_INTERVAL_MINUTE_TO_SECOND; static PyObject *_wrap_python_const_SQL_UNICODE; static PyObject *_wrap_python_const_SQL_UNICODE_VARCHAR; static PyObject *_wrap_python_const_SQL_UNICODE_LONGVARCHAR; static PyObject *_wrap_python_const_SQL_UNICODE_CHAR; static PyObject *_wrap_python_const_SQL_TYPE_DRIVER_START; static PyObject *_wrap_python_const_SQL_TYPE_DRIVER_END; static PyObject *_wrap_python_const_SQL_SIGNED_OFFSET; static PyObject *_wrap_python_const_SQL_UNSIGNED_OFFSET; static PyObject *_wrap_python_const_SQL_C_DATE; static PyObject *_wrap_python_const_SQL_C_TIME; static PyObject *_wrap_python_const_SQL_C_TIMESTAMP; static PyObject *_wrap_python_const_SQL_C_BINARY; static PyObject *_wrap_python_const_SQL_C_BIT; static PyObject *_wrap_python_const_SQL_C_TINYINT; static PyObject *_wrap_python_const_SQL_C_SLONG; static PyObject *_wrap_python_const_SQL_C_SSHORT; static PyObject *_wrap_python_const_SQL_C_STINYINT; static PyObject *_wrap_python_const_SQL_C_ULONG; static PyObject *_wrap_python_const_SQL_C_USHORT; static PyObject *_wrap_python_const_SQL_C_UTINYINT; static PyObject *_wrap_python_const_SQL_C_BOOKMARK; static PyObject *_wrap_python_const_SQL_NO_TOTAL; static PyObject *_wrap_python_const_SQL_API_SQLALLOCCONNECT; static PyObject *_wrap_python_const_SQL_API_SQLALLOCENV; static PyObject *_wrap_python_const_SQL_API_SQLALLOCSTMT; static PyObject *_wrap_python_const_SQL_API_SQLBINDCOL; static PyObject *_wrap_python_const_SQL_API_SQLCANCEL; static PyObject *_wrap_python_const_SQL_API_SQLCOLATTRIBUTES; static PyObject *_wrap_python_const_SQL_API_SQLCONNECT; static PyObject *_wrap_python_const_SQL_API_SQLDESCRIBECOL; static PyObject *_wrap_python_const_SQL_API_SQLDISCONNECT; static PyObject *_wrap_python_const_SQL_API_SQLERROR; static PyObject *_wrap_python_const_SQL_API_SQLEXECDIRECT; static PyObject *_wrap_python_const_SQL_API_SQLEXECUTE; static PyObject *_wrap_python_const_SQL_API_SQLFETCH; static PyObject *_wrap_python_const_SQL_API_SQLFREECONNECT; static PyObject *_wrap_python_const_SQL_API_SQLFREEENV; static PyObject *_wrap_python_const_SQL_API_SQLFREESTMT; static PyObject *_wrap_python_const_SQL_API_SQLGETCURSORNAME; static PyObject *_wrap_python_const_SQL_API_SQLNUMRESULTCOLS; static PyObject *_wrap_python_const_SQL_API_SQLPREPARE; static PyObject *_wrap_python_const_SQL_API_SQLROWCOUNT; static PyObject *_wrap_python_const_SQL_API_SQLSETCURSORNAME; static PyObject *_wrap_python_const_SQL_API_SQLSETPARAM; static PyObject *_wrap_python_const_SQL_API_SQLTRANSACT; static PyObject *_wrap_python_const_SQL_NUM_FUNCTIONS; static PyObject *_wrap_python_const_SQL_EXT_API_START; static PyObject *_wrap_python_const_SQL_API_SQLCOLUMNS; static PyObject *_wrap_python_const_SQL_API_SQLDRIVERCONNECT; static PyObject *_wrap_python_const_SQL_API_SQLGETCONNECTOPTION; static PyObject *_wrap_python_const_SQL_API_SQLGETDATA; static PyObject *_wrap_python_const_SQL_API_SQLGETFUNCTIONS; static PyObject *_wrap_python_const_SQL_API_SQLGETINFO; static PyObject *_wrap_python_const_SQL_API_SQLGETSTMTOPTION; static PyObject *_wrap_python_const_SQL_API_SQLGETTYPEINFO; static PyObject *_wrap_python_const_SQL_API_SQLPARAMDATA; static PyObject *_wrap_python_const_SQL_API_SQLPUTDATA; static PyObject *_wrap_python_const_SQL_API_SQLSETCONNECTOPTION; static PyObject *_wrap_python_const_SQL_API_SQLSETSTMTOPTION; static PyObject *_wrap_python_const_SQL_API_SQLSPECIALCOLUMNS; static PyObject *_wrap_python_const_SQL_API_SQLSTATISTICS; static PyObject *_wrap_python_const_SQL_API_SQLTABLES; static PyObject *_wrap_python_const_SQL_API_SQLBROWSECONNECT; static PyObject *_wrap_python_const_SQL_API_SQLCOLUMNPRIVILEGES; static PyObject *_wrap_python_const_SQL_API_SQLDATASOURCES; static PyObject *_wrap_python_const_SQL_API_SQLDESCRIBEPARAM; static PyObject *_wrap_python_const_SQL_API_SQLEXTENDEDFETCH; static PyObject *_wrap_python_const_SQL_API_SQLFOREIGNKEYS; static PyObject *_wrap_python_const_SQL_API_SQLMORERESULTS; static PyObject *_wrap_python_const_SQL_API_SQLNATIVESQL; static PyObject *_wrap_python_const_SQL_API_SQLNUMPARAMS; static PyObject *_wrap_python_const_SQL_API_SQLPARAMOPTIONS; static PyObject *_wrap_python_const_SQL_API_SQLPRIMARYKEYS; static PyObject *_wrap_python_const_SQL_API_SQLPROCEDURECOLUMNS; static PyObject *_wrap_python_const_SQL_API_SQLPROCEDURES; static PyObject *_wrap_python_const_SQL_API_SQLSETPOS; static PyObject *_wrap_python_const_SQL_API_SQLSETSCROLLOPTIONS; static PyObject *_wrap_python_const_SQL_API_SQLTABLEPRIVILEGES; static PyObject *_wrap_python_const_SQL_API_SQLDRIVERS; static PyObject *_wrap_python_const_SQL_API_SQLBINDPARAMETER; static PyObject *_wrap_python_const_SQL_EXT_API_LAST; static PyObject *_wrap_python_const_SQL_API_ALL_FUNCTIONS; static PyObject *_wrap_python_const_SQL_NUM_EXTENSIONS; static PyObject *_wrap_python_const_SQL_API_LOADBYORDINAL; static PyObject *_wrap_python_const_SQL_INFO_FIRST; static PyObject *_wrap_python_const_SQL_ACTIVE_CONNECTIONS; static PyObject *_wrap_python_const_SQL_ACTIVE_STATEMENTS; static PyObject *_wrap_python_const_SQL_DATA_SOURCE_NAME; static PyObject *_wrap_python_const_SQL_DRIVER_HDBC; static PyObject *_wrap_python_const_SQL_DRIVER_HENV; static PyObject *_wrap_python_const_SQL_DRIVER_HSTMT; static PyObject *_wrap_python_const_SQL_DRIVER_NAME; static PyObject *_wrap_python_const_SQL_DRIVER_VER; static PyObject *_wrap_python_const_SQL_FETCH_DIRECTION; static PyObject *_wrap_python_const_SQL_ODBC_API_CONFORMANCE; static PyObject *_wrap_python_const_SQL_ODBC_VER; static PyObject *_wrap_python_const_SQL_ROW_UPDATES; static PyObject *_wrap_python_const_SQL_ODBC_SAG_CLI_CONFORMANCE; static PyObject *_wrap_python_const_SQL_SERVER_NAME; static PyObject *_wrap_python_const_SQL_SEARCH_PATTERN_ESCAPE; static PyObject *_wrap_python_const_SQL_ODBC_SQL_CONFORMANCE; static PyObject *_wrap_python_const_SQL_DBMS_NAME; static PyObject *_wrap_python_const_SQL_DBMS_VER; static PyObject *_wrap_python_const_SQL_ACCESSIBLE_TABLES; static PyObject *_wrap_python_const_SQL_ACCESSIBLE_PROCEDURES; static PyObject *_wrap_python_const_SQL_PROCEDURES; static PyObject *_wrap_python_const_SQL_CONCAT_NULL_BEHAVIOR; static PyObject *_wrap_python_const_SQL_CURSOR_COMMIT_BEHAVIOR; static PyObject *_wrap_python_const_SQL_CURSOR_ROLLBACK_BEHAVIOR; static PyObject *_wrap_python_const_SQL_DATA_SOURCE_READ_ONLY; static PyObject *_wrap_python_const_SQL_DEFAULT_TXN_ISOLATION; static PyObject *_wrap_python_const_SQL_EXPRESSIONS_IN_ORDERBY; static PyObject *_wrap_python_const_SQL_IDENTIFIER_CASE; static PyObject *_wrap_python_const_SQL_IDENTIFIER_QUOTE_CHAR; static PyObject *_wrap_python_const_SQL_MAX_COLUMN_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_CURSOR_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_OWNER_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_PROCEDURE_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_QUALIFIER_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_TABLE_NAME_LEN; static PyObject *_wrap_python_const_SQL_MULT_RESULT_SETS; static PyObject *_wrap_python_const_SQL_MULTIPLE_ACTIVE_TXN; static PyObject *_wrap_python_const_SQL_OUTER_JOINS; static PyObject *_wrap_python_const_SQL_OWNER_TERM; static PyObject *_wrap_python_const_SQL_PROCEDURE_TERM; static PyObject *_wrap_python_const_SQL_QUALIFIER_NAME_SEPARATOR; static PyObject *_wrap_python_const_SQL_QUALIFIER_TERM; static PyObject *_wrap_python_const_SQL_SCROLL_CONCURRENCY; static PyObject *_wrap_python_const_SQL_SCROLL_OPTIONS; static PyObject *_wrap_python_const_SQL_TABLE_TERM; static PyObject *_wrap_python_const_SQL_TXN_CAPABLE; static PyObject *_wrap_python_const_SQL_USER_NAME; static PyObject *_wrap_python_const_SQL_CONVERT_FUNCTIONS; static PyObject *_wrap_python_const_SQL_NUMERIC_FUNCTIONS; static PyObject *_wrap_python_const_SQL_STRING_FUNCTIONS; static PyObject *_wrap_python_const_SQL_SYSTEM_FUNCTIONS; static PyObject *_wrap_python_const_SQL_TIMEDATE_FUNCTIONS; static PyObject *_wrap_python_const_SQL_CONVERT_BIGINT; static PyObject *_wrap_python_const_SQL_CONVERT_BINARY; static PyObject *_wrap_python_const_SQL_CONVERT_BIT; static PyObject *_wrap_python_const_SQL_CONVERT_CHAR; static PyObject *_wrap_python_const_SQL_CONVERT_DATE; static PyObject *_wrap_python_const_SQL_CONVERT_DECIMAL; static PyObject *_wrap_python_const_SQL_CONVERT_DOUBLE; static PyObject *_wrap_python_const_SQL_CONVERT_FLOAT; static PyObject *_wrap_python_const_SQL_CONVERT_INTEGER; static PyObject *_wrap_python_const_SQL_CONVERT_LONGVARCHAR; static PyObject *_wrap_python_const_SQL_CONVERT_NUMERIC; static PyObject *_wrap_python_const_SQL_CONVERT_REAL; static PyObject *_wrap_python_const_SQL_CONVERT_SMALLINT; static PyObject *_wrap_python_const_SQL_CONVERT_TIME; static PyObject *_wrap_python_const_SQL_CONVERT_TIMESTAMP; static PyObject *_wrap_python_const_SQL_CONVERT_TINYINT; static PyObject *_wrap_python_const_SQL_CONVERT_VARBINARY; static PyObject *_wrap_python_const_SQL_CONVERT_VARCHAR; static PyObject *_wrap_python_const_SQL_CONVERT_LONGVARBINARY; static PyObject *_wrap_python_const_SQL_TXN_ISOLATION_OPTION; static PyObject *_wrap_python_const_SQL_ODBC_SQL_OPT_IEF; static PyObject *_wrap_python_const_SQL_CORRELATION_NAME; static PyObject *_wrap_python_const_SQL_NON_NULLABLE_COLUMNS; static PyObject *_wrap_python_const_SQL_DRIVER_HLIB; static PyObject *_wrap_python_const_SQL_DRIVER_ODBC_VER; static PyObject *_wrap_python_const_SQL_LOCK_TYPES; static PyObject *_wrap_python_const_SQL_POS_OPERATIONS; static PyObject *_wrap_python_const_SQL_POSITIONED_STATEMENTS; static PyObject *_wrap_python_const_SQL_GETDATA_EXTENSIONS; static PyObject *_wrap_python_const_SQL_BOOKMARK_PERSISTENCE; static PyObject *_wrap_python_const_SQL_STATIC_SENSITIVITY; static PyObject *_wrap_python_const_SQL_FILE_USAGE; static PyObject *_wrap_python_const_SQL_NULL_COLLATION; static PyObject *_wrap_python_const_SQL_ALTER_TABLE; static PyObject *_wrap_python_const_SQL_COLUMN_ALIAS; static PyObject *_wrap_python_const_SQL_GROUP_BY; static PyObject *_wrap_python_const_SQL_KEYWORDS; static PyObject *_wrap_python_const_SQL_ORDER_BY_COLUMNS_IN_SELECT; static PyObject *_wrap_python_const_SQL_OWNER_USAGE; static PyObject *_wrap_python_const_SQL_QUALIFIER_USAGE; static PyObject *_wrap_python_const_SQL_QUOTED_IDENTIFIER_CASE; static PyObject *_wrap_python_const_SQL_SPECIAL_CHARACTERS; static PyObject *_wrap_python_const_SQL_SUBQUERIES; static PyObject *_wrap_python_const_SQL_UNION; static PyObject *_wrap_python_const_SQL_MAX_COLUMNS_IN_GROUP_BY; static PyObject *_wrap_python_const_SQL_MAX_COLUMNS_IN_INDEX; static PyObject *_wrap_python_const_SQL_MAX_COLUMNS_IN_ORDER_BY; static PyObject *_wrap_python_const_SQL_MAX_COLUMNS_IN_SELECT; static PyObject *_wrap_python_const_SQL_MAX_COLUMNS_IN_TABLE; static PyObject *_wrap_python_const_SQL_MAX_INDEX_SIZE; static PyObject *_wrap_python_const_SQL_MAX_ROW_SIZE_INCLUDES_LONG; static PyObject *_wrap_python_const_SQL_MAX_ROW_SIZE; static PyObject *_wrap_python_const_SQL_MAX_STATEMENT_LEN; static PyObject *_wrap_python_const_SQL_MAX_TABLES_IN_SELECT; static PyObject *_wrap_python_const_SQL_MAX_USER_NAME_LEN; static PyObject *_wrap_python_const_SQL_MAX_CHAR_LITERAL_LEN; static PyObject *_wrap_python_const_SQL_TIMEDATE_ADD_INTERVALS; static PyObject *_wrap_python_const_SQL_TIMEDATE_DIFF_INTERVALS; static PyObject *_wrap_python_const_SQL_NEED_LONG_DATA_LEN; static PyObject *_wrap_python_const_SQL_MAX_BINARY_LITERAL_LEN; static PyObject *_wrap_python_const_SQL_LIKE_ESCAPE_CLAUSE; static PyObject *_wrap_python_const_SQL_QUALIFIER_LOCATION; static PyObject *_wrap_python_const_SQL_OJ_CAPABILITIES; static PyObject *_wrap_python_const_SQL_INFO_LAST; static PyObject *_wrap_python_const_SQL_INFO_DRIVER_START; static PyObject *_wrap_python_const_SQL_CVT_CHAR; static PyObject *_wrap_python_const_SQL_CVT_NUMERIC; static PyObject *_wrap_python_const_SQL_CVT_DECIMAL; static PyObject *_wrap_python_const_SQL_CVT_INTEGER; static PyObject *_wrap_python_const_SQL_CVT_SMALLINT; static PyObject *_wrap_python_const_SQL_CVT_FLOAT; static PyObject *_wrap_python_const_SQL_CVT_REAL; static PyObject *_wrap_python_const_SQL_CVT_DOUBLE; static PyObject *_wrap_python_const_SQL_CVT_VARCHAR; static PyObject *_wrap_python_const_SQL_CVT_LONGVARCHAR; static PyObject *_wrap_python_const_SQL_CVT_BINARY; static PyObject *_wrap_python_const_SQL_CVT_VARBINARY; static PyObject *_wrap_python_const_SQL_CVT_BIT; static PyObject *_wrap_python_const_SQL_CVT_TINYINT; static PyObject *_wrap_python_const_SQL_CVT_BIGINT; static PyObject *_wrap_python_const_SQL_CVT_DATE; static PyObject *_wrap_python_const_SQL_CVT_TIME; static PyObject *_wrap_python_const_SQL_CVT_TIMESTAMP; static PyObject *_wrap_python_const_SQL_CVT_LONGVARBINARY; static PyObject *_wrap_python_const_SQL_FN_CVT_CONVERT; static PyObject *_wrap_python_const_SQL_FN_STR_CONCAT; static PyObject *_wrap_python_const_SQL_FN_STR_INSERT; static PyObject *_wrap_python_const_SQL_FN_STR_LEFT; static PyObject *_wrap_python_const_SQL_FN_STR_LTRIM; static PyObject *_wrap_python_const_SQL_FN_STR_LENGTH; static PyObject *_wrap_python_const_SQL_FN_STR_LOCATE; static PyObject *_wrap_python_const_SQL_FN_STR_LCASE; static PyObject *_wrap_python_const_SQL_FN_STR_REPEAT; static PyObject *_wrap_python_const_SQL_FN_STR_REPLACE; static PyObject *_wrap_python_const_SQL_FN_STR_RIGHT; static PyObject *_wrap_python_const_SQL_FN_STR_RTRIM; static PyObject *_wrap_python_const_SQL_FN_STR_SUBSTRING; static PyObject *_wrap_python_const_SQL_FN_STR_UCASE; static PyObject *_wrap_python_const_SQL_FN_STR_ASCII; static PyObject *_wrap_python_const_SQL_FN_STR_CHAR; static PyObject *_wrap_python_const_SQL_FN_STR_DIFFERENCE; static PyObject *_wrap_python_const_SQL_FN_STR_LOCATE_2; static PyObject *_wrap_python_const_SQL_FN_STR_SOUNDEX; static PyObject *_wrap_python_const_SQL_FN_STR_SPACE; static PyObject *_wrap_python_const_SQL_FN_NUM_ABS; static PyObject *_wrap_python_const_SQL_FN_NUM_ACOS; static PyObject *_wrap_python_const_SQL_FN_NUM_ASIN; static PyObject *_wrap_python_const_SQL_FN_NUM_ATAN; static PyObject *_wrap_python_const_SQL_FN_NUM_ATAN2; static PyObject *_wrap_python_const_SQL_FN_NUM_CEILING; static PyObject *_wrap_python_const_SQL_FN_NUM_COS; static PyObject *_wrap_python_const_SQL_FN_NUM_COT; static PyObject *_wrap_python_const_SQL_FN_NUM_EXP; static PyObject *_wrap_python_const_SQL_FN_NUM_FLOOR; static PyObject *_wrap_python_const_SQL_FN_NUM_LOG; static PyObject *_wrap_python_const_SQL_FN_NUM_MOD; static PyObject *_wrap_python_const_SQL_FN_NUM_SIGN; static PyObject *_wrap_python_const_SQL_FN_NUM_SIN; static PyObject *_wrap_python_const_SQL_FN_NUM_SQRT; static PyObject *_wrap_python_const_SQL_FN_NUM_TAN; static PyObject *_wrap_python_const_SQL_FN_NUM_PI; static PyObject *_wrap_python_const_SQL_FN_NUM_RAND; static PyObject *_wrap_python_const_SQL_FN_NUM_DEGREES; static PyObject *_wrap_python_const_SQL_FN_NUM_LOG10; static PyObject *_wrap_python_const_SQL_FN_NUM_POWER; static PyObject *_wrap_python_const_SQL_FN_NUM_RADIANS; static PyObject *_wrap_python_const_SQL_FN_NUM_ROUND; static PyObject *_wrap_python_const_SQL_FN_NUM_TRUNCATE; static PyObject *_wrap_python_const_SQL_FN_TD_NOW; static PyObject *_wrap_python_const_SQL_FN_TD_CURDATE; static PyObject *_wrap_python_const_SQL_FN_TD_DAYOFMONTH; static PyObject *_wrap_python_const_SQL_FN_TD_DAYOFWEEK; static PyObject *_wrap_python_const_SQL_FN_TD_DAYOFYEAR; static PyObject *_wrap_python_const_SQL_FN_TD_MONTH; static PyObject *_wrap_python_const_SQL_FN_TD_QUARTER; static PyObject *_wrap_python_const_SQL_FN_TD_WEEK; static PyObject *_wrap_python_const_SQL_FN_TD_YEAR; static PyObject *_wrap_python_const_SQL_FN_TD_CURTIME; static PyObject *_wrap_python_const_SQL_FN_TD_HOUR; static PyObject *_wrap_python_const_SQL_FN_TD_MINUTE; static PyObject *_wrap_python_const_SQL_FN_TD_SECOND; static PyObject *_wrap_python_const_SQL_FN_TD_TIMESTAMPADD; static PyObject *_wrap_python_const_SQL_FN_TD_TIMESTAMPDIFF; static PyObject *_wrap_python_const_SQL_FN_TD_DAYNAME; static PyObject *_wrap_python_const_SQL_FN_TD_MONTHNAME; static PyObject *_wrap_python_const_SQL_FN_SYS_USERNAME; static PyObject *_wrap_python_const_SQL_FN_SYS_DBNAME; static PyObject *_wrap_python_const_SQL_FN_SYS_IFNULL; static PyObject *_wrap_python_const_SQL_FN_TSI_FRAC_SECOND; static PyObject *_wrap_python_const_SQL_FN_TSI_SECOND; static PyObject *_wrap_python_const_SQL_FN_TSI_MINUTE; static PyObject *_wrap_python_const_SQL_FN_TSI_HOUR; static PyObject *_wrap_python_const_SQL_FN_TSI_DAY; static PyObject *_wrap_python_const_SQL_FN_TSI_WEEK; static PyObject *_wrap_python_const_SQL_FN_TSI_MONTH; static PyObject *_wrap_python_const_SQL_FN_TSI_QUARTER; static PyObject *_wrap_python_const_SQL_FN_TSI_YEAR; static PyObject *_wrap_python_const_SQL_OAC_NONE; static PyObject *_wrap_python_const_SQL_OAC_LEVEL1; static PyObject *_wrap_python_const_SQL_OAC_LEVEL2; static PyObject *_wrap_python_const_SQL_OSCC_NOT_COMPLIANT; static PyObject *_wrap_python_const_SQL_OSCC_COMPLIANT; static PyObject *_wrap_python_const_SQL_OSC_MINIMUM; static PyObject *_wrap_python_const_SQL_OSC_CORE; static PyObject *_wrap_python_const_SQL_OSC_EXTENDED; static PyObject *_wrap_python_const_SQL_CB_NULL; static PyObject *_wrap_python_const_SQL_CB_NON_NULL; static PyObject *_wrap_python_const_SQL_CB_DELETE; static PyObject *_wrap_python_const_SQL_CB_CLOSE; static PyObject *_wrap_python_const_SQL_CB_PRESERVE; static PyObject *_wrap_python_const_SQL_IC_UPPER; static PyObject *_wrap_python_const_SQL_IC_LOWER; static PyObject *_wrap_python_const_SQL_IC_SENSITIVE; static PyObject *_wrap_python_const_SQL_IC_MIXED; static PyObject *_wrap_python_const_SQL_TC_NONE; static PyObject *_wrap_python_const_SQL_TC_DML; static PyObject *_wrap_python_const_SQL_TC_ALL; static PyObject *_wrap_python_const_SQL_TC_DDL_COMMIT; static PyObject *_wrap_python_const_SQL_TC_DDL_IGNORE; static PyObject *_wrap_python_const_SQL_SO_FORWARD_ONLY; static PyObject *_wrap_python_const_SQL_SO_KEYSET_DRIVEN; static PyObject *_wrap_python_const_SQL_SO_DYNAMIC; static PyObject *_wrap_python_const_SQL_SO_MIXED; static PyObject *_wrap_python_const_SQL_SO_STATIC; static PyObject *_wrap_python_const_SQL_SCCO_READ_ONLY; static PyObject *_wrap_python_const_SQL_SCCO_LOCK; static PyObject *_wrap_python_const_SQL_SCCO_OPT_ROWVER; static PyObject *_wrap_python_const_SQL_SCCO_OPT_VALUES; static PyObject *_wrap_python_const_SQL_FD_FETCH_NEXT; static PyObject *_wrap_python_const_SQL_FD_FETCH_FIRST; static PyObject *_wrap_python_const_SQL_FD_FETCH_LAST; static PyObject *_wrap_python_const_SQL_FD_FETCH_PRIOR; static PyObject *_wrap_python_const_SQL_FD_FETCH_ABSOLUTE; static PyObject *_wrap_python_const_SQL_FD_FETCH_RELATIVE; static PyObject *_wrap_python_const_SQL_FD_FETCH_RESUME; static PyObject *_wrap_python_const_SQL_FD_FETCH_BOOKMARK; static PyObject *_wrap_python_const_SQL_TXN_READ_UNCOMMITTED; static PyObject *_wrap_python_const_SQL_TXN_READ_COMMITTED; static PyObject *_wrap_python_const_SQL_TXN_REPEATABLE_READ; static PyObject *_wrap_python_const_SQL_TXN_SERIALIZABLE; static PyObject *_wrap_python_const_SQL_TXN_VERSIONING; static PyObject *_wrap_python_const_SQL_CN_NONE; static PyObject *_wrap_python_const_SQL_CN_DIFFERENT; static PyObject *_wrap_python_const_SQL_CN_ANY; static PyObject *_wrap_python_const_SQL_NNC_NULL; static PyObject *_wrap_python_const_SQL_NNC_NON_NULL; static PyObject *_wrap_python_const_SQL_NC_HIGH; static PyObject *_wrap_python_const_SQL_NC_LOW; static PyObject *_wrap_python_const_SQL_NC_START; static PyObject *_wrap_python_const_SQL_NC_END; static PyObject *_wrap_python_const_SQL_FILE_NOT_SUPPORTED; static PyObject *_wrap_python_const_SQL_FILE_TABLE; static PyObject *_wrap_python_const_SQL_FILE_QUALIFIER; static PyObject *_wrap_python_const_SQL_GD_ANY_COLUMN; static PyObject *_wrap_python_const_SQL_GD_ANY_ORDER; static PyObject *_wrap_python_const_SQL_GD_BLOCK; static PyObject *_wrap_python_const_SQL_GD_BOUND; static PyObject *_wrap_python_const_SQL_AT_ADD_COLUMN; static PyObject *_wrap_python_const_SQL_AT_DROP_COLUMN; static PyObject *_wrap_python_const_SQL_PS_POSITIONED_DELETE; static PyObject *_wrap_python_const_SQL_PS_POSITIONED_UPDATE; static PyObject *_wrap_python_const_SQL_PS_SELECT_FOR_UPDATE; static PyObject *_wrap_python_const_SQL_GB_NOT_SUPPORTED; static PyObject *_wrap_python_const_SQL_GB_GROUP_BY_EQUALS_SELECT; static PyObject *_wrap_python_const_SQL_GB_GROUP_BY_CONTAINS_SELECT; static PyObject *_wrap_python_const_SQL_GB_NO_RELATION; static PyObject *_wrap_python_const_SQL_OU_DML_STATEMENTS; static PyObject *_wrap_python_const_SQL_OU_PROCEDURE_INVOCATION; static PyObject *_wrap_python_const_SQL_OU_TABLE_DEFINITION; static PyObject *_wrap_python_const_SQL_OU_INDEX_DEFINITION; static PyObject *_wrap_python_const_SQL_OU_PRIVILEGE_DEFINITION; static PyObject *_wrap_python_const_SQL_QU_DML_STATEMENTS; static PyObject *_wrap_python_const_SQL_QU_PROCEDURE_INVOCATION; static PyObject *_wrap_python_const_SQL_QU_TABLE_DEFINITION; static PyObject *_wrap_python_const_SQL_QU_INDEX_DEFINITION; static PyObject *_wrap_python_const_SQL_QU_PRIVILEGE_DEFINITION; static PyObject *_wrap_python_const_SQL_SQ_COMPARISON; static PyObject *_wrap_python_const_SQL_SQ_EXISTS; static PyObject *_wrap_python_const_SQL_SQ_IN; static PyObject *_wrap_python_const_SQL_SQ_QUANTIFIED; static PyObject *_wrap_python_const_SQL_SQ_CORRELATED_SUBQUERIES; static PyObject *_wrap_python_const_SQL_U_UNION; static PyObject *_wrap_python_const_SQL_U_UNION_ALL; static PyObject *_wrap_python_const_SQL_BP_CLOSE; static PyObject *_wrap_python_const_SQL_BP_DELETE; static PyObject *_wrap_python_const_SQL_BP_DROP; static PyObject *_wrap_python_const_SQL_BP_TRANSACTION; static PyObject *_wrap_python_const_SQL_BP_UPDATE; static PyObject *_wrap_python_const_SQL_BP_OTHER_HSTMT; static PyObject *_wrap_python_const_SQL_BP_SCROLL; static PyObject *_wrap_python_const_SQL_SS_ADDITIONS; static PyObject *_wrap_python_const_SQL_SS_DELETIONS; static PyObject *_wrap_python_const_SQL_SS_UPDATES; static PyObject *_wrap_python_const_SQL_LCK_NO_CHANGE; static PyObject *_wrap_python_const_SQL_LCK_EXCLUSIVE; static PyObject *_wrap_python_const_SQL_LCK_UNLOCK; static PyObject *_wrap_python_const_SQL_POS_POSITION; static PyObject *_wrap_python_const_SQL_POS_REFRESH; static PyObject *_wrap_python_const_SQL_POS_UPDATE; static PyObject *_wrap_python_const_SQL_POS_DELETE; static PyObject *_wrap_python_const_SQL_POS_ADD; static PyObject *_wrap_python_const_SQL_QL_START; static PyObject *_wrap_python_const_SQL_QL_END; static PyObject *_wrap_python_const_SQL_OJ_LEFT; static PyObject *_wrap_python_const_SQL_OJ_RIGHT; static PyObject *_wrap_python_const_SQL_OJ_FULL; static PyObject *_wrap_python_const_SQL_OJ_NESTED; static PyObject *_wrap_python_const_SQL_OJ_NOT_ORDERED; static PyObject *_wrap_python_const_SQL_OJ_INNER; static PyObject *_wrap_python_const_SQL_OJ_ALL_COMPARISON_OPS; static PyObject *_wrap_python_const_SQL_QUERY_TIMEOUT; static PyObject *_wrap_python_const_SQL_MAX_ROWS; static PyObject *_wrap_python_const_SQL_NOSCAN; static PyObject *_wrap_python_const_SQL_MAX_LENGTH; static PyObject *_wrap_python_const_SQL_ASYNC_ENABLE; static PyObject *_wrap_python_const_SQL_BIND_TYPE; static PyObject *_wrap_python_const_SQL_CURSOR_TYPE; static PyObject *_wrap_python_const_SQL_CONCURRENCY; static PyObject *_wrap_python_const_SQL_KEYSET_SIZE; static PyObject *_wrap_python_const_SQL_ROWSET_SIZE; static PyObject *_wrap_python_const_SQL_SIMULATE_CURSOR; static PyObject *_wrap_python_const_SQL_RETRIEVE_DATA; static PyObject *_wrap_python_const_SQL_USE_BOOKMARKS; static PyObject *_wrap_python_const_SQL_GET_BOOKMARK; static PyObject *_wrap_python_const_SQL_ROW_NUMBER; static PyObject *_wrap_python_const_SQL_STMT_OPT_MAX; static PyObject *_wrap_python_const_SQL_STMT_OPT_MIN; static PyObject *_wrap_python_const_SQL_QUERY_TIMEOUT_DEFAULT; static PyObject *_wrap_python_const_SQL_MAX_ROWS_DEFAULT; static PyObject *_wrap_python_const_SQL_NOSCAN_OFF; static PyObject *_wrap_python_const_SQL_NOSCAN_ON; static PyObject *_wrap_python_const_SQL_NOSCAN_DEFAULT; static PyObject *_wrap_python_const_SQL_MAX_LENGTH_DEFAULT; static PyObject *_wrap_python_const_SQL_ASYNC_ENABLE_OFF; static PyObject *_wrap_python_const_SQL_ASYNC_ENABLE_ON; static PyObject *_wrap_python_const_SQL_ASYNC_ENABLE_DEFAULT; static PyObject *_wrap_python_const_SQL_BIND_BY_COLUMN; static PyObject *_wrap_python_const_SQL_BIND_TYPE_DEFAULT; static PyObject *_wrap_python_const_SQL_CONCUR_READ_ONLY; static PyObject *_wrap_python_const_SQL_CONCUR_LOCK; static PyObject *_wrap_python_const_SQL_CONCUR_ROWVER; static PyObject *_wrap_python_const_SQL_CONCUR_VALUES; static PyObject *_wrap_python_const_SQL_CONCUR_DEFAULT; static PyObject *_wrap_python_const_SQL_CURSOR_FORWARD_ONLY; static PyObject *_wrap_python_const_SQL_CURSOR_KEYSET_DRIVEN; static PyObject *_wrap_python_const_SQL_CURSOR_DYNAMIC; static PyObject *_wrap_python_const_SQL_CURSOR_STATIC; static PyObject *_wrap_python_const_SQL_CURSOR_TYPE_DEFAULT; static PyObject *_wrap_python_const_SQL_ROWSET_SIZE_DEFAULT; static PyObject *_wrap_python_const_SQL_KEYSET_SIZE_DEFAULT; static PyObject *_wrap_python_const_SQL_SC_NON_UNIQUE; static PyObject *_wrap_python_const_SQL_SC_TRY_UNIQUE; static PyObject *_wrap_python_const_SQL_SC_UNIQUE; static PyObject *_wrap_python_const_SQL_RD_OFF; static PyObject *_wrap_python_const_SQL_RD_ON; static PyObject *_wrap_python_const_SQL_RD_DEFAULT; static PyObject *_wrap_python_const_SQL_UB_OFF; static PyObject *_wrap_python_const_SQL_UB_ON; static PyObject *_wrap_python_const_SQL_UB_DEFAULT; static PyObject *_wrap_python_const_SQL_ACCESS_MODE; static PyObject *_wrap_python_const_SQL_AUTOCOMMIT; static PyObject *_wrap_python_const_SQL_LOGIN_TIMEOUT; static PyObject *_wrap_python_const_SQL_OPT_TRACE; static PyObject *_wrap_python_const_SQL_OPT_TRACEFILE; static PyObject *_wrap_python_const_SQL_TRANSLATE_DLL; static PyObject *_wrap_python_const_SQL_TRANSLATE_OPTION; static PyObject *_wrap_python_const_SQL_TXN_ISOLATION; static PyObject *_wrap_python_const_SQL_CURRENT_QUALIFIER; static PyObject *_wrap_python_const_SQL_ODBC_CURSORS; static PyObject *_wrap_python_const_SQL_QUIET_MODE; static PyObject *_wrap_python_const_SQL_PACKET_SIZE; static PyObject *_wrap_python_const_SQL_CONN_OPT_MAX; static PyObject *_wrap_python_const_SQL_CONNECT_OPT_DRVR_START; static PyObject *_wrap_python_const_SQL_CONN_OPT_MIN; static PyObject *_wrap_python_const_SQL_MODE_READ_WRITE; static PyObject *_wrap_python_const_SQL_MODE_READ_ONLY; static PyObject *_wrap_python_const_SQL_MODE_DEFAULT; static PyObject *_wrap_python_const_SQL_AUTOCOMMIT_OFF; static PyObject *_wrap_python_const_SQL_AUTOCOMMIT_ON; static PyObject *_wrap_python_const_SQL_AUTOCOMMIT_DEFAULT; static PyObject *_wrap_python_const_SQL_LOGIN_TIMEOUT_DEFAULT; static PyObject *_wrap_python_const_SQL_OPT_TRACE_OFF; static PyObject *_wrap_python_const_SQL_OPT_TRACE_ON; static PyObject *_wrap_python_const_SQL_OPT_TRACE_DEFAULT; static PyObject *_wrap_python_const_SQL_OPT_TRACE_FILE_DEFAULT; static PyObject *_wrap_python_const_SQL_CUR_USE_IF_NEEDED; static PyObject *_wrap_python_const_SQL_CUR_USE_ODBC; static PyObject *_wrap_python_const_SQL_CUR_USE_DRIVER; static PyObject *_wrap_python_const_SQL_CUR_DEFAULT; static PyObject *_wrap_python_const_SQL_BEST_ROWID; static PyObject *_wrap_python_const_SQL_ROWVER; static PyObject *_wrap_python_const_SQL_SCOPE_CURROW; static PyObject *_wrap_python_const_SQL_SCOPE_TRANSACTION; static PyObject *_wrap_python_const_SQL_SCOPE_SESSION; static PyObject *_wrap_python_const_SQL_INDEX_UNIQUE; static PyObject *_wrap_python_const_SQL_INDEX_ALL; static PyObject *_wrap_python_const_SQL_QUICK; static PyObject *_wrap_python_const_SQL_ENSURE; static PyObject *_wrap_python_const_SQL_TABLE_STAT; static PyObject *_wrap_python_const_SQL_INDEX_CLUSTERED; static PyObject *_wrap_python_const_SQL_INDEX_HASHED; static PyObject *_wrap_python_const_SQL_INDEX_OTHER; static PyObject *_wrap_python_const_SQL_PC_UNKNOWN; static PyObject *_wrap_python_const_SQL_PC_NOT_PSEUDO; static PyObject *_wrap_python_const_SQL_PC_PSEUDO; static PyObject *_wrap_python_const_SQL_FETCH_NEXT; static PyObject *_wrap_python_const_SQL_FETCH_FIRST; static PyObject * SQLException(SQLHDBC hdbc, SQLHSTMT hstmt) { char state[6]; SDWORD native; char mess[SQL_MAX_MESSAGE_LENGTH]; SWORD lmess; SWORD status; PyObject *v; status=SQLError(SQLEnv, hdbc, hstmt,state,&native, mess,SQL_MAX_MESSAGE_LENGTH-1,&lmess); if(status != SQL_SUCCESS || !(v=Py_BuildValue("s#is#",state,5,(long)native,mess,lmess)) ) { v=Py_None; Py_INCREF(v); } PyErr_SetObject(PyExc_SQLError,v); Py_DECREF(v); return NULL; } static PyObject * SQLGetFloat(SQLHSTMT hstmt, SQLUSMALLINT icol) { double v; SWORD status; SQLINTEGER sz; status=SQLGetData(hstmt, icol, SQL_C_DOUBLE, &v, sizeof(v), &sz); if(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) return PyFloat_FromDouble(v); return SQLException(SQL_NULL_HDBC, hstmt); } static PyObject * SQLGetInt(SQLHSTMT hstmt, SQLUSMALLINT icol) { long v; SWORD status; SQLINTEGER sz; status=SQLGetData(hstmt, icol, SQL_C_SLONG, &v, sizeof(v), &sz); if(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) return PyInt_FromLong(v); return SQLException(SQL_NULL_HDBC, hstmt); } static PyObject * SQLGetString(SQLHSTMT hstmt, SQLUSMALLINT icol, int binary) { char v[128]; SWORD status, fCType; SQLINTEGER sz; PyObject *list=0, *s=0; fCType=binary ? SQL_C_BINARY : SQL_C_CHAR; status=SQLGetData(hstmt, icol, fCType, &v, 128, &sz); if(sz==SQL_NULL_DATA) return PyString_FromString(""); if(binary) { if(sz==SQL_NO_TOTAL || sz > 128) sz=128; } else if(sz==SQL_NO_TOTAL || sz > 127) sz=127; if(status==SQL_SUCCESS) return PyString_FromStringAndSize(v,sz); UNLESS(list=PyList_New(0)) return NULL; while(status==SQL_SUCCESS_WITH_INFO) { char state[6]; char mess[1]; SDWORD native; SWORD esz, estatus; estatus=SQLError(SQLEnv, SQL_NULL_HDBC, hstmt, state, &native, mess,1,&esz); if(estatus != SQL_SUCCESS && estatus != SQL_SUCCESS_WITH_INFO) break; if(strcmp(state,"01004") != 0) break; UNLESS(s=PyString_FromStringAndSize(v,sz)) goto err; if(PyList_Append(list,s) < 0) goto err; Py_DECREF(s); status=SQLGetData(hstmt, icol, fCType, &v, 128, &sz); if(binary) { if(sz==SQL_NO_TOTAL || sz > 128) sz=128; } else if(sz==SQL_NO_TOTAL || sz > 127) sz=127; } if(status==SQL_SUCCESS) { static PyObject *join=0, *empty=0; if(! empty) { UNLESS(join=PyImport_ImportModule("string")) goto err; UNLESS_ASSIGN(join, PyObject_GetAttrString(join,"join")) goto err; UNLESS(empty=PyString_FromString("")) goto err; } UNLESS(s=PyString_FromStringAndSize(v,sz)) goto err; if(PyList_Append(list,s) < 0) goto err; ASSIGN(s,PyObject_CallFunction(join,"OO",list,empty)); Py_DECREF(list); return s; } SQLException(SQL_NULL_HDBC, hstmt); err: Py_XDECREF(list); Py_XDECREF(s); return NULL; } static PyObject * SQLConnection( SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3) { Connection *self; SWORD status; UNLESS(self = PyObject_NEW(Connection, &ConnectionType)) return NULL; status=SQLAllocConnect(SQLEnv, &(self->connection)); UNLESS(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) goto err; status=SQLConnect(self->connection,IN1,DIM1,IN2,DIM2,IN3,DIM3); UNLESS(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) goto err; return (PyObject*)self; err: self->connection=SQL_NULL_HDBC; Py_DECREF(self); return SQLException(SQL_NULL_HDBC, SQL_NULL_HSTMT); } SWORD SQLBindInputParameter( SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fSqlType, PyObject *v ) { void *p; SDWORD *lp; if(PyString_Check(v)) { p=PyString_AsString(v); lp=&(((PyStringObject*)v)->ob_size); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_BINARY, fSqlType,*lp,0, p,*lp,lp); } else if(PyInt_Check(v)) { p=&(((PyIntObject*)v)->ob_ival); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_SLONG, fSqlType,0,0, p,sizeof(long),NULL); } else if(PyFloat_Check(v)) { p=&(((PyFloatObject*)v)->ob_fval); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_DOUBLE, fSqlType,0,0, p,sizeof(double),NULL); } return 0; } static PyObject *_wrap_python_const_error; static PyObject *_wrap_ptrcast(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; PyObject * _arg0; char * _arg1; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Os:ptrcast",&_obj0,&_arg1)) return NULL; { _arg0 = _obj0; } _result = (PyObject *)ptrcast(_arg0,_arg1); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptrvalue(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; PyObject * _arg0; int _arg1 = 0; char * _arg2 = 0; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O|is:ptrvalue",&_obj0,&_arg1,&_arg2)) return NULL; { _arg0 = _obj0; } _result = (PyObject *)ptrvalue(_arg0,_arg1,_arg2); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptrset(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; PyObject * _arg0; PyObject * _arg1; int _arg2 = 0; char * _arg3 = 0; PyObject * _obj0 = 0; PyObject * _obj1 = 0; self = self; if(!PyArg_ParseTuple(args,"OO|is:ptrset",&_obj0,&_obj1,&_arg2,&_arg3)) return NULL; { _arg0 = _obj0; } { _arg1 = _obj1; } _result = (PyObject *)ptrset(_arg0,_arg1,_arg2,_arg3); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptrcreate(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; char * _arg0; PyObject * _arg1 = 0; int _arg2 = 1; PyObject * _obj1 = 0; self = self; if(!PyArg_ParseTuple(args,"s|Oi:ptrcreate",&_arg0,&_obj1,&_arg2)) return NULL; if (_obj1) { _arg1 = _obj1; } _result = (PyObject *)ptrcreate(_arg0,_arg1,_arg2); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptrfree(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; PyObject * _arg0; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O:ptrfree",&_obj0)) return NULL; { _arg0 = _obj0; } _result = (PyObject *)ptrfree(_arg0); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptradd(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; PyObject * _arg0; int _arg1; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Oi:ptradd",&_obj0,&_arg1)) return NULL; { _arg0 = _obj0; } _result = (PyObject *)ptradd(_arg0,_arg1); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_ptrmap(PyObject *self, PyObject *args) { PyObject * _resultobj; char * _arg0; char * _arg1; self = self; if(!PyArg_ParseTuple(args,"ss:ptrmap",&_arg0,&_arg1)) return NULL; ptrmap(_arg0,_arg1); Py_INCREF(Py_None); _resultobj = Py_None; return _resultobj; } static PyObject *_wrap_SQLDataSources(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHENV _arg0; SQLUSMALLINT _arg1; SQLCHAR * _arg2; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg3; SQLSMALLINT * _arg4; SQLSMALLINT odim1; SQLCHAR * _arg5; SQLSMALLINT dim2; SQLCHAR buf2[256]; SQLSMALLINT _arg6; SQLSMALLINT * _arg7; SQLSMALLINT odim2; self = self; { _arg0=SQLEnv; } { dim1=255; _arg2=buf1; } {} { _arg4=&odim1; odim1=0; } { dim2=255; _arg5=buf2; } {} { _arg7=&odim2; odim2=0; } if(!PyArg_ParseTuple(args,"h:SQLDataSources",&_arg1)) return NULL; { _arg3=dim1;} { _arg6=dim2;} _result = (SWORD )SQLDataSources(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf2, odim2)); } return _resultobj; } static PyObject *_wrap_SQLError(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHENV _arg0; SQLHDBC _arg1; SQLHSTMT _arg2; SQLCHAR * _arg3; char buf[6]; SQLINTEGER * _arg4; long temp; SQLCHAR * _arg5; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg6; SQLSMALLINT * _arg7; SQLSMALLINT odim1; SQLHDBC handle; PyObject * _obj1 = 0; SQLHSTMT handle0; PyObject * _obj2 = 0; self = self; { _arg0=SQLEnv; } {_arg3=buf;} { _arg4 = &temp; } { dim1=255; _arg5=buf1; } {} { _arg7=&odim1; odim1=0; } if(!PyArg_ParseTuple(args,"OO:SQLError",&_obj1,&_obj2)) return NULL; { if(_obj1==Py_None) _arg1=NULL; else if(_obj1->ob_type == &ConnectionType) { _arg1 = ((Connection*)_obj1)->connection; } else { UNLESS(PyCObject_Check(_obj1)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg1=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj1); } handle=_arg1; } if (_obj2) { if(_obj2==Py_None) _arg2=NULL; else if(_obj2->ob_type == &StatementType) { _arg2 = ((Statement*)_obj2)->stmt; } else { UNLESS(PyCObject_Check(_obj2)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg2=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj2); } handle0=_arg2; } { _arg6=dim1;} _result = (SWORD )SQLError(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize(buf, 5)); } { PyObject *o; o = PyInt_FromLong((long) (*_arg4)); _resultobj = t_output_helper(_resultobj, o); } { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } return _resultobj; } static PyObject *_wrap_SQLTransact(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHENV _arg0; SQLHDBC _arg1; SQLUSMALLINT _arg2; SQLHDBC handle; PyObject * _obj1 = 0; self = self; { _arg0=SQLEnv; } if(!PyArg_ParseTuple(args,"Oh:SQLTransact",&_obj1,&_arg2)) return NULL; { if(_obj1==Py_None) _arg1=NULL; else if(_obj1->ob_type == &ConnectionType) { _arg1 = ((Connection*)_obj1)->connection; } else { UNLESS(PyCObject_Check(_obj1)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg1=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj1); } handle=_arg1; } _result = (SWORD )SQLTransact(_arg0,_arg1,_arg2); _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLException(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; SQLHDBC _arg0; SQLHSTMT _arg1; SQLHDBC handle; PyObject * _obj0 = 0; SQLHSTMT handle0; PyObject * _obj1 = 0; self = self; if(!PyArg_ParseTuple(args,"OO:SQLException",&_obj0,&_obj1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) _arg1=NULL; else if(_obj1->ob_type == &StatementType) { _arg1 = ((Statement*)_obj1)->stmt; } else { UNLESS(PyCObject_Check(_obj1)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg1=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj1); } handle0=_arg1; } _result = (PyObject *)SQLException(_arg0,_arg1); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_SQLGetFloat(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Oh:SQLGetFloat",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } _result = (PyObject *)SQLGetFloat(_arg0,_arg1); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_SQLGetInt(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Oh:SQLGetInt",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } _result = (PyObject *)SQLGetInt(_arg0,_arg1); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_SQLGetString(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; int _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohi:SQLGetString",&_obj0,&_arg1,&_arg2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } _result = (PyObject *)SQLGetString(_arg0,_arg1,_arg2); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_SQLConnection(PyObject *self, PyObject *args) { PyObject * _resultobj; PyObject * _result; SQLCHAR * _arg0; SQLSMALLINT _arg1; SQLCHAR * _arg2; SQLSMALLINT _arg3; SQLCHAR * _arg4; SQLSMALLINT _arg5; int dim1; PyObject * _obj0 = 0; int dim2; PyObject * _obj2 = 0; int dim3; PyObject * _obj4 = 0; self = self; {} {} {} if(!PyArg_ParseTuple(args,"OOO:SQLConnection",&_obj0,&_obj2,&_obj4)) return NULL; { if(_obj0==Py_None) { _arg0=NULL; dim1=0; } else UNLESS(_arg0=PySequence_CharArray(_obj0, &dim1)) return NULL; } { if(_obj2==Py_None) { _arg2=NULL; dim2=0; } else UNLESS(_arg2=PySequence_CharArray(_obj2, &dim2)) return NULL; } if (_obj4) { if(_obj4==Py_None) { _arg4=NULL; dim3=0; } else UNLESS(_arg4=PySequence_CharArray(_obj4, &dim3)) return NULL; } { _arg1=dim1;} { _arg3=dim2;} { _arg5=dim3;} _result = (PyObject *)SQLConnection(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); { _resultobj = _result; } return _resultobj; } static PyObject *_wrap_SQLFetch(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O:SQLFetch",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } _result = (SWORD )SQLFetch(_arg0); _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLAllocConnect(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHENV _arg0; SQLHDBC * _arg1; self = self; { _arg0=SQLEnv; } { _arg1 = (SQLHDBC *)malloc(sizeof(SQLHDBC)); } if(!PyArg_ParseTuple(args,":SQLAllocConnect")) return NULL; { SWORD status; status= _result = (SWORD )SQLAllocConnect(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj,PyCObject_FromVoidPtr((void*)_arg1, ___FreeConnect)); } return _resultobj; } static PyObject *_wrap_SQLConnect(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLCHAR * _arg1; SQLSMALLINT _arg2; SQLCHAR * _arg3; SQLSMALLINT _arg4; SQLCHAR * _arg5; SQLSMALLINT _arg6; SQLHDBC handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; int dim2; PyObject * _obj3 = 0; int dim3; PyObject * _obj5 = 0; self = self; {} {} {} if(!PyArg_ParseTuple(args,"OOOO:SQLConnect",&_obj0,&_obj1,&_obj3,&_obj5)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { if(_obj3==Py_None) { _arg3=NULL; dim2=0; } else UNLESS(_arg3=PySequence_CharArray(_obj3, &dim2)) return NULL; } if (_obj5) { if(_obj5==Py_None) { _arg5=NULL; dim3=0; } else UNLESS(_arg5=PySequence_CharArray(_obj5, &dim3)) return NULL; } { _arg2=dim1;} { _arg4=dim2;} { _arg6=dim3;} { SWORD status; status= _result = (SWORD )SQLConnect(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLDisconnect(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLHDBC handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O:SQLDisconnect",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLDisconnect(_arg0); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLAllocStmt(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLHSTMT * _arg1; SQLHDBC handle; PyObject * _obj0 = 0; self = self; { _arg1 = (SQLHSTMT *)malloc(sizeof(SQLHSTMT)); } if(!PyArg_ParseTuple(args,"O:SQLAllocStmt",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLAllocStmt(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyCObject_FromVoidPtr((void*)_arg1, ___FreeStmt)); } return _resultobj; } static PyObject *_wrap_SQLGetConnectOption(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLUSMALLINT _arg1; SQLPOINTER _arg2; SQLHDBC handle; PyObject * _obj0 = 0; char * _argc2 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohs:SQLGetConnectOption",&_obj0,&_arg1,&_argc2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } if (_argc2) { if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of SQLGetConnectOption. Expected _SQLPOINTER."); return NULL; } } { SWORD status; status= _result = (SWORD )SQLGetConnectOption(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLGetFunctions(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLUSMALLINT _arg1; SQLUSMALLINT * _arg2; unsigned short temp; SQLHDBC handle; PyObject * _obj0 = 0; self = self; { _arg2 = &temp; } if(!PyArg_ParseTuple(args,"Oh:SQLGetFunctions",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLGetFunctions(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); { PyObject *o; o = PyInt_FromLong((long) (*_arg2)); _resultobj = t_output_helper(_resultobj, o); } return _resultobj; } static PyObject *_wrap_SQLGetInfo(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLUSMALLINT _arg1; SQLPOINTER _arg2; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg3; SQLSMALLINT * _arg4; SQLSMALLINT odim1; SQLHDBC handle; PyObject * _obj0 = 0; self = self; { dim1=255; _arg2=buf1; } {} { _arg4=&odim1; odim1=0; } if(!PyArg_ParseTuple(args,"Oh:SQLGetInfo",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { _arg3=dim1;} { SWORD status; status= _result = (SWORD )SQLGetInfo(_arg0,_arg1,_arg2,_arg3,_arg4); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } return _resultobj; } static PyObject *_wrap_SQLSetConnectOption(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHDBC _arg0; SQLUSMALLINT _arg1; SQLUINTEGER _arg2; SQLHDBC handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohl:SQLSetConnectOption",&_obj0,&_arg1,&_arg2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &ConnectionType) { _arg0 = ((Connection*)_obj0)->connection; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHDBC *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLSetConnectOption(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLFreeStmt(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; UWORD _arg1; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Oh:SQLFreeStmt",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLFreeStmt(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLBindCol(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLSMALLINT _arg2; SQLPOINTER _arg3; SQLINTEGER _arg4; SQLINTEGER * _arg5; SQLHSTMT handle; PyObject * _obj0 = 0; char * _argc3 = 0; char * _argc5 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohhsls:SQLBindCol",&_obj0,&_arg1,&_arg2,&_argc3,&_arg4,&_argc5)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } if (_argc3) { if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of SQLBindCol. Expected _SQLPOINTER."); return NULL; } } if (_argc5) { if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_SQLINTEGER_p")) { PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of SQLBindCol. Expected _SQLINTEGER_p."); return NULL; } } { SWORD status; status= _result = (SWORD )SQLBindCol(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLBindInputParameter(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLSMALLINT _arg2; PyObject * _arg3; SQLHSTMT handle; PyObject * _obj0 = 0; PyObject * _obj3 = 0; self = self; if(!PyArg_ParseTuple(args,"OhhO:SQLBindInputParameter",&_obj0,&_arg1,&_arg2,&_obj3)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { _arg3 = _obj3; } { SWORD status; status= _result = (SWORD )SQLBindInputParameter(_arg0,_arg1,_arg2,_arg3); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLCancel(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O:SQLCancel",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLCancel(_arg0); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLColAttributes(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLUSMALLINT _arg2; SQLPOINTER _arg3; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg4; SQLSMALLINT * _arg5; SQLSMALLINT odim1; SQLINTEGER * _arg6; long temp; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; { dim1=255; _arg3=buf1; } {} { _arg5=&odim1; odim1=0; } { _arg6 = &temp; } if(!PyArg_ParseTuple(args,"Ohh:SQLColAttributes",&_obj0,&_arg1,&_arg2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { _arg4=dim1;} { SWORD status; status= _result = (SWORD )SQLColAttributes(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } { PyObject *o; o = PyInt_FromLong((long) (*_arg6)); _resultobj = t_output_helper(_resultobj, o); } return _resultobj; } static PyObject *_wrap_SQLDescribeCol(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLCHAR * _arg2; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg3; SQLSMALLINT * _arg4; SQLSMALLINT odim1; SQLSMALLINT * _arg5; short temp; SQLUINTEGER * _arg6; unsigned long temp0; SQLSMALLINT * _arg7; short temp1; SQLSMALLINT * _arg8; short temp2; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; { dim1=255; _arg2=buf1; } {} { _arg4=&odim1; odim1=0; } { _arg5 = &temp; } { _arg6 = &temp0; } { _arg7 = &temp1; } { _arg8 = &temp2; } if(!PyArg_ParseTuple(args,"Oh:SQLDescribeCol",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { _arg3=dim1;} { SWORD status; status= _result = (SWORD )SQLDescribeCol(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } { PyObject *o; o = PyInt_FromLong((long) (*_arg5)); _resultobj = t_output_helper(_resultobj, o); } { PyObject *o; o = PyInt_FromLong((long) (*_arg6)); _resultobj = t_output_helper(_resultobj, o); } { PyObject *o; o = PyInt_FromLong((long) (*_arg7)); _resultobj = t_output_helper(_resultobj, o); } { PyObject *o; o = PyInt_FromLong((long) (*_arg8)); _resultobj = t_output_helper(_resultobj, o); } return _resultobj; } static PyObject *_wrap_SQLExecDirect(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLINTEGER _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; self = self; {} if(!PyArg_ParseTuple(args,"OO:SQLExecDirect",&_obj0,&_obj1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { _arg2=dim1;} { SWORD status; status= _result = (SWORD )SQLExecDirect(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLExecute(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"O:SQLExecute",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLExecute(_arg0); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLGetCursorName(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; int dim1; SQLCHAR buf1[256]; SQLSMALLINT _arg2; SQLSMALLINT * _arg3; SQLSMALLINT odim1; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; { dim1=255; _arg1=buf1; } {} { _arg3=&odim1; odim1=0; } if(!PyArg_ParseTuple(args,"O:SQLGetCursorName",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { _arg2=dim1;} { SWORD status; status= _result = (SWORD )SQLGetCursorName(_arg0,_arg1,_arg2,_arg3); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); { _resultobj = t_output_helper(_resultobj, PyString_FromStringAndSize( buf1, odim1)); } return _resultobj; } static PyObject *_wrap_SQLNumResultCols(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLSMALLINT * _arg1; short temp; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; { _arg1 = &temp; } if(!PyArg_ParseTuple(args,"O:SQLNumResultCols",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLNumResultCols(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); { PyObject *o; o = PyInt_FromLong((long) (*_arg1)); _resultobj = t_output_helper(_resultobj, o); } return _resultobj; } static PyObject *_wrap_SQLPrepare(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLINTEGER _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; self = self; {} if(!PyArg_ParseTuple(args,"OO:SQLPrepare",&_obj0,&_obj1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { _arg2=dim1;} { SWORD status; status= _result = (SWORD )SQLPrepare(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLRowCount(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLINTEGER * _arg1; long temp; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; { _arg1 = &temp; } if(!PyArg_ParseTuple(args,"O:SQLRowCount",&_obj0)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLRowCount(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); { PyObject *o; o = PyInt_FromLong((long) (*_arg1)); _resultobj = t_output_helper(_resultobj, o); } return _resultobj; } static PyObject *_wrap_SQLSetCursorName(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLSMALLINT _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; self = self; {} if(!PyArg_ParseTuple(args,"OO:SQLSetCursorName",&_obj0,&_obj1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { _arg2=dim1;} { SWORD status; status= _result = (SWORD )SQLSetCursorName(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLColumns(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLSMALLINT _arg2; SQLCHAR * _arg3; SQLSMALLINT _arg4; SQLCHAR * _arg5; SQLSMALLINT _arg6; SQLCHAR * _arg7; SQLSMALLINT _arg8; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; int dim2; PyObject * _obj3 = 0; int dim3; PyObject * _obj5 = 0; int dim4; PyObject * _obj7 = 0; self = self; {} {} {} {} if(!PyArg_ParseTuple(args,"OOOOO:SQLColumns",&_obj0,&_obj1,&_obj3,&_obj5,&_obj7)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { if(_obj3==Py_None) { _arg3=NULL; dim2=0; } else UNLESS(_arg3=PySequence_CharArray(_obj3, &dim2)) return NULL; } if (_obj5) { if(_obj5==Py_None) { _arg5=NULL; dim3=0; } else UNLESS(_arg5=PySequence_CharArray(_obj5, &dim3)) return NULL; } if (_obj7) { if(_obj7==Py_None) { _arg7=NULL; dim4=0; } else UNLESS(_arg7=PySequence_CharArray(_obj7, &dim4)) return NULL; } { _arg2=dim1;} { _arg4=dim2;} { _arg6=dim3;} { _arg8=dim4;} { SWORD status; status= _result = (SWORD )SQLColumns(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLGetData(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLSMALLINT _arg2; SQLPOINTER _arg3; SQLINTEGER _arg4; SQLINTEGER * _arg5; SQLHSTMT handle; PyObject * _obj0 = 0; char * _argc3 = 0; char * _argc5 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohhsls:SQLGetData",&_obj0,&_arg1,&_arg2,&_argc3,&_arg4,&_argc5)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } if (_argc3) { if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of SQLGetData. Expected _SQLPOINTER."); return NULL; } } if (_argc5) { if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_SQLINTEGER_p")) { PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of SQLGetData. Expected _SQLINTEGER_p."); return NULL; } } { SWORD status; status= _result = (SWORD )SQLGetData(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLGetStmtOption(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLPOINTER _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; char * _argc2 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohs:SQLGetStmtOption",&_obj0,&_arg1,&_argc2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } if (_argc2) { if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of SQLGetStmtOption. Expected _SQLPOINTER."); return NULL; } } { SWORD status; status= _result = (SWORD )SQLGetStmtOption(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLGetTypeInfo(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLSMALLINT _arg1; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Oh:SQLGetTypeInfo",&_obj0,&_arg1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLGetTypeInfo(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLParamData(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLPOINTER * _arg1; SQLHSTMT handle; PyObject * _obj0 = 0; char * _argc1 = 0; self = self; if(!PyArg_ParseTuple(args,"Os:SQLParamData",&_obj0,&_argc1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } if (_argc1) { if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of SQLParamData. Expected _SQLPOINTER_p."); return NULL; } } { SWORD status; status= _result = (SWORD )SQLParamData(_arg0,_arg1); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLPutData(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLINTEGER _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; self = self; {} if(!PyArg_ParseTuple(args,"OO:SQLPutData",&_obj0,&_obj1)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { _arg2=dim1;} { SWORD status; status= _result = (SWORD )SQLPutData(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLSetStmtOption(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLUINTEGER _arg2; SQLHSTMT handle; PyObject * _obj0 = 0; self = self; if(!PyArg_ParseTuple(args,"Ohl:SQLSetStmtOption",&_obj0,&_arg1,&_arg2)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { SWORD status; status= _result = (SWORD )SQLSetStmtOption(_arg0,_arg1,_arg2); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLSpecialColumns(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLUSMALLINT _arg1; SQLCHAR * _arg2; SQLSMALLINT _arg3; SQLCHAR * _arg4; SQLSMALLINT _arg5; SQLCHAR * _arg6; SQLSMALLINT _arg7; SQLUSMALLINT _arg8; SQLUSMALLINT _arg9; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj2 = 0; int dim2; PyObject * _obj4 = 0; int dim3; PyObject * _obj6 = 0; self = self; {} {} {} if(!PyArg_ParseTuple(args,"OhOOOhh:SQLSpecialColumns",&_obj0,&_arg1,&_obj2,&_obj4,&_obj6,&_arg8,&_arg9)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj2==Py_None) { _arg2=NULL; dim1=0; } else UNLESS(_arg2=PySequence_CharArray(_obj2, &dim1)) return NULL; } { if(_obj4==Py_None) { _arg4=NULL; dim2=0; } else UNLESS(_arg4=PySequence_CharArray(_obj4, &dim2)) return NULL; } { if(_obj6==Py_None) { _arg6=NULL; dim3=0; } else UNLESS(_arg6=PySequence_CharArray(_obj6, &dim3)) return NULL; } { _arg3=dim1;} { _arg5=dim2;} { _arg7=dim3;} { SWORD status; status= _result = (SWORD )SQLSpecialColumns(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLStatistics(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLSMALLINT _arg2; SQLCHAR * _arg3; SQLSMALLINT _arg4; SQLCHAR * _arg5; SQLSMALLINT _arg6; SQLUSMALLINT _arg7; SQLUSMALLINT _arg8; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; int dim2; PyObject * _obj3 = 0; int dim3; PyObject * _obj5 = 0; self = self; {} {} {} if(!PyArg_ParseTuple(args,"OOOOhh:SQLStatistics",&_obj0,&_obj1,&_obj3,&_obj5,&_arg7,&_arg8)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { if(_obj3==Py_None) { _arg3=NULL; dim2=0; } else UNLESS(_arg3=PySequence_CharArray(_obj3, &dim2)) return NULL; } { if(_obj5==Py_None) { _arg5=NULL; dim3=0; } else UNLESS(_arg5=PySequence_CharArray(_obj5, &dim3)) return NULL; } { _arg2=dim1;} { _arg4=dim2;} { _arg6=dim3;} { SWORD status; status= _result = (SWORD )SQLStatistics(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyObject *_wrap_SQLTables(PyObject *self, PyObject *args) { PyObject * _resultobj; SWORD _result; SQLHSTMT _arg0; SQLCHAR * _arg1; SQLSMALLINT _arg2; SQLCHAR * _arg3; SQLSMALLINT _arg4; SQLCHAR * _arg5; SQLSMALLINT _arg6; SQLCHAR * _arg7; SQLSMALLINT _arg8; SQLHSTMT handle; PyObject * _obj0 = 0; int dim1; PyObject * _obj1 = 0; int dim2; PyObject * _obj3 = 0; int dim3; PyObject * _obj5 = 0; int dim4; PyObject * _obj7 = 0; self = self; {} {} {} {} if(!PyArg_ParseTuple(args,"OOOOO:SQLTables",&_obj0,&_obj1,&_obj3,&_obj5,&_obj7)) return NULL; { if(_obj0==Py_None) _arg0=NULL; else if(_obj0->ob_type == &StatementType) { _arg0 = ((Statement*)_obj0)->stmt; } else { UNLESS(PyCObject_Check(_obj0)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } _arg0=*(SQLHSTMT *)PyCObject_AsVoidPtr(_obj0); } handle=_arg0; } { if(_obj1==Py_None) { _arg1=NULL; dim1=0; } else UNLESS(_arg1=PySequence_CharArray(_obj1, &dim1)) return NULL; } { if(_obj3==Py_None) { _arg3=NULL; dim2=0; } else UNLESS(_arg3=PySequence_CharArray(_obj3, &dim2)) return NULL; } if (_obj5) { if(_obj5==Py_None) { _arg5=NULL; dim3=0; } else UNLESS(_arg5=PySequence_CharArray(_obj5, &dim3)) return NULL; } if (_obj7) { if(_obj7==Py_None) { _arg7=NULL; dim4=0; } else UNLESS(_arg7=PySequence_CharArray(_obj7, &dim4)) return NULL; } { _arg2=dim1;} { _arg4=dim2;} { _arg6=dim3;} { _arg8=dim4;} { SWORD status; status= _result = (SWORD )SQLTables(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); ; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } _resultobj = Py_BuildValue("h",_result); return _resultobj; } static PyMethodDef sqlMethods[] = { { "SQLTables", _wrap_SQLTables, 1 }, { "SQLStatistics", _wrap_SQLStatistics, 1 }, { "SQLSpecialColumns", _wrap_SQLSpecialColumns, 1 }, { "SQLSetStmtOption", _wrap_SQLSetStmtOption, 1 }, { "SQLPutData", _wrap_SQLPutData, 1 }, { "SQLParamData", _wrap_SQLParamData, 1 }, { "SQLGetTypeInfo", _wrap_SQLGetTypeInfo, 1 }, { "SQLGetStmtOption", _wrap_SQLGetStmtOption, 1 }, { "SQLGetData", _wrap_SQLGetData, 1 }, { "SQLColumns", _wrap_SQLColumns, 1 }, { "SQLSetCursorName", _wrap_SQLSetCursorName, 1 }, { "SQLRowCount", _wrap_SQLRowCount, 1 }, { "SQLPrepare", _wrap_SQLPrepare, 1 }, { "SQLNumResultCols", _wrap_SQLNumResultCols, 1 }, { "SQLGetCursorName", _wrap_SQLGetCursorName, 1 }, { "SQLExecute", _wrap_SQLExecute, 1 }, { "SQLExecDirect", _wrap_SQLExecDirect, 1 }, { "SQLDescribeCol", _wrap_SQLDescribeCol, 1 }, { "SQLColAttributes", _wrap_SQLColAttributes, 1 }, { "SQLCancel", _wrap_SQLCancel, 1 }, { "SQLBindInputParameter", _wrap_SQLBindInputParameter, 1 }, { "SQLBindCol", _wrap_SQLBindCol, 1 }, { "SQLFreeStmt", _wrap_SQLFreeStmt, 1 }, { "SQLSetConnectOption", _wrap_SQLSetConnectOption, 1 }, { "SQLGetInfo", _wrap_SQLGetInfo, 1 }, { "SQLGetFunctions", _wrap_SQLGetFunctions, 1 }, { "SQLGetConnectOption", _wrap_SQLGetConnectOption, 1 }, { "SQLAllocStmt", _wrap_SQLAllocStmt, 1 }, { "SQLDisconnect", _wrap_SQLDisconnect, 1 }, { "SQLConnect", _wrap_SQLConnect, 1 }, { "SQLAllocConnect", _wrap_SQLAllocConnect, 1 }, { "SQLFetch", _wrap_SQLFetch, 1 }, { "SQLConnection", _wrap_SQLConnection, 1 }, { "SQLGetString", _wrap_SQLGetString, 1 }, { "SQLGetInt", _wrap_SQLGetInt, 1 }, { "SQLGetFloat", _wrap_SQLGetFloat, 1 }, { "SQLException", _wrap_SQLException, 1 }, { "SQLTransact", _wrap_SQLTransact, 1 }, { "SQLError", _wrap_SQLError, 1 }, { "SQLDataSources", _wrap_SQLDataSources, 1 }, { "ptrmap", _wrap_ptrmap, 1 }, { "ptradd", _wrap_ptradd, 1 }, { "ptrfree", _wrap_ptrfree, 1 }, { "ptrcreate", _wrap_ptrcreate, 1 }, { "ptrset", _wrap_ptrset, 1 }, { "ptrvalue", _wrap_ptrvalue, 1 }, { "ptrcast", _wrap_ptrcast, 1 }, { NULL, NULL } }; static PyObject *SWIG_globals; #ifdef __cplusplus extern "C" #endif SWIGEXPORT(void,initsql)() { PyObject *m, *d; SWIG_globals = SWIG_newvarlink(); m = Py_InitModule("sql", sqlMethods); d = PyModule_GetDict(m); _wrap_python_const_ODBCVER = PyInt_FromLong(0x0250); PyDict_SetItemString(d,"ODBCVER", _wrap_python_const_ODBCVER); _wrap_python_const_SQL_SPEC_MAJOR = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_SPEC_MAJOR", _wrap_python_const_SQL_SPEC_MAJOR); _wrap_python_const_SQL_SPEC_MINOR = PyInt_FromLong(50); PyDict_SetItemString(d,"SQL_SPEC_MINOR", _wrap_python_const_SQL_SPEC_MINOR); _wrap_python_const_SQL_SPEC_STRING = PyString_FromString("02.50"); PyDict_SetItemString(d,"SQL_SPEC_STRING", _wrap_python_const_SQL_SPEC_STRING); _wrap_python_const_SQL_SQLSTATE_SIZE = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_SQLSTATE_SIZE", _wrap_python_const_SQL_SQLSTATE_SIZE); _wrap_python_const_SQL_MAX_MESSAGE_LENGTH = PyInt_FromLong(512); PyDict_SetItemString(d,"SQL_MAX_MESSAGE_LENGTH", _wrap_python_const_SQL_MAX_MESSAGE_LENGTH); _wrap_python_const_SQL_MAX_DSN_LENGTH = PyInt_FromLong(32); PyDict_SetItemString(d,"SQL_MAX_DSN_LENGTH", _wrap_python_const_SQL_MAX_DSN_LENGTH); _wrap_python_const_SQL_INVALID_HANDLE = PyInt_FromLong((-2)); PyDict_SetItemString(d,"SQL_INVALID_HANDLE", _wrap_python_const_SQL_INVALID_HANDLE); _wrap_python_const_SQL_ERROR = PyInt_FromLong((-1)); PyDict_SetItemString(d,"SQL_ERROR", _wrap_python_const_SQL_ERROR); _wrap_python_const_SQL_SUCCESS = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_SUCCESS", _wrap_python_const_SQL_SUCCESS); _wrap_python_const_SQL_SUCCESS_WITH_INFO = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_SUCCESS_WITH_INFO", _wrap_python_const_SQL_SUCCESS_WITH_INFO); _wrap_python_const_SQL_NO_DATA_FOUND = PyInt_FromLong(100); PyDict_SetItemString(d,"SQL_NO_DATA_FOUND", _wrap_python_const_SQL_NO_DATA_FOUND); _wrap_python_const_SQL_CHAR = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_CHAR", _wrap_python_const_SQL_CHAR); _wrap_python_const_SQL_NUMERIC = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_NUMERIC", _wrap_python_const_SQL_NUMERIC); _wrap_python_const_SQL_DECIMAL = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_DECIMAL", _wrap_python_const_SQL_DECIMAL); _wrap_python_const_SQL_INTEGER = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_INTEGER", _wrap_python_const_SQL_INTEGER); _wrap_python_const_SQL_SMALLINT = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_SMALLINT", _wrap_python_const_SQL_SMALLINT); _wrap_python_const_SQL_FLOAT = PyInt_FromLong(6); PyDict_SetItemString(d,"SQL_FLOAT", _wrap_python_const_SQL_FLOAT); _wrap_python_const_SQL_REAL = PyInt_FromLong(7); PyDict_SetItemString(d,"SQL_REAL", _wrap_python_const_SQL_REAL); _wrap_python_const_SQL_DOUBLE = PyInt_FromLong(8); PyDict_SetItemString(d,"SQL_DOUBLE", _wrap_python_const_SQL_DOUBLE); _wrap_python_const_SQL_VARCHAR = PyInt_FromLong(12); PyDict_SetItemString(d,"SQL_VARCHAR", _wrap_python_const_SQL_VARCHAR); _wrap_python_const_SQL_TYPE_NULL = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_TYPE_NULL", _wrap_python_const_SQL_TYPE_NULL); _wrap_python_const_SQL_TYPE_MIN = PyInt_FromLong(SQL_BIT); PyDict_SetItemString(d,"SQL_TYPE_MIN", _wrap_python_const_SQL_TYPE_MIN); _wrap_python_const_SQL_TYPE_MAX = PyInt_FromLong((12)); PyDict_SetItemString(d,"SQL_TYPE_MAX", _wrap_python_const_SQL_TYPE_MAX); _wrap_python_const_SQL_ALL_TYPES = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_ALL_TYPES", _wrap_python_const_SQL_ALL_TYPES); _wrap_python_const_SQL_C_CHAR = PyInt_FromLong((1)); PyDict_SetItemString(d,"SQL_C_CHAR", _wrap_python_const_SQL_C_CHAR); _wrap_python_const_SQL_C_LONG = PyInt_FromLong((4)); PyDict_SetItemString(d,"SQL_C_LONG", _wrap_python_const_SQL_C_LONG); _wrap_python_const_SQL_C_SHORT = PyInt_FromLong((5)); PyDict_SetItemString(d,"SQL_C_SHORT", _wrap_python_const_SQL_C_SHORT); _wrap_python_const_SQL_C_FLOAT = PyInt_FromLong((7)); PyDict_SetItemString(d,"SQL_C_FLOAT", _wrap_python_const_SQL_C_FLOAT); _wrap_python_const_SQL_C_DOUBLE = PyInt_FromLong((8)); PyDict_SetItemString(d,"SQL_C_DOUBLE", _wrap_python_const_SQL_C_DOUBLE); _wrap_python_const_SQL_C_DEFAULT = PyInt_FromLong(99); PyDict_SetItemString(d,"SQL_C_DEFAULT", _wrap_python_const_SQL_C_DEFAULT); _wrap_python_const_SQL_NO_NULLS = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_NO_NULLS", _wrap_python_const_SQL_NO_NULLS); _wrap_python_const_SQL_NULLABLE = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_NULLABLE", _wrap_python_const_SQL_NULLABLE); _wrap_python_const_SQL_NULLABLE_UNKNOWN = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_NULLABLE_UNKNOWN", _wrap_python_const_SQL_NULLABLE_UNKNOWN); _wrap_python_const_SQL_NULL_DATA = PyInt_FromLong((-1)); PyDict_SetItemString(d,"SQL_NULL_DATA", _wrap_python_const_SQL_NULL_DATA); _wrap_python_const_SQL_DATA_AT_EXEC = PyInt_FromLong((-2)); PyDict_SetItemString(d,"SQL_DATA_AT_EXEC", _wrap_python_const_SQL_DATA_AT_EXEC); _wrap_python_const_SQL_NTS = PyInt_FromLong((-3)); PyDict_SetItemString(d,"SQL_NTS", _wrap_python_const_SQL_NTS); _wrap_python_const_SQL_CLOSE = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_CLOSE", _wrap_python_const_SQL_CLOSE); _wrap_python_const_SQL_DROP = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_DROP", _wrap_python_const_SQL_DROP); _wrap_python_const_SQL_UNBIND = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_UNBIND", _wrap_python_const_SQL_UNBIND); _wrap_python_const_SQL_RESET_PARAMS = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_RESET_PARAMS", _wrap_python_const_SQL_RESET_PARAMS); _wrap_python_const_SQL_COMMIT = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_COMMIT", _wrap_python_const_SQL_COMMIT); _wrap_python_const_SQL_ROLLBACK = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_ROLLBACK", _wrap_python_const_SQL_ROLLBACK); _wrap_python_const_SQL_COLUMN_COUNT = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_COLUMN_COUNT", _wrap_python_const_SQL_COLUMN_COUNT); _wrap_python_const_SQL_COLUMN_NAME = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_COLUMN_NAME", _wrap_python_const_SQL_COLUMN_NAME); _wrap_python_const_SQL_COLUMN_TYPE = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_COLUMN_TYPE", _wrap_python_const_SQL_COLUMN_TYPE); _wrap_python_const_SQL_COLUMN_LENGTH = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_COLUMN_LENGTH", _wrap_python_const_SQL_COLUMN_LENGTH); _wrap_python_const_SQL_COLUMN_PRECISION = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_COLUMN_PRECISION", _wrap_python_const_SQL_COLUMN_PRECISION); _wrap_python_const_SQL_COLUMN_SCALE = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_COLUMN_SCALE", _wrap_python_const_SQL_COLUMN_SCALE); _wrap_python_const_SQL_COLUMN_DISPLAY_SIZE = PyInt_FromLong(6); PyDict_SetItemString(d,"SQL_COLUMN_DISPLAY_SIZE", _wrap_python_const_SQL_COLUMN_DISPLAY_SIZE); _wrap_python_const_SQL_COLUMN_NULLABLE = PyInt_FromLong(7); PyDict_SetItemString(d,"SQL_COLUMN_NULLABLE", _wrap_python_const_SQL_COLUMN_NULLABLE); _wrap_python_const_SQL_COLUMN_UNSIGNED = PyInt_FromLong(8); PyDict_SetItemString(d,"SQL_COLUMN_UNSIGNED", _wrap_python_const_SQL_COLUMN_UNSIGNED); _wrap_python_const_SQL_COLUMN_MONEY = PyInt_FromLong(9); PyDict_SetItemString(d,"SQL_COLUMN_MONEY", _wrap_python_const_SQL_COLUMN_MONEY); _wrap_python_const_SQL_COLUMN_UPDATABLE = PyInt_FromLong(10); PyDict_SetItemString(d,"SQL_COLUMN_UPDATABLE", _wrap_python_const_SQL_COLUMN_UPDATABLE); _wrap_python_const_SQL_COLUMN_AUTO_INCREMENT = PyInt_FromLong(11); PyDict_SetItemString(d,"SQL_COLUMN_AUTO_INCREMENT", _wrap_python_const_SQL_COLUMN_AUTO_INCREMENT); _wrap_python_const_SQL_COLUMN_CASE_SENSITIVE = PyInt_FromLong(12); PyDict_SetItemString(d,"SQL_COLUMN_CASE_SENSITIVE", _wrap_python_const_SQL_COLUMN_CASE_SENSITIVE); _wrap_python_const_SQL_COLUMN_SEARCHABLE = PyInt_FromLong(13); PyDict_SetItemString(d,"SQL_COLUMN_SEARCHABLE", _wrap_python_const_SQL_COLUMN_SEARCHABLE); _wrap_python_const_SQL_COLUMN_TYPE_NAME = PyInt_FromLong(14); PyDict_SetItemString(d,"SQL_COLUMN_TYPE_NAME", _wrap_python_const_SQL_COLUMN_TYPE_NAME); _wrap_python_const_SQL_COLUMN_TABLE_NAME = PyInt_FromLong(15); PyDict_SetItemString(d,"SQL_COLUMN_TABLE_NAME", _wrap_python_const_SQL_COLUMN_TABLE_NAME); _wrap_python_const_SQL_COLUMN_OWNER_NAME = PyInt_FromLong(16); PyDict_SetItemString(d,"SQL_COLUMN_OWNER_NAME", _wrap_python_const_SQL_COLUMN_OWNER_NAME); _wrap_python_const_SQL_COLUMN_QUALIFIER_NAME = PyInt_FromLong(17); PyDict_SetItemString(d,"SQL_COLUMN_QUALIFIER_NAME", _wrap_python_const_SQL_COLUMN_QUALIFIER_NAME); _wrap_python_const_SQL_COLUMN_LABEL = PyInt_FromLong(18); PyDict_SetItemString(d,"SQL_COLUMN_LABEL", _wrap_python_const_SQL_COLUMN_LABEL); _wrap_python_const_SQL_COLATT_OPT_MAX = PyInt_FromLong((18)); PyDict_SetItemString(d,"SQL_COLATT_OPT_MAX", _wrap_python_const_SQL_COLATT_OPT_MAX); _wrap_python_const_SQL_COLUMN_DRIVER_START = PyInt_FromLong(1000); PyDict_SetItemString(d,"SQL_COLUMN_DRIVER_START", _wrap_python_const_SQL_COLUMN_DRIVER_START); _wrap_python_const_SQL_COLATT_OPT_MIN = PyInt_FromLong((0)); PyDict_SetItemString(d,"SQL_COLATT_OPT_MIN", _wrap_python_const_SQL_COLATT_OPT_MIN); _wrap_python_const_SQL_ATTR_READONLY = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_ATTR_READONLY", _wrap_python_const_SQL_ATTR_READONLY); _wrap_python_const_SQL_ATTR_WRITE = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_ATTR_WRITE", _wrap_python_const_SQL_ATTR_WRITE); _wrap_python_const_SQL_ATTR_READWRITE_UNKNOWN = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_ATTR_READWRITE_UNKNOWN", _wrap_python_const_SQL_ATTR_READWRITE_UNKNOWN); _wrap_python_const_SQL_UNSEARCHABLE = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_UNSEARCHABLE", _wrap_python_const_SQL_UNSEARCHABLE); _wrap_python_const_SQL_LIKE_ONLY = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_LIKE_ONLY", _wrap_python_const_SQL_LIKE_ONLY); _wrap_python_const_SQL_ALL_EXCEPT_LIKE = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_ALL_EXCEPT_LIKE", _wrap_python_const_SQL_ALL_EXCEPT_LIKE); _wrap_python_const_SQL_SEARCHABLE = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_SEARCHABLE", _wrap_python_const_SQL_SEARCHABLE); _wrap_python_const_SQL_NULL_HENV = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_NULL_HENV", _wrap_python_const_SQL_NULL_HENV); _wrap_python_const_SQL_NULL_HDBC = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_NULL_HDBC", _wrap_python_const_SQL_NULL_HDBC); _wrap_python_const_SQL_NULL_HSTMT = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_NULL_HSTMT", _wrap_python_const_SQL_NULL_HSTMT); _wrap_python_const_SQL_MAX_OPTION_STRING_LENGTH = PyInt_FromLong(256); PyDict_SetItemString(d,"SQL_MAX_OPTION_STRING_LENGTH", _wrap_python_const_SQL_MAX_OPTION_STRING_LENGTH); _wrap_python_const_SQL_STILL_EXECUTING = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_STILL_EXECUTING", _wrap_python_const_SQL_STILL_EXECUTING); _wrap_python_const_SQL_NEED_DATA = PyInt_FromLong(99); PyDict_SetItemString(d,"SQL_NEED_DATA", _wrap_python_const_SQL_NEED_DATA); _wrap_python_const_SQL_DATE = PyInt_FromLong(9); PyDict_SetItemString(d,"SQL_DATE", _wrap_python_const_SQL_DATE); _wrap_python_const_SQL_TIME = PyInt_FromLong(10); PyDict_SetItemString(d,"SQL_TIME", _wrap_python_const_SQL_TIME); _wrap_python_const_SQL_TIMESTAMP = PyInt_FromLong(11); PyDict_SetItemString(d,"SQL_TIMESTAMP", _wrap_python_const_SQL_TIMESTAMP); _wrap_python_const_SQL_LONGVARCHAR = PyInt_FromLong((-1)); PyDict_SetItemString(d,"SQL_LONGVARCHAR", _wrap_python_const_SQL_LONGVARCHAR); _wrap_python_const_SQL_BINARY = PyInt_FromLong((-2)); PyDict_SetItemString(d,"SQL_BINARY", _wrap_python_const_SQL_BINARY); _wrap_python_const_SQL_VARBINARY = PyInt_FromLong((-3)); PyDict_SetItemString(d,"SQL_VARBINARY", _wrap_python_const_SQL_VARBINARY); _wrap_python_const_SQL_LONGVARBINARY = PyInt_FromLong((-4)); PyDict_SetItemString(d,"SQL_LONGVARBINARY", _wrap_python_const_SQL_LONGVARBINARY); _wrap_python_const_SQL_BIGINT = PyInt_FromLong((-5)); PyDict_SetItemString(d,"SQL_BIGINT", _wrap_python_const_SQL_BIGINT); _wrap_python_const_SQL_TINYINT = PyInt_FromLong((-6)); PyDict_SetItemString(d,"SQL_TINYINT", _wrap_python_const_SQL_TINYINT); _wrap_python_const_SQL_BIT = PyInt_FromLong((-7)); PyDict_SetItemString(d,"SQL_BIT", _wrap_python_const_SQL_BIT); _wrap_python_const_SQL_INTERVAL_YEAR = PyInt_FromLong((-80)); PyDict_SetItemString(d,"SQL_INTERVAL_YEAR", _wrap_python_const_SQL_INTERVAL_YEAR); _wrap_python_const_SQL_INTERVAL_MONTH = PyInt_FromLong((-81)); PyDict_SetItemString(d,"SQL_INTERVAL_MONTH", _wrap_python_const_SQL_INTERVAL_MONTH); _wrap_python_const_SQL_INTERVAL_YEAR_TO_MONTH = PyInt_FromLong((-82)); PyDict_SetItemString(d,"SQL_INTERVAL_YEAR_TO_MONTH", _wrap_python_const_SQL_INTERVAL_YEAR_TO_MONTH); _wrap_python_const_SQL_INTERVAL_DAY = PyInt_FromLong((-83)); PyDict_SetItemString(d,"SQL_INTERVAL_DAY", _wrap_python_const_SQL_INTERVAL_DAY); _wrap_python_const_SQL_INTERVAL_HOUR = PyInt_FromLong((-84)); PyDict_SetItemString(d,"SQL_INTERVAL_HOUR", _wrap_python_const_SQL_INTERVAL_HOUR); _wrap_python_const_SQL_INTERVAL_MINUTE = PyInt_FromLong((-85)); PyDict_SetItemString(d,"SQL_INTERVAL_MINUTE", _wrap_python_const_SQL_INTERVAL_MINUTE); _wrap_python_const_SQL_INTERVAL_SECOND = PyInt_FromLong((-86)); PyDict_SetItemString(d,"SQL_INTERVAL_SECOND", _wrap_python_const_SQL_INTERVAL_SECOND); _wrap_python_const_SQL_INTERVAL_DAY_TO_HOUR = PyInt_FromLong((-87)); PyDict_SetItemString(d,"SQL_INTERVAL_DAY_TO_HOUR", _wrap_python_const_SQL_INTERVAL_DAY_TO_HOUR); _wrap_python_const_SQL_INTERVAL_DAY_TO_MINUTE = PyInt_FromLong((-88)); PyDict_SetItemString(d,"SQL_INTERVAL_DAY_TO_MINUTE", _wrap_python_const_SQL_INTERVAL_DAY_TO_MINUTE); _wrap_python_const_SQL_INTERVAL_DAY_TO_SECOND = PyInt_FromLong((-89)); PyDict_SetItemString(d,"SQL_INTERVAL_DAY_TO_SECOND", _wrap_python_const_SQL_INTERVAL_DAY_TO_SECOND); _wrap_python_const_SQL_INTERVAL_HOUR_TO_MINUTE = PyInt_FromLong((-90)); PyDict_SetItemString(d,"SQL_INTERVAL_HOUR_TO_MINUTE", _wrap_python_const_SQL_INTERVAL_HOUR_TO_MINUTE); _wrap_python_const_SQL_INTERVAL_HOUR_TO_SECOND = PyInt_FromLong((-91)); PyDict_SetItemString(d,"SQL_INTERVAL_HOUR_TO_SECOND", _wrap_python_const_SQL_INTERVAL_HOUR_TO_SECOND); _wrap_python_const_SQL_INTERVAL_MINUTE_TO_SECOND = PyInt_FromLong((-92)); PyDict_SetItemString(d,"SQL_INTERVAL_MINUTE_TO_SECOND", _wrap_python_const_SQL_INTERVAL_MINUTE_TO_SECOND); _wrap_python_const_SQL_UNICODE = PyInt_FromLong((-95)); PyDict_SetItemString(d,"SQL_UNICODE", _wrap_python_const_SQL_UNICODE); _wrap_python_const_SQL_UNICODE_VARCHAR = PyInt_FromLong((-96)); PyDict_SetItemString(d,"SQL_UNICODE_VARCHAR", _wrap_python_const_SQL_UNICODE_VARCHAR); _wrap_python_const_SQL_UNICODE_LONGVARCHAR = PyInt_FromLong((-97)); PyDict_SetItemString(d,"SQL_UNICODE_LONGVARCHAR", _wrap_python_const_SQL_UNICODE_LONGVARCHAR); _wrap_python_const_SQL_UNICODE_CHAR = PyInt_FromLong(((-95))); PyDict_SetItemString(d,"SQL_UNICODE_CHAR", _wrap_python_const_SQL_UNICODE_CHAR); _wrap_python_const_SQL_TYPE_DRIVER_START = PyInt_FromLong(((-80))); PyDict_SetItemString(d,"SQL_TYPE_DRIVER_START", _wrap_python_const_SQL_TYPE_DRIVER_START); _wrap_python_const_SQL_TYPE_DRIVER_END = PyInt_FromLong(((-97))); PyDict_SetItemString(d,"SQL_TYPE_DRIVER_END", _wrap_python_const_SQL_TYPE_DRIVER_END); _wrap_python_const_SQL_SIGNED_OFFSET = PyInt_FromLong((-20)); PyDict_SetItemString(d,"SQL_SIGNED_OFFSET", _wrap_python_const_SQL_SIGNED_OFFSET); _wrap_python_const_SQL_UNSIGNED_OFFSET = PyInt_FromLong((-22)); PyDict_SetItemString(d,"SQL_UNSIGNED_OFFSET", _wrap_python_const_SQL_UNSIGNED_OFFSET); _wrap_python_const_SQL_C_DATE = PyInt_FromLong((9)); PyDict_SetItemString(d,"SQL_C_DATE", _wrap_python_const_SQL_C_DATE); _wrap_python_const_SQL_C_TIME = PyInt_FromLong((10)); PyDict_SetItemString(d,"SQL_C_TIME", _wrap_python_const_SQL_C_TIME); _wrap_python_const_SQL_C_TIMESTAMP = PyInt_FromLong((11)); PyDict_SetItemString(d,"SQL_C_TIMESTAMP", _wrap_python_const_SQL_C_TIMESTAMP); _wrap_python_const_SQL_C_BINARY = PyInt_FromLong(((-2))); PyDict_SetItemString(d,"SQL_C_BINARY", _wrap_python_const_SQL_C_BINARY); _wrap_python_const_SQL_C_BIT = PyInt_FromLong(((-7))); PyDict_SetItemString(d,"SQL_C_BIT", _wrap_python_const_SQL_C_BIT); _wrap_python_const_SQL_C_TINYINT = PyInt_FromLong(((-6))); PyDict_SetItemString(d,"SQL_C_TINYINT", _wrap_python_const_SQL_C_TINYINT); _wrap_python_const_SQL_C_SLONG = PyInt_FromLong(((4))+((-20))); PyDict_SetItemString(d,"SQL_C_SLONG", _wrap_python_const_SQL_C_SLONG); _wrap_python_const_SQL_C_SSHORT = PyInt_FromLong(((5))+((-20))); PyDict_SetItemString(d,"SQL_C_SSHORT", _wrap_python_const_SQL_C_SSHORT); _wrap_python_const_SQL_C_STINYINT = PyInt_FromLong(((-6))+((-20))); PyDict_SetItemString(d,"SQL_C_STINYINT", _wrap_python_const_SQL_C_STINYINT); _wrap_python_const_SQL_C_ULONG = PyInt_FromLong(((4))+((-22))); PyDict_SetItemString(d,"SQL_C_ULONG", _wrap_python_const_SQL_C_ULONG); _wrap_python_const_SQL_C_USHORT = PyInt_FromLong(((5))+((-22))); PyDict_SetItemString(d,"SQL_C_USHORT", _wrap_python_const_SQL_C_USHORT); _wrap_python_const_SQL_C_UTINYINT = PyInt_FromLong(((-6))+((-22))); PyDict_SetItemString(d,"SQL_C_UTINYINT", _wrap_python_const_SQL_C_UTINYINT); _wrap_python_const_SQL_C_BOOKMARK = PyInt_FromLong((((4))+((-22)))); PyDict_SetItemString(d,"SQL_C_BOOKMARK", _wrap_python_const_SQL_C_BOOKMARK); _wrap_python_const_SQL_NO_TOTAL = PyInt_FromLong((-4)); PyDict_SetItemString(d,"SQL_NO_TOTAL", _wrap_python_const_SQL_NO_TOTAL); _wrap_python_const_SQL_API_SQLALLOCCONNECT = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_API_SQLALLOCCONNECT", _wrap_python_const_SQL_API_SQLALLOCCONNECT); _wrap_python_const_SQL_API_SQLALLOCENV = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_API_SQLALLOCENV", _wrap_python_const_SQL_API_SQLALLOCENV); _wrap_python_const_SQL_API_SQLALLOCSTMT = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_API_SQLALLOCSTMT", _wrap_python_const_SQL_API_SQLALLOCSTMT); _wrap_python_const_SQL_API_SQLBINDCOL = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_API_SQLBINDCOL", _wrap_python_const_SQL_API_SQLBINDCOL); _wrap_python_const_SQL_API_SQLCANCEL = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_API_SQLCANCEL", _wrap_python_const_SQL_API_SQLCANCEL); _wrap_python_const_SQL_API_SQLCOLATTRIBUTES = PyInt_FromLong(6); PyDict_SetItemString(d,"SQL_API_SQLCOLATTRIBUTES", _wrap_python_const_SQL_API_SQLCOLATTRIBUTES); _wrap_python_const_SQL_API_SQLCONNECT = PyInt_FromLong(7); PyDict_SetItemString(d,"SQL_API_SQLCONNECT", _wrap_python_const_SQL_API_SQLCONNECT); _wrap_python_const_SQL_API_SQLDESCRIBECOL = PyInt_FromLong(8); PyDict_SetItemString(d,"SQL_API_SQLDESCRIBECOL", _wrap_python_const_SQL_API_SQLDESCRIBECOL); _wrap_python_const_SQL_API_SQLDISCONNECT = PyInt_FromLong(9); PyDict_SetItemString(d,"SQL_API_SQLDISCONNECT", _wrap_python_const_SQL_API_SQLDISCONNECT); _wrap_python_const_SQL_API_SQLERROR = PyInt_FromLong(10); PyDict_SetItemString(d,"SQL_API_SQLERROR", _wrap_python_const_SQL_API_SQLERROR); _wrap_python_const_SQL_API_SQLEXECDIRECT = PyInt_FromLong(11); PyDict_SetItemString(d,"SQL_API_SQLEXECDIRECT", _wrap_python_const_SQL_API_SQLEXECDIRECT); _wrap_python_const_SQL_API_SQLEXECUTE = PyInt_FromLong(12); PyDict_SetItemString(d,"SQL_API_SQLEXECUTE", _wrap_python_const_SQL_API_SQLEXECUTE); _wrap_python_const_SQL_API_SQLFETCH = PyInt_FromLong(13); PyDict_SetItemString(d,"SQL_API_SQLFETCH", _wrap_python_const_SQL_API_SQLFETCH); _wrap_python_const_SQL_API_SQLFREECONNECT = PyInt_FromLong(14); PyDict_SetItemString(d,"SQL_API_SQLFREECONNECT", _wrap_python_const_SQL_API_SQLFREECONNECT); _wrap_python_const_SQL_API_SQLFREEENV = PyInt_FromLong(15); PyDict_SetItemString(d,"SQL_API_SQLFREEENV", _wrap_python_const_SQL_API_SQLFREEENV); _wrap_python_const_SQL_API_SQLFREESTMT = PyInt_FromLong(16); PyDict_SetItemString(d,"SQL_API_SQLFREESTMT", _wrap_python_const_SQL_API_SQLFREESTMT); _wrap_python_const_SQL_API_SQLGETCURSORNAME = PyInt_FromLong(17); PyDict_SetItemString(d,"SQL_API_SQLGETCURSORNAME", _wrap_python_const_SQL_API_SQLGETCURSORNAME); _wrap_python_const_SQL_API_SQLNUMRESULTCOLS = PyInt_FromLong(18); PyDict_SetItemString(d,"SQL_API_SQLNUMRESULTCOLS", _wrap_python_const_SQL_API_SQLNUMRESULTCOLS); _wrap_python_const_SQL_API_SQLPREPARE = PyInt_FromLong(19); PyDict_SetItemString(d,"SQL_API_SQLPREPARE", _wrap_python_const_SQL_API_SQLPREPARE); _wrap_python_const_SQL_API_SQLROWCOUNT = PyInt_FromLong(20); PyDict_SetItemString(d,"SQL_API_SQLROWCOUNT", _wrap_python_const_SQL_API_SQLROWCOUNT); _wrap_python_const_SQL_API_SQLSETCURSORNAME = PyInt_FromLong(21); PyDict_SetItemString(d,"SQL_API_SQLSETCURSORNAME", _wrap_python_const_SQL_API_SQLSETCURSORNAME); _wrap_python_const_SQL_API_SQLSETPARAM = PyInt_FromLong(22); PyDict_SetItemString(d,"SQL_API_SQLSETPARAM", _wrap_python_const_SQL_API_SQLSETPARAM); _wrap_python_const_SQL_API_SQLTRANSACT = PyInt_FromLong(23); PyDict_SetItemString(d,"SQL_API_SQLTRANSACT", _wrap_python_const_SQL_API_SQLTRANSACT); _wrap_python_const_SQL_NUM_FUNCTIONS = PyInt_FromLong(23); PyDict_SetItemString(d,"SQL_NUM_FUNCTIONS", _wrap_python_const_SQL_NUM_FUNCTIONS); _wrap_python_const_SQL_EXT_API_START = PyInt_FromLong(40); PyDict_SetItemString(d,"SQL_EXT_API_START", _wrap_python_const_SQL_EXT_API_START); _wrap_python_const_SQL_API_SQLCOLUMNS = PyInt_FromLong(40); PyDict_SetItemString(d,"SQL_API_SQLCOLUMNS", _wrap_python_const_SQL_API_SQLCOLUMNS); _wrap_python_const_SQL_API_SQLDRIVERCONNECT = PyInt_FromLong(41); PyDict_SetItemString(d,"SQL_API_SQLDRIVERCONNECT", _wrap_python_const_SQL_API_SQLDRIVERCONNECT); _wrap_python_const_SQL_API_SQLGETCONNECTOPTION = PyInt_FromLong(42); PyDict_SetItemString(d,"SQL_API_SQLGETCONNECTOPTION", _wrap_python_const_SQL_API_SQLGETCONNECTOPTION); _wrap_python_const_SQL_API_SQLGETDATA = PyInt_FromLong(43); PyDict_SetItemString(d,"SQL_API_SQLGETDATA", _wrap_python_const_SQL_API_SQLGETDATA); _wrap_python_const_SQL_API_SQLGETFUNCTIONS = PyInt_FromLong(44); PyDict_SetItemString(d,"SQL_API_SQLGETFUNCTIONS", _wrap_python_const_SQL_API_SQLGETFUNCTIONS); _wrap_python_const_SQL_API_SQLGETINFO = PyInt_FromLong(45); PyDict_SetItemString(d,"SQL_API_SQLGETINFO", _wrap_python_const_SQL_API_SQLGETINFO); _wrap_python_const_SQL_API_SQLGETSTMTOPTION = PyInt_FromLong(46); PyDict_SetItemString(d,"SQL_API_SQLGETSTMTOPTION", _wrap_python_const_SQL_API_SQLGETSTMTOPTION); _wrap_python_const_SQL_API_SQLGETTYPEINFO = PyInt_FromLong(47); PyDict_SetItemString(d,"SQL_API_SQLGETTYPEINFO", _wrap_python_const_SQL_API_SQLGETTYPEINFO); _wrap_python_const_SQL_API_SQLPARAMDATA = PyInt_FromLong(48); PyDict_SetItemString(d,"SQL_API_SQLPARAMDATA", _wrap_python_const_SQL_API_SQLPARAMDATA); _wrap_python_const_SQL_API_SQLPUTDATA = PyInt_FromLong(49); PyDict_SetItemString(d,"SQL_API_SQLPUTDATA", _wrap_python_const_SQL_API_SQLPUTDATA); _wrap_python_const_SQL_API_SQLSETCONNECTOPTION = PyInt_FromLong(50); PyDict_SetItemString(d,"SQL_API_SQLSETCONNECTOPTION", _wrap_python_const_SQL_API_SQLSETCONNECTOPTION); _wrap_python_const_SQL_API_SQLSETSTMTOPTION = PyInt_FromLong(51); PyDict_SetItemString(d,"SQL_API_SQLSETSTMTOPTION", _wrap_python_const_SQL_API_SQLSETSTMTOPTION); _wrap_python_const_SQL_API_SQLSPECIALCOLUMNS = PyInt_FromLong(52); PyDict_SetItemString(d,"SQL_API_SQLSPECIALCOLUMNS", _wrap_python_const_SQL_API_SQLSPECIALCOLUMNS); _wrap_python_const_SQL_API_SQLSTATISTICS = PyInt_FromLong(53); PyDict_SetItemString(d,"SQL_API_SQLSTATISTICS", _wrap_python_const_SQL_API_SQLSTATISTICS); _wrap_python_const_SQL_API_SQLTABLES = PyInt_FromLong(54); PyDict_SetItemString(d,"SQL_API_SQLTABLES", _wrap_python_const_SQL_API_SQLTABLES); _wrap_python_const_SQL_API_SQLBROWSECONNECT = PyInt_FromLong(55); PyDict_SetItemString(d,"SQL_API_SQLBROWSECONNECT", _wrap_python_const_SQL_API_SQLBROWSECONNECT); _wrap_python_const_SQL_API_SQLCOLUMNPRIVILEGES = PyInt_FromLong(56); PyDict_SetItemString(d,"SQL_API_SQLCOLUMNPRIVILEGES", _wrap_python_const_SQL_API_SQLCOLUMNPRIVILEGES); _wrap_python_const_SQL_API_SQLDATASOURCES = PyInt_FromLong(57); PyDict_SetItemString(d,"SQL_API_SQLDATASOURCES", _wrap_python_const_SQL_API_SQLDATASOURCES); _wrap_python_const_SQL_API_SQLDESCRIBEPARAM = PyInt_FromLong(58); PyDict_SetItemString(d,"SQL_API_SQLDESCRIBEPARAM", _wrap_python_const_SQL_API_SQLDESCRIBEPARAM); _wrap_python_const_SQL_API_SQLEXTENDEDFETCH = PyInt_FromLong(59); PyDict_SetItemString(d,"SQL_API_SQLEXTENDEDFETCH", _wrap_python_const_SQL_API_SQLEXTENDEDFETCH); _wrap_python_const_SQL_API_SQLFOREIGNKEYS = PyInt_FromLong(60); PyDict_SetItemString(d,"SQL_API_SQLFOREIGNKEYS", _wrap_python_const_SQL_API_SQLFOREIGNKEYS); _wrap_python_const_SQL_API_SQLMORERESULTS = PyInt_FromLong(61); PyDict_SetItemString(d,"SQL_API_SQLMORERESULTS", _wrap_python_const_SQL_API_SQLMORERESULTS); _wrap_python_const_SQL_API_SQLNATIVESQL = PyInt_FromLong(62); PyDict_SetItemString(d,"SQL_API_SQLNATIVESQL", _wrap_python_const_SQL_API_SQLNATIVESQL); _wrap_python_const_SQL_API_SQLNUMPARAMS = PyInt_FromLong(63); PyDict_SetItemString(d,"SQL_API_SQLNUMPARAMS", _wrap_python_const_SQL_API_SQLNUMPARAMS); _wrap_python_const_SQL_API_SQLPARAMOPTIONS = PyInt_FromLong(64); PyDict_SetItemString(d,"SQL_API_SQLPARAMOPTIONS", _wrap_python_const_SQL_API_SQLPARAMOPTIONS); _wrap_python_const_SQL_API_SQLPRIMARYKEYS = PyInt_FromLong(65); PyDict_SetItemString(d,"SQL_API_SQLPRIMARYKEYS", _wrap_python_const_SQL_API_SQLPRIMARYKEYS); _wrap_python_const_SQL_API_SQLPROCEDURECOLUMNS = PyInt_FromLong(66); PyDict_SetItemString(d,"SQL_API_SQLPROCEDURECOLUMNS", _wrap_python_const_SQL_API_SQLPROCEDURECOLUMNS); _wrap_python_const_SQL_API_SQLPROCEDURES = PyInt_FromLong(67); PyDict_SetItemString(d,"SQL_API_SQLPROCEDURES", _wrap_python_const_SQL_API_SQLPROCEDURES); _wrap_python_const_SQL_API_SQLSETPOS = PyInt_FromLong(68); PyDict_SetItemString(d,"SQL_API_SQLSETPOS", _wrap_python_const_SQL_API_SQLSETPOS); _wrap_python_const_SQL_API_SQLSETSCROLLOPTIONS = PyInt_FromLong(69); PyDict_SetItemString(d,"SQL_API_SQLSETSCROLLOPTIONS", _wrap_python_const_SQL_API_SQLSETSCROLLOPTIONS); _wrap_python_const_SQL_API_SQLTABLEPRIVILEGES = PyInt_FromLong(70); PyDict_SetItemString(d,"SQL_API_SQLTABLEPRIVILEGES", _wrap_python_const_SQL_API_SQLTABLEPRIVILEGES); _wrap_python_const_SQL_API_SQLDRIVERS = PyInt_FromLong(71); PyDict_SetItemString(d,"SQL_API_SQLDRIVERS", _wrap_python_const_SQL_API_SQLDRIVERS); _wrap_python_const_SQL_API_SQLBINDPARAMETER = PyInt_FromLong(72); PyDict_SetItemString(d,"SQL_API_SQLBINDPARAMETER", _wrap_python_const_SQL_API_SQLBINDPARAMETER); _wrap_python_const_SQL_EXT_API_LAST = PyInt_FromLong((72)); PyDict_SetItemString(d,"SQL_EXT_API_LAST", _wrap_python_const_SQL_EXT_API_LAST); _wrap_python_const_SQL_API_ALL_FUNCTIONS = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_API_ALL_FUNCTIONS", _wrap_python_const_SQL_API_ALL_FUNCTIONS); _wrap_python_const_SQL_NUM_EXTENSIONS = PyInt_FromLong((((72))-(40)+1)); PyDict_SetItemString(d,"SQL_NUM_EXTENSIONS", _wrap_python_const_SQL_NUM_EXTENSIONS); _wrap_python_const_SQL_API_LOADBYORDINAL = PyInt_FromLong(199); PyDict_SetItemString(d,"SQL_API_LOADBYORDINAL", _wrap_python_const_SQL_API_LOADBYORDINAL); _wrap_python_const_SQL_INFO_FIRST = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_INFO_FIRST", _wrap_python_const_SQL_INFO_FIRST); _wrap_python_const_SQL_ACTIVE_CONNECTIONS = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_ACTIVE_CONNECTIONS", _wrap_python_const_SQL_ACTIVE_CONNECTIONS); _wrap_python_const_SQL_ACTIVE_STATEMENTS = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_ACTIVE_STATEMENTS", _wrap_python_const_SQL_ACTIVE_STATEMENTS); _wrap_python_const_SQL_DATA_SOURCE_NAME = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_DATA_SOURCE_NAME", _wrap_python_const_SQL_DATA_SOURCE_NAME); _wrap_python_const_SQL_DRIVER_HDBC = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_DRIVER_HDBC", _wrap_python_const_SQL_DRIVER_HDBC); _wrap_python_const_SQL_DRIVER_HENV = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_DRIVER_HENV", _wrap_python_const_SQL_DRIVER_HENV); _wrap_python_const_SQL_DRIVER_HSTMT = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_DRIVER_HSTMT", _wrap_python_const_SQL_DRIVER_HSTMT); _wrap_python_const_SQL_DRIVER_NAME = PyInt_FromLong(6); PyDict_SetItemString(d,"SQL_DRIVER_NAME", _wrap_python_const_SQL_DRIVER_NAME); _wrap_python_const_SQL_DRIVER_VER = PyInt_FromLong(7); PyDict_SetItemString(d,"SQL_DRIVER_VER", _wrap_python_const_SQL_DRIVER_VER); _wrap_python_const_SQL_FETCH_DIRECTION = PyInt_FromLong(8); PyDict_SetItemString(d,"SQL_FETCH_DIRECTION", _wrap_python_const_SQL_FETCH_DIRECTION); _wrap_python_const_SQL_ODBC_API_CONFORMANCE = PyInt_FromLong(9); PyDict_SetItemString(d,"SQL_ODBC_API_CONFORMANCE", _wrap_python_const_SQL_ODBC_API_CONFORMANCE); _wrap_python_const_SQL_ODBC_VER = PyInt_FromLong(10); PyDict_SetItemString(d,"SQL_ODBC_VER", _wrap_python_const_SQL_ODBC_VER); _wrap_python_const_SQL_ROW_UPDATES = PyInt_FromLong(11); PyDict_SetItemString(d,"SQL_ROW_UPDATES", _wrap_python_const_SQL_ROW_UPDATES); _wrap_python_const_SQL_ODBC_SAG_CLI_CONFORMANCE = PyInt_FromLong(12); PyDict_SetItemString(d,"SQL_ODBC_SAG_CLI_CONFORMANCE", _wrap_python_const_SQL_ODBC_SAG_CLI_CONFORMANCE); _wrap_python_const_SQL_SERVER_NAME = PyInt_FromLong(13); PyDict_SetItemString(d,"SQL_SERVER_NAME", _wrap_python_const_SQL_SERVER_NAME); _wrap_python_const_SQL_SEARCH_PATTERN_ESCAPE = PyInt_FromLong(14); PyDict_SetItemString(d,"SQL_SEARCH_PATTERN_ESCAPE", _wrap_python_const_SQL_SEARCH_PATTERN_ESCAPE); _wrap_python_const_SQL_ODBC_SQL_CONFORMANCE = PyInt_FromLong(15); PyDict_SetItemString(d,"SQL_ODBC_SQL_CONFORMANCE", _wrap_python_const_SQL_ODBC_SQL_CONFORMANCE); _wrap_python_const_SQL_DBMS_NAME = PyInt_FromLong(17); PyDict_SetItemString(d,"SQL_DBMS_NAME", _wrap_python_const_SQL_DBMS_NAME); _wrap_python_const_SQL_DBMS_VER = PyInt_FromLong(18); PyDict_SetItemString(d,"SQL_DBMS_VER", _wrap_python_const_SQL_DBMS_VER); _wrap_python_const_SQL_ACCESSIBLE_TABLES = PyInt_FromLong(19); PyDict_SetItemString(d,"SQL_ACCESSIBLE_TABLES", _wrap_python_const_SQL_ACCESSIBLE_TABLES); _wrap_python_const_SQL_ACCESSIBLE_PROCEDURES = PyInt_FromLong(20); PyDict_SetItemString(d,"SQL_ACCESSIBLE_PROCEDURES", _wrap_python_const_SQL_ACCESSIBLE_PROCEDURES); _wrap_python_const_SQL_PROCEDURES = PyInt_FromLong(21); PyDict_SetItemString(d,"SQL_PROCEDURES", _wrap_python_const_SQL_PROCEDURES); _wrap_python_const_SQL_CONCAT_NULL_BEHAVIOR = PyInt_FromLong(22); PyDict_SetItemString(d,"SQL_CONCAT_NULL_BEHAVIOR", _wrap_python_const_SQL_CONCAT_NULL_BEHAVIOR); _wrap_python_const_SQL_CURSOR_COMMIT_BEHAVIOR = PyInt_FromLong(23); PyDict_SetItemString(d,"SQL_CURSOR_COMMIT_BEHAVIOR", _wrap_python_const_SQL_CURSOR_COMMIT_BEHAVIOR); _wrap_python_const_SQL_CURSOR_ROLLBACK_BEHAVIOR = PyInt_FromLong(24); PyDict_SetItemString(d,"SQL_CURSOR_ROLLBACK_BEHAVIOR", _wrap_python_const_SQL_CURSOR_ROLLBACK_BEHAVIOR); _wrap_python_const_SQL_DATA_SOURCE_READ_ONLY = PyInt_FromLong(25); PyDict_SetItemString(d,"SQL_DATA_SOURCE_READ_ONLY", _wrap_python_const_SQL_DATA_SOURCE_READ_ONLY); _wrap_python_const_SQL_DEFAULT_TXN_ISOLATION = PyInt_FromLong(26); PyDict_SetItemString(d,"SQL_DEFAULT_TXN_ISOLATION", _wrap_python_const_SQL_DEFAULT_TXN_ISOLATION); _wrap_python_const_SQL_EXPRESSIONS_IN_ORDERBY = PyInt_FromLong(27); PyDict_SetItemString(d,"SQL_EXPRESSIONS_IN_ORDERBY", _wrap_python_const_SQL_EXPRESSIONS_IN_ORDERBY); _wrap_python_const_SQL_IDENTIFIER_CASE = PyInt_FromLong(28); PyDict_SetItemString(d,"SQL_IDENTIFIER_CASE", _wrap_python_const_SQL_IDENTIFIER_CASE); _wrap_python_const_SQL_IDENTIFIER_QUOTE_CHAR = PyInt_FromLong(29); PyDict_SetItemString(d,"SQL_IDENTIFIER_QUOTE_CHAR", _wrap_python_const_SQL_IDENTIFIER_QUOTE_CHAR); _wrap_python_const_SQL_MAX_COLUMN_NAME_LEN = PyInt_FromLong(30); PyDict_SetItemString(d,"SQL_MAX_COLUMN_NAME_LEN", _wrap_python_const_SQL_MAX_COLUMN_NAME_LEN); _wrap_python_const_SQL_MAX_CURSOR_NAME_LEN = PyInt_FromLong(31); PyDict_SetItemString(d,"SQL_MAX_CURSOR_NAME_LEN", _wrap_python_const_SQL_MAX_CURSOR_NAME_LEN); _wrap_python_const_SQL_MAX_OWNER_NAME_LEN = PyInt_FromLong(32); PyDict_SetItemString(d,"SQL_MAX_OWNER_NAME_LEN", _wrap_python_const_SQL_MAX_OWNER_NAME_LEN); _wrap_python_const_SQL_MAX_PROCEDURE_NAME_LEN = PyInt_FromLong(33); PyDict_SetItemString(d,"SQL_MAX_PROCEDURE_NAME_LEN", _wrap_python_const_SQL_MAX_PROCEDURE_NAME_LEN); _wrap_python_const_SQL_MAX_QUALIFIER_NAME_LEN = PyInt_FromLong(34); PyDict_SetItemString(d,"SQL_MAX_QUALIFIER_NAME_LEN", _wrap_python_const_SQL_MAX_QUALIFIER_NAME_LEN); _wrap_python_const_SQL_MAX_TABLE_NAME_LEN = PyInt_FromLong(35); PyDict_SetItemString(d,"SQL_MAX_TABLE_NAME_LEN", _wrap_python_const_SQL_MAX_TABLE_NAME_LEN); _wrap_python_const_SQL_MULT_RESULT_SETS = PyInt_FromLong(36); PyDict_SetItemString(d,"SQL_MULT_RESULT_SETS", _wrap_python_const_SQL_MULT_RESULT_SETS); _wrap_python_const_SQL_MULTIPLE_ACTIVE_TXN = PyInt_FromLong(37); PyDict_SetItemString(d,"SQL_MULTIPLE_ACTIVE_TXN", _wrap_python_const_SQL_MULTIPLE_ACTIVE_TXN); _wrap_python_const_SQL_OUTER_JOINS = PyInt_FromLong(38); PyDict_SetItemString(d,"SQL_OUTER_JOINS", _wrap_python_const_SQL_OUTER_JOINS); _wrap_python_const_SQL_OWNER_TERM = PyInt_FromLong(39); PyDict_SetItemString(d,"SQL_OWNER_TERM", _wrap_python_const_SQL_OWNER_TERM); _wrap_python_const_SQL_PROCEDURE_TERM = PyInt_FromLong(40); PyDict_SetItemString(d,"SQL_PROCEDURE_TERM", _wrap_python_const_SQL_PROCEDURE_TERM); _wrap_python_const_SQL_QUALIFIER_NAME_SEPARATOR = PyInt_FromLong(41); PyDict_SetItemString(d,"SQL_QUALIFIER_NAME_SEPARATOR", _wrap_python_const_SQL_QUALIFIER_NAME_SEPARATOR); _wrap_python_const_SQL_QUALIFIER_TERM = PyInt_FromLong(42); PyDict_SetItemString(d,"SQL_QUALIFIER_TERM", _wrap_python_const_SQL_QUALIFIER_TERM); _wrap_python_const_SQL_SCROLL_CONCURRENCY = PyInt_FromLong(43); PyDict_SetItemString(d,"SQL_SCROLL_CONCURRENCY", _wrap_python_const_SQL_SCROLL_CONCURRENCY); _wrap_python_const_SQL_SCROLL_OPTIONS = PyInt_FromLong(44); PyDict_SetItemString(d,"SQL_SCROLL_OPTIONS", _wrap_python_const_SQL_SCROLL_OPTIONS); _wrap_python_const_SQL_TABLE_TERM = PyInt_FromLong(45); PyDict_SetItemString(d,"SQL_TABLE_TERM", _wrap_python_const_SQL_TABLE_TERM); _wrap_python_const_SQL_TXN_CAPABLE = PyInt_FromLong(46); PyDict_SetItemString(d,"SQL_TXN_CAPABLE", _wrap_python_const_SQL_TXN_CAPABLE); _wrap_python_const_SQL_USER_NAME = PyInt_FromLong(47); PyDict_SetItemString(d,"SQL_USER_NAME", _wrap_python_const_SQL_USER_NAME); _wrap_python_const_SQL_CONVERT_FUNCTIONS = PyInt_FromLong(48); PyDict_SetItemString(d,"SQL_CONVERT_FUNCTIONS", _wrap_python_const_SQL_CONVERT_FUNCTIONS); _wrap_python_const_SQL_NUMERIC_FUNCTIONS = PyInt_FromLong(49); PyDict_SetItemString(d,"SQL_NUMERIC_FUNCTIONS", _wrap_python_const_SQL_NUMERIC_FUNCTIONS); _wrap_python_const_SQL_STRING_FUNCTIONS = PyInt_FromLong(50); PyDict_SetItemString(d,"SQL_STRING_FUNCTIONS", _wrap_python_const_SQL_STRING_FUNCTIONS); _wrap_python_const_SQL_SYSTEM_FUNCTIONS = PyInt_FromLong(51); PyDict_SetItemString(d,"SQL_SYSTEM_FUNCTIONS", _wrap_python_const_SQL_SYSTEM_FUNCTIONS); _wrap_python_const_SQL_TIMEDATE_FUNCTIONS = PyInt_FromLong(52); PyDict_SetItemString(d,"SQL_TIMEDATE_FUNCTIONS", _wrap_python_const_SQL_TIMEDATE_FUNCTIONS); _wrap_python_const_SQL_CONVERT_BIGINT = PyInt_FromLong(53); PyDict_SetItemString(d,"SQL_CONVERT_BIGINT", _wrap_python_const_SQL_CONVERT_BIGINT); _wrap_python_const_SQL_CONVERT_BINARY = PyInt_FromLong(54); PyDict_SetItemString(d,"SQL_CONVERT_BINARY", _wrap_python_const_SQL_CONVERT_BINARY); _wrap_python_const_SQL_CONVERT_BIT = PyInt_FromLong(55); PyDict_SetItemString(d,"SQL_CONVERT_BIT", _wrap_python_const_SQL_CONVERT_BIT); _wrap_python_const_SQL_CONVERT_CHAR = PyInt_FromLong(56); PyDict_SetItemString(d,"SQL_CONVERT_CHAR", _wrap_python_const_SQL_CONVERT_CHAR); _wrap_python_const_SQL_CONVERT_DATE = PyInt_FromLong(57); PyDict_SetItemString(d,"SQL_CONVERT_DATE", _wrap_python_const_SQL_CONVERT_DATE); _wrap_python_const_SQL_CONVERT_DECIMAL = PyInt_FromLong(58); PyDict_SetItemString(d,"SQL_CONVERT_DECIMAL", _wrap_python_const_SQL_CONVERT_DECIMAL); _wrap_python_const_SQL_CONVERT_DOUBLE = PyInt_FromLong(59); PyDict_SetItemString(d,"SQL_CONVERT_DOUBLE", _wrap_python_const_SQL_CONVERT_DOUBLE); _wrap_python_const_SQL_CONVERT_FLOAT = PyInt_FromLong(60); PyDict_SetItemString(d,"SQL_CONVERT_FLOAT", _wrap_python_const_SQL_CONVERT_FLOAT); _wrap_python_const_SQL_CONVERT_INTEGER = PyInt_FromLong(61); PyDict_SetItemString(d,"SQL_CONVERT_INTEGER", _wrap_python_const_SQL_CONVERT_INTEGER); _wrap_python_const_SQL_CONVERT_LONGVARCHAR = PyInt_FromLong(62); PyDict_SetItemString(d,"SQL_CONVERT_LONGVARCHAR", _wrap_python_const_SQL_CONVERT_LONGVARCHAR); _wrap_python_const_SQL_CONVERT_NUMERIC = PyInt_FromLong(63); PyDict_SetItemString(d,"SQL_CONVERT_NUMERIC", _wrap_python_const_SQL_CONVERT_NUMERIC); _wrap_python_const_SQL_CONVERT_REAL = PyInt_FromLong(64); PyDict_SetItemString(d,"SQL_CONVERT_REAL", _wrap_python_const_SQL_CONVERT_REAL); _wrap_python_const_SQL_CONVERT_SMALLINT = PyInt_FromLong(65); PyDict_SetItemString(d,"SQL_CONVERT_SMALLINT", _wrap_python_const_SQL_CONVERT_SMALLINT); _wrap_python_const_SQL_CONVERT_TIME = PyInt_FromLong(66); PyDict_SetItemString(d,"SQL_CONVERT_TIME", _wrap_python_const_SQL_CONVERT_TIME); _wrap_python_const_SQL_CONVERT_TIMESTAMP = PyInt_FromLong(67); PyDict_SetItemString(d,"SQL_CONVERT_TIMESTAMP", _wrap_python_const_SQL_CONVERT_TIMESTAMP); _wrap_python_const_SQL_CONVERT_TINYINT = PyInt_FromLong(68); PyDict_SetItemString(d,"SQL_CONVERT_TINYINT", _wrap_python_const_SQL_CONVERT_TINYINT); _wrap_python_const_SQL_CONVERT_VARBINARY = PyInt_FromLong(69); PyDict_SetItemString(d,"SQL_CONVERT_VARBINARY", _wrap_python_const_SQL_CONVERT_VARBINARY); _wrap_python_const_SQL_CONVERT_VARCHAR = PyInt_FromLong(70); PyDict_SetItemString(d,"SQL_CONVERT_VARCHAR", _wrap_python_const_SQL_CONVERT_VARCHAR); _wrap_python_const_SQL_CONVERT_LONGVARBINARY = PyInt_FromLong(71); PyDict_SetItemString(d,"SQL_CONVERT_LONGVARBINARY", _wrap_python_const_SQL_CONVERT_LONGVARBINARY); _wrap_python_const_SQL_TXN_ISOLATION_OPTION = PyInt_FromLong(72); PyDict_SetItemString(d,"SQL_TXN_ISOLATION_OPTION", _wrap_python_const_SQL_TXN_ISOLATION_OPTION); _wrap_python_const_SQL_ODBC_SQL_OPT_IEF = PyInt_FromLong(73); PyDict_SetItemString(d,"SQL_ODBC_SQL_OPT_IEF", _wrap_python_const_SQL_ODBC_SQL_OPT_IEF); _wrap_python_const_SQL_CORRELATION_NAME = PyInt_FromLong(74); PyDict_SetItemString(d,"SQL_CORRELATION_NAME", _wrap_python_const_SQL_CORRELATION_NAME); _wrap_python_const_SQL_NON_NULLABLE_COLUMNS = PyInt_FromLong(75); PyDict_SetItemString(d,"SQL_NON_NULLABLE_COLUMNS", _wrap_python_const_SQL_NON_NULLABLE_COLUMNS); _wrap_python_const_SQL_DRIVER_HLIB = PyInt_FromLong(76); PyDict_SetItemString(d,"SQL_DRIVER_HLIB", _wrap_python_const_SQL_DRIVER_HLIB); _wrap_python_const_SQL_DRIVER_ODBC_VER = PyInt_FromLong(77); PyDict_SetItemString(d,"SQL_DRIVER_ODBC_VER", _wrap_python_const_SQL_DRIVER_ODBC_VER); _wrap_python_const_SQL_LOCK_TYPES = PyInt_FromLong(78); PyDict_SetItemString(d,"SQL_LOCK_TYPES", _wrap_python_const_SQL_LOCK_TYPES); _wrap_python_const_SQL_POS_OPERATIONS = PyInt_FromLong(79); PyDict_SetItemString(d,"SQL_POS_OPERATIONS", _wrap_python_const_SQL_POS_OPERATIONS); _wrap_python_const_SQL_POSITIONED_STATEMENTS = PyInt_FromLong(80); PyDict_SetItemString(d,"SQL_POSITIONED_STATEMENTS", _wrap_python_const_SQL_POSITIONED_STATEMENTS); _wrap_python_const_SQL_GETDATA_EXTENSIONS = PyInt_FromLong(81); PyDict_SetItemString(d,"SQL_GETDATA_EXTENSIONS", _wrap_python_const_SQL_GETDATA_EXTENSIONS); _wrap_python_const_SQL_BOOKMARK_PERSISTENCE = PyInt_FromLong(82); PyDict_SetItemString(d,"SQL_BOOKMARK_PERSISTENCE", _wrap_python_const_SQL_BOOKMARK_PERSISTENCE); _wrap_python_const_SQL_STATIC_SENSITIVITY = PyInt_FromLong(83); PyDict_SetItemString(d,"SQL_STATIC_SENSITIVITY", _wrap_python_const_SQL_STATIC_SENSITIVITY); _wrap_python_const_SQL_FILE_USAGE = PyInt_FromLong(84); PyDict_SetItemString(d,"SQL_FILE_USAGE", _wrap_python_const_SQL_FILE_USAGE); _wrap_python_const_SQL_NULL_COLLATION = PyInt_FromLong(85); PyDict_SetItemString(d,"SQL_NULL_COLLATION", _wrap_python_const_SQL_NULL_COLLATION); _wrap_python_const_SQL_ALTER_TABLE = PyInt_FromLong(86); PyDict_SetItemString(d,"SQL_ALTER_TABLE", _wrap_python_const_SQL_ALTER_TABLE); _wrap_python_const_SQL_COLUMN_ALIAS = PyInt_FromLong(87); PyDict_SetItemString(d,"SQL_COLUMN_ALIAS", _wrap_python_const_SQL_COLUMN_ALIAS); _wrap_python_const_SQL_GROUP_BY = PyInt_FromLong(88); PyDict_SetItemString(d,"SQL_GROUP_BY", _wrap_python_const_SQL_GROUP_BY); _wrap_python_const_SQL_KEYWORDS = PyInt_FromLong(89); PyDict_SetItemString(d,"SQL_KEYWORDS", _wrap_python_const_SQL_KEYWORDS); _wrap_python_const_SQL_ORDER_BY_COLUMNS_IN_SELECT = PyInt_FromLong(90); PyDict_SetItemString(d,"SQL_ORDER_BY_COLUMNS_IN_SELECT", _wrap_python_const_SQL_ORDER_BY_COLUMNS_IN_SELECT); _wrap_python_const_SQL_OWNER_USAGE = PyInt_FromLong(91); PyDict_SetItemString(d,"SQL_OWNER_USAGE", _wrap_python_const_SQL_OWNER_USAGE); _wrap_python_const_SQL_QUALIFIER_USAGE = PyInt_FromLong(92); PyDict_SetItemString(d,"SQL_QUALIFIER_USAGE", _wrap_python_const_SQL_QUALIFIER_USAGE); _wrap_python_const_SQL_QUOTED_IDENTIFIER_CASE = PyInt_FromLong(93); PyDict_SetItemString(d,"SQL_QUOTED_IDENTIFIER_CASE", _wrap_python_const_SQL_QUOTED_IDENTIFIER_CASE); _wrap_python_const_SQL_SPECIAL_CHARACTERS = PyInt_FromLong(94); PyDict_SetItemString(d,"SQL_SPECIAL_CHARACTERS", _wrap_python_const_SQL_SPECIAL_CHARACTERS); _wrap_python_const_SQL_SUBQUERIES = PyInt_FromLong(95); PyDict_SetItemString(d,"SQL_SUBQUERIES", _wrap_python_const_SQL_SUBQUERIES); _wrap_python_const_SQL_UNION = PyInt_FromLong(96); PyDict_SetItemString(d,"SQL_UNION", _wrap_python_const_SQL_UNION); _wrap_python_const_SQL_MAX_COLUMNS_IN_GROUP_BY = PyInt_FromLong(97); PyDict_SetItemString(d,"SQL_MAX_COLUMNS_IN_GROUP_BY", _wrap_python_const_SQL_MAX_COLUMNS_IN_GROUP_BY); _wrap_python_const_SQL_MAX_COLUMNS_IN_INDEX = PyInt_FromLong(98); PyDict_SetItemString(d,"SQL_MAX_COLUMNS_IN_INDEX", _wrap_python_const_SQL_MAX_COLUMNS_IN_INDEX); _wrap_python_const_SQL_MAX_COLUMNS_IN_ORDER_BY = PyInt_FromLong(99); PyDict_SetItemString(d,"SQL_MAX_COLUMNS_IN_ORDER_BY", _wrap_python_const_SQL_MAX_COLUMNS_IN_ORDER_BY); _wrap_python_const_SQL_MAX_COLUMNS_IN_SELECT = PyInt_FromLong(100); PyDict_SetItemString(d,"SQL_MAX_COLUMNS_IN_SELECT", _wrap_python_const_SQL_MAX_COLUMNS_IN_SELECT); _wrap_python_const_SQL_MAX_COLUMNS_IN_TABLE = PyInt_FromLong(101); PyDict_SetItemString(d,"SQL_MAX_COLUMNS_IN_TABLE", _wrap_python_const_SQL_MAX_COLUMNS_IN_TABLE); _wrap_python_const_SQL_MAX_INDEX_SIZE = PyInt_FromLong(102); PyDict_SetItemString(d,"SQL_MAX_INDEX_SIZE", _wrap_python_const_SQL_MAX_INDEX_SIZE); _wrap_python_const_SQL_MAX_ROW_SIZE_INCLUDES_LONG = PyInt_FromLong(103); PyDict_SetItemString(d,"SQL_MAX_ROW_SIZE_INCLUDES_LONG", _wrap_python_const_SQL_MAX_ROW_SIZE_INCLUDES_LONG); _wrap_python_const_SQL_MAX_ROW_SIZE = PyInt_FromLong(104); PyDict_SetItemString(d,"SQL_MAX_ROW_SIZE", _wrap_python_const_SQL_MAX_ROW_SIZE); _wrap_python_const_SQL_MAX_STATEMENT_LEN = PyInt_FromLong(105); PyDict_SetItemString(d,"SQL_MAX_STATEMENT_LEN", _wrap_python_const_SQL_MAX_STATEMENT_LEN); _wrap_python_const_SQL_MAX_TABLES_IN_SELECT = PyInt_FromLong(106); PyDict_SetItemString(d,"SQL_MAX_TABLES_IN_SELECT", _wrap_python_const_SQL_MAX_TABLES_IN_SELECT); _wrap_python_const_SQL_MAX_USER_NAME_LEN = PyInt_FromLong(107); PyDict_SetItemString(d,"SQL_MAX_USER_NAME_LEN", _wrap_python_const_SQL_MAX_USER_NAME_LEN); _wrap_python_const_SQL_MAX_CHAR_LITERAL_LEN = PyInt_FromLong(108); PyDict_SetItemString(d,"SQL_MAX_CHAR_LITERAL_LEN", _wrap_python_const_SQL_MAX_CHAR_LITERAL_LEN); _wrap_python_const_SQL_TIMEDATE_ADD_INTERVALS = PyInt_FromLong(109); PyDict_SetItemString(d,"SQL_TIMEDATE_ADD_INTERVALS", _wrap_python_const_SQL_TIMEDATE_ADD_INTERVALS); _wrap_python_const_SQL_TIMEDATE_DIFF_INTERVALS = PyInt_FromLong(110); PyDict_SetItemString(d,"SQL_TIMEDATE_DIFF_INTERVALS", _wrap_python_const_SQL_TIMEDATE_DIFF_INTERVALS); _wrap_python_const_SQL_NEED_LONG_DATA_LEN = PyInt_FromLong(111); PyDict_SetItemString(d,"SQL_NEED_LONG_DATA_LEN", _wrap_python_const_SQL_NEED_LONG_DATA_LEN); _wrap_python_const_SQL_MAX_BINARY_LITERAL_LEN = PyInt_FromLong(112); PyDict_SetItemString(d,"SQL_MAX_BINARY_LITERAL_LEN", _wrap_python_const_SQL_MAX_BINARY_LITERAL_LEN); _wrap_python_const_SQL_LIKE_ESCAPE_CLAUSE = PyInt_FromLong(113); PyDict_SetItemString(d,"SQL_LIKE_ESCAPE_CLAUSE", _wrap_python_const_SQL_LIKE_ESCAPE_CLAUSE); _wrap_python_const_SQL_QUALIFIER_LOCATION = PyInt_FromLong(114); PyDict_SetItemString(d,"SQL_QUALIFIER_LOCATION", _wrap_python_const_SQL_QUALIFIER_LOCATION); _wrap_python_const_SQL_OJ_CAPABILITIES = PyInt_FromLong(65003); PyDict_SetItemString(d,"SQL_OJ_CAPABILITIES", _wrap_python_const_SQL_OJ_CAPABILITIES); _wrap_python_const_SQL_INFO_LAST = PyInt_FromLong((114)); PyDict_SetItemString(d,"SQL_INFO_LAST", _wrap_python_const_SQL_INFO_LAST); _wrap_python_const_SQL_INFO_DRIVER_START = PyInt_FromLong(1000); PyDict_SetItemString(d,"SQL_INFO_DRIVER_START", _wrap_python_const_SQL_INFO_DRIVER_START); _wrap_python_const_SQL_CVT_CHAR = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_CVT_CHAR", _wrap_python_const_SQL_CVT_CHAR); _wrap_python_const_SQL_CVT_NUMERIC = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_CVT_NUMERIC", _wrap_python_const_SQL_CVT_NUMERIC); _wrap_python_const_SQL_CVT_DECIMAL = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_CVT_DECIMAL", _wrap_python_const_SQL_CVT_DECIMAL); _wrap_python_const_SQL_CVT_INTEGER = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_CVT_INTEGER", _wrap_python_const_SQL_CVT_INTEGER); _wrap_python_const_SQL_CVT_SMALLINT = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_CVT_SMALLINT", _wrap_python_const_SQL_CVT_SMALLINT); _wrap_python_const_SQL_CVT_FLOAT = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_CVT_FLOAT", _wrap_python_const_SQL_CVT_FLOAT); _wrap_python_const_SQL_CVT_REAL = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_CVT_REAL", _wrap_python_const_SQL_CVT_REAL); _wrap_python_const_SQL_CVT_DOUBLE = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_CVT_DOUBLE", _wrap_python_const_SQL_CVT_DOUBLE); _wrap_python_const_SQL_CVT_VARCHAR = PyInt_FromLong(0x00000100L); PyDict_SetItemString(d,"SQL_CVT_VARCHAR", _wrap_python_const_SQL_CVT_VARCHAR); _wrap_python_const_SQL_CVT_LONGVARCHAR = PyInt_FromLong(0x00000200L); PyDict_SetItemString(d,"SQL_CVT_LONGVARCHAR", _wrap_python_const_SQL_CVT_LONGVARCHAR); _wrap_python_const_SQL_CVT_BINARY = PyInt_FromLong(0x00000400L); PyDict_SetItemString(d,"SQL_CVT_BINARY", _wrap_python_const_SQL_CVT_BINARY); _wrap_python_const_SQL_CVT_VARBINARY = PyInt_FromLong(0x00000800L); PyDict_SetItemString(d,"SQL_CVT_VARBINARY", _wrap_python_const_SQL_CVT_VARBINARY); _wrap_python_const_SQL_CVT_BIT = PyInt_FromLong(0x00001000L); PyDict_SetItemString(d,"SQL_CVT_BIT", _wrap_python_const_SQL_CVT_BIT); _wrap_python_const_SQL_CVT_TINYINT = PyInt_FromLong(0x00002000L); PyDict_SetItemString(d,"SQL_CVT_TINYINT", _wrap_python_const_SQL_CVT_TINYINT); _wrap_python_const_SQL_CVT_BIGINT = PyInt_FromLong(0x00004000L); PyDict_SetItemString(d,"SQL_CVT_BIGINT", _wrap_python_const_SQL_CVT_BIGINT); _wrap_python_const_SQL_CVT_DATE = PyInt_FromLong(0x00008000L); PyDict_SetItemString(d,"SQL_CVT_DATE", _wrap_python_const_SQL_CVT_DATE); _wrap_python_const_SQL_CVT_TIME = PyInt_FromLong(0x00010000L); PyDict_SetItemString(d,"SQL_CVT_TIME", _wrap_python_const_SQL_CVT_TIME); _wrap_python_const_SQL_CVT_TIMESTAMP = PyInt_FromLong(0x00020000L); PyDict_SetItemString(d,"SQL_CVT_TIMESTAMP", _wrap_python_const_SQL_CVT_TIMESTAMP); _wrap_python_const_SQL_CVT_LONGVARBINARY = PyInt_FromLong(0x00040000L); PyDict_SetItemString(d,"SQL_CVT_LONGVARBINARY", _wrap_python_const_SQL_CVT_LONGVARBINARY); _wrap_python_const_SQL_FN_CVT_CONVERT = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_CVT_CONVERT", _wrap_python_const_SQL_FN_CVT_CONVERT); _wrap_python_const_SQL_FN_STR_CONCAT = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_STR_CONCAT", _wrap_python_const_SQL_FN_STR_CONCAT); _wrap_python_const_SQL_FN_STR_INSERT = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FN_STR_INSERT", _wrap_python_const_SQL_FN_STR_INSERT); _wrap_python_const_SQL_FN_STR_LEFT = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FN_STR_LEFT", _wrap_python_const_SQL_FN_STR_LEFT); _wrap_python_const_SQL_FN_STR_LTRIM = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_FN_STR_LTRIM", _wrap_python_const_SQL_FN_STR_LTRIM); _wrap_python_const_SQL_FN_STR_LENGTH = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_FN_STR_LENGTH", _wrap_python_const_SQL_FN_STR_LENGTH); _wrap_python_const_SQL_FN_STR_LOCATE = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_FN_STR_LOCATE", _wrap_python_const_SQL_FN_STR_LOCATE); _wrap_python_const_SQL_FN_STR_LCASE = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_FN_STR_LCASE", _wrap_python_const_SQL_FN_STR_LCASE); _wrap_python_const_SQL_FN_STR_REPEAT = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_FN_STR_REPEAT", _wrap_python_const_SQL_FN_STR_REPEAT); _wrap_python_const_SQL_FN_STR_REPLACE = PyInt_FromLong(0x00000100L); PyDict_SetItemString(d,"SQL_FN_STR_REPLACE", _wrap_python_const_SQL_FN_STR_REPLACE); _wrap_python_const_SQL_FN_STR_RIGHT = PyInt_FromLong(0x00000200L); PyDict_SetItemString(d,"SQL_FN_STR_RIGHT", _wrap_python_const_SQL_FN_STR_RIGHT); _wrap_python_const_SQL_FN_STR_RTRIM = PyInt_FromLong(0x00000400L); PyDict_SetItemString(d,"SQL_FN_STR_RTRIM", _wrap_python_const_SQL_FN_STR_RTRIM); _wrap_python_const_SQL_FN_STR_SUBSTRING = PyInt_FromLong(0x00000800L); PyDict_SetItemString(d,"SQL_FN_STR_SUBSTRING", _wrap_python_const_SQL_FN_STR_SUBSTRING); _wrap_python_const_SQL_FN_STR_UCASE = PyInt_FromLong(0x00001000L); PyDict_SetItemString(d,"SQL_FN_STR_UCASE", _wrap_python_const_SQL_FN_STR_UCASE); _wrap_python_const_SQL_FN_STR_ASCII = PyInt_FromLong(0x00002000L); PyDict_SetItemString(d,"SQL_FN_STR_ASCII", _wrap_python_const_SQL_FN_STR_ASCII); _wrap_python_const_SQL_FN_STR_CHAR = PyInt_FromLong(0x00004000L); PyDict_SetItemString(d,"SQL_FN_STR_CHAR", _wrap_python_const_SQL_FN_STR_CHAR); _wrap_python_const_SQL_FN_STR_DIFFERENCE = PyInt_FromLong(0x00008000L); PyDict_SetItemString(d,"SQL_FN_STR_DIFFERENCE", _wrap_python_const_SQL_FN_STR_DIFFERENCE); _wrap_python_const_SQL_FN_STR_LOCATE_2 = PyInt_FromLong(0x00010000L); PyDict_SetItemString(d,"SQL_FN_STR_LOCATE_2", _wrap_python_const_SQL_FN_STR_LOCATE_2); _wrap_python_const_SQL_FN_STR_SOUNDEX = PyInt_FromLong(0x00020000L); PyDict_SetItemString(d,"SQL_FN_STR_SOUNDEX", _wrap_python_const_SQL_FN_STR_SOUNDEX); _wrap_python_const_SQL_FN_STR_SPACE = PyInt_FromLong(0x00040000L); PyDict_SetItemString(d,"SQL_FN_STR_SPACE", _wrap_python_const_SQL_FN_STR_SPACE); _wrap_python_const_SQL_FN_NUM_ABS = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_NUM_ABS", _wrap_python_const_SQL_FN_NUM_ABS); _wrap_python_const_SQL_FN_NUM_ACOS = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FN_NUM_ACOS", _wrap_python_const_SQL_FN_NUM_ACOS); _wrap_python_const_SQL_FN_NUM_ASIN = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FN_NUM_ASIN", _wrap_python_const_SQL_FN_NUM_ASIN); _wrap_python_const_SQL_FN_NUM_ATAN = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_FN_NUM_ATAN", _wrap_python_const_SQL_FN_NUM_ATAN); _wrap_python_const_SQL_FN_NUM_ATAN2 = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_FN_NUM_ATAN2", _wrap_python_const_SQL_FN_NUM_ATAN2); _wrap_python_const_SQL_FN_NUM_CEILING = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_FN_NUM_CEILING", _wrap_python_const_SQL_FN_NUM_CEILING); _wrap_python_const_SQL_FN_NUM_COS = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_FN_NUM_COS", _wrap_python_const_SQL_FN_NUM_COS); _wrap_python_const_SQL_FN_NUM_COT = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_FN_NUM_COT", _wrap_python_const_SQL_FN_NUM_COT); _wrap_python_const_SQL_FN_NUM_EXP = PyInt_FromLong(0x00000100L); PyDict_SetItemString(d,"SQL_FN_NUM_EXP", _wrap_python_const_SQL_FN_NUM_EXP); _wrap_python_const_SQL_FN_NUM_FLOOR = PyInt_FromLong(0x00000200L); PyDict_SetItemString(d,"SQL_FN_NUM_FLOOR", _wrap_python_const_SQL_FN_NUM_FLOOR); _wrap_python_const_SQL_FN_NUM_LOG = PyInt_FromLong(0x00000400L); PyDict_SetItemString(d,"SQL_FN_NUM_LOG", _wrap_python_const_SQL_FN_NUM_LOG); _wrap_python_const_SQL_FN_NUM_MOD = PyInt_FromLong(0x00000800L); PyDict_SetItemString(d,"SQL_FN_NUM_MOD", _wrap_python_const_SQL_FN_NUM_MOD); _wrap_python_const_SQL_FN_NUM_SIGN = PyInt_FromLong(0x00001000L); PyDict_SetItemString(d,"SQL_FN_NUM_SIGN", _wrap_python_const_SQL_FN_NUM_SIGN); _wrap_python_const_SQL_FN_NUM_SIN = PyInt_FromLong(0x00002000L); PyDict_SetItemString(d,"SQL_FN_NUM_SIN", _wrap_python_const_SQL_FN_NUM_SIN); _wrap_python_const_SQL_FN_NUM_SQRT = PyInt_FromLong(0x00004000L); PyDict_SetItemString(d,"SQL_FN_NUM_SQRT", _wrap_python_const_SQL_FN_NUM_SQRT); _wrap_python_const_SQL_FN_NUM_TAN = PyInt_FromLong(0x00008000L); PyDict_SetItemString(d,"SQL_FN_NUM_TAN", _wrap_python_const_SQL_FN_NUM_TAN); _wrap_python_const_SQL_FN_NUM_PI = PyInt_FromLong(0x00010000L); PyDict_SetItemString(d,"SQL_FN_NUM_PI", _wrap_python_const_SQL_FN_NUM_PI); _wrap_python_const_SQL_FN_NUM_RAND = PyInt_FromLong(0x00020000L); PyDict_SetItemString(d,"SQL_FN_NUM_RAND", _wrap_python_const_SQL_FN_NUM_RAND); _wrap_python_const_SQL_FN_NUM_DEGREES = PyInt_FromLong(0x00040000L); PyDict_SetItemString(d,"SQL_FN_NUM_DEGREES", _wrap_python_const_SQL_FN_NUM_DEGREES); _wrap_python_const_SQL_FN_NUM_LOG10 = PyInt_FromLong(0x00080000L); PyDict_SetItemString(d,"SQL_FN_NUM_LOG10", _wrap_python_const_SQL_FN_NUM_LOG10); _wrap_python_const_SQL_FN_NUM_POWER = PyInt_FromLong(0x00100000L); PyDict_SetItemString(d,"SQL_FN_NUM_POWER", _wrap_python_const_SQL_FN_NUM_POWER); _wrap_python_const_SQL_FN_NUM_RADIANS = PyInt_FromLong(0x00200000L); PyDict_SetItemString(d,"SQL_FN_NUM_RADIANS", _wrap_python_const_SQL_FN_NUM_RADIANS); _wrap_python_const_SQL_FN_NUM_ROUND = PyInt_FromLong(0x00400000L); PyDict_SetItemString(d,"SQL_FN_NUM_ROUND", _wrap_python_const_SQL_FN_NUM_ROUND); _wrap_python_const_SQL_FN_NUM_TRUNCATE = PyInt_FromLong(0x00800000L); PyDict_SetItemString(d,"SQL_FN_NUM_TRUNCATE", _wrap_python_const_SQL_FN_NUM_TRUNCATE); _wrap_python_const_SQL_FN_TD_NOW = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_TD_NOW", _wrap_python_const_SQL_FN_TD_NOW); _wrap_python_const_SQL_FN_TD_CURDATE = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FN_TD_CURDATE", _wrap_python_const_SQL_FN_TD_CURDATE); _wrap_python_const_SQL_FN_TD_DAYOFMONTH = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FN_TD_DAYOFMONTH", _wrap_python_const_SQL_FN_TD_DAYOFMONTH); _wrap_python_const_SQL_FN_TD_DAYOFWEEK = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_FN_TD_DAYOFWEEK", _wrap_python_const_SQL_FN_TD_DAYOFWEEK); _wrap_python_const_SQL_FN_TD_DAYOFYEAR = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_FN_TD_DAYOFYEAR", _wrap_python_const_SQL_FN_TD_DAYOFYEAR); _wrap_python_const_SQL_FN_TD_MONTH = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_FN_TD_MONTH", _wrap_python_const_SQL_FN_TD_MONTH); _wrap_python_const_SQL_FN_TD_QUARTER = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_FN_TD_QUARTER", _wrap_python_const_SQL_FN_TD_QUARTER); _wrap_python_const_SQL_FN_TD_WEEK = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_FN_TD_WEEK", _wrap_python_const_SQL_FN_TD_WEEK); _wrap_python_const_SQL_FN_TD_YEAR = PyInt_FromLong(0x00000100L); PyDict_SetItemString(d,"SQL_FN_TD_YEAR", _wrap_python_const_SQL_FN_TD_YEAR); _wrap_python_const_SQL_FN_TD_CURTIME = PyInt_FromLong(0x00000200L); PyDict_SetItemString(d,"SQL_FN_TD_CURTIME", _wrap_python_const_SQL_FN_TD_CURTIME); _wrap_python_const_SQL_FN_TD_HOUR = PyInt_FromLong(0x00000400L); PyDict_SetItemString(d,"SQL_FN_TD_HOUR", _wrap_python_const_SQL_FN_TD_HOUR); _wrap_python_const_SQL_FN_TD_MINUTE = PyInt_FromLong(0x00000800L); PyDict_SetItemString(d,"SQL_FN_TD_MINUTE", _wrap_python_const_SQL_FN_TD_MINUTE); _wrap_python_const_SQL_FN_TD_SECOND = PyInt_FromLong(0x00001000L); PyDict_SetItemString(d,"SQL_FN_TD_SECOND", _wrap_python_const_SQL_FN_TD_SECOND); _wrap_python_const_SQL_FN_TD_TIMESTAMPADD = PyInt_FromLong(0x00002000L); PyDict_SetItemString(d,"SQL_FN_TD_TIMESTAMPADD", _wrap_python_const_SQL_FN_TD_TIMESTAMPADD); _wrap_python_const_SQL_FN_TD_TIMESTAMPDIFF = PyInt_FromLong(0x00004000L); PyDict_SetItemString(d,"SQL_FN_TD_TIMESTAMPDIFF", _wrap_python_const_SQL_FN_TD_TIMESTAMPDIFF); _wrap_python_const_SQL_FN_TD_DAYNAME = PyInt_FromLong(0x00008000L); PyDict_SetItemString(d,"SQL_FN_TD_DAYNAME", _wrap_python_const_SQL_FN_TD_DAYNAME); _wrap_python_const_SQL_FN_TD_MONTHNAME = PyInt_FromLong(0x00010000L); PyDict_SetItemString(d,"SQL_FN_TD_MONTHNAME", _wrap_python_const_SQL_FN_TD_MONTHNAME); _wrap_python_const_SQL_FN_SYS_USERNAME = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_SYS_USERNAME", _wrap_python_const_SQL_FN_SYS_USERNAME); _wrap_python_const_SQL_FN_SYS_DBNAME = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FN_SYS_DBNAME", _wrap_python_const_SQL_FN_SYS_DBNAME); _wrap_python_const_SQL_FN_SYS_IFNULL = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FN_SYS_IFNULL", _wrap_python_const_SQL_FN_SYS_IFNULL); _wrap_python_const_SQL_FN_TSI_FRAC_SECOND = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FN_TSI_FRAC_SECOND", _wrap_python_const_SQL_FN_TSI_FRAC_SECOND); _wrap_python_const_SQL_FN_TSI_SECOND = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FN_TSI_SECOND", _wrap_python_const_SQL_FN_TSI_SECOND); _wrap_python_const_SQL_FN_TSI_MINUTE = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FN_TSI_MINUTE", _wrap_python_const_SQL_FN_TSI_MINUTE); _wrap_python_const_SQL_FN_TSI_HOUR = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_FN_TSI_HOUR", _wrap_python_const_SQL_FN_TSI_HOUR); _wrap_python_const_SQL_FN_TSI_DAY = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_FN_TSI_DAY", _wrap_python_const_SQL_FN_TSI_DAY); _wrap_python_const_SQL_FN_TSI_WEEK = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_FN_TSI_WEEK", _wrap_python_const_SQL_FN_TSI_WEEK); _wrap_python_const_SQL_FN_TSI_MONTH = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_FN_TSI_MONTH", _wrap_python_const_SQL_FN_TSI_MONTH); _wrap_python_const_SQL_FN_TSI_QUARTER = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_FN_TSI_QUARTER", _wrap_python_const_SQL_FN_TSI_QUARTER); _wrap_python_const_SQL_FN_TSI_YEAR = PyInt_FromLong(0x00000100L); PyDict_SetItemString(d,"SQL_FN_TSI_YEAR", _wrap_python_const_SQL_FN_TSI_YEAR); _wrap_python_const_SQL_OAC_NONE = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_OAC_NONE", _wrap_python_const_SQL_OAC_NONE); _wrap_python_const_SQL_OAC_LEVEL1 = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_OAC_LEVEL1", _wrap_python_const_SQL_OAC_LEVEL1); _wrap_python_const_SQL_OAC_LEVEL2 = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_OAC_LEVEL2", _wrap_python_const_SQL_OAC_LEVEL2); _wrap_python_const_SQL_OSCC_NOT_COMPLIANT = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_OSCC_NOT_COMPLIANT", _wrap_python_const_SQL_OSCC_NOT_COMPLIANT); _wrap_python_const_SQL_OSCC_COMPLIANT = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_OSCC_COMPLIANT", _wrap_python_const_SQL_OSCC_COMPLIANT); _wrap_python_const_SQL_OSC_MINIMUM = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_OSC_MINIMUM", _wrap_python_const_SQL_OSC_MINIMUM); _wrap_python_const_SQL_OSC_CORE = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_OSC_CORE", _wrap_python_const_SQL_OSC_CORE); _wrap_python_const_SQL_OSC_EXTENDED = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_OSC_EXTENDED", _wrap_python_const_SQL_OSC_EXTENDED); _wrap_python_const_SQL_CB_NULL = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_CB_NULL", _wrap_python_const_SQL_CB_NULL); _wrap_python_const_SQL_CB_NON_NULL = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_CB_NON_NULL", _wrap_python_const_SQL_CB_NON_NULL); _wrap_python_const_SQL_CB_DELETE = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_CB_DELETE", _wrap_python_const_SQL_CB_DELETE); _wrap_python_const_SQL_CB_CLOSE = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_CB_CLOSE", _wrap_python_const_SQL_CB_CLOSE); _wrap_python_const_SQL_CB_PRESERVE = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_CB_PRESERVE", _wrap_python_const_SQL_CB_PRESERVE); _wrap_python_const_SQL_IC_UPPER = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_IC_UPPER", _wrap_python_const_SQL_IC_UPPER); _wrap_python_const_SQL_IC_LOWER = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_IC_LOWER", _wrap_python_const_SQL_IC_LOWER); _wrap_python_const_SQL_IC_SENSITIVE = PyInt_FromLong(0x0003); PyDict_SetItemString(d,"SQL_IC_SENSITIVE", _wrap_python_const_SQL_IC_SENSITIVE); _wrap_python_const_SQL_IC_MIXED = PyInt_FromLong(0x0004); PyDict_SetItemString(d,"SQL_IC_MIXED", _wrap_python_const_SQL_IC_MIXED); _wrap_python_const_SQL_TC_NONE = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_TC_NONE", _wrap_python_const_SQL_TC_NONE); _wrap_python_const_SQL_TC_DML = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_TC_DML", _wrap_python_const_SQL_TC_DML); _wrap_python_const_SQL_TC_ALL = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_TC_ALL", _wrap_python_const_SQL_TC_ALL); _wrap_python_const_SQL_TC_DDL_COMMIT = PyInt_FromLong(0x0003); PyDict_SetItemString(d,"SQL_TC_DDL_COMMIT", _wrap_python_const_SQL_TC_DDL_COMMIT); _wrap_python_const_SQL_TC_DDL_IGNORE = PyInt_FromLong(0x0004); PyDict_SetItemString(d,"SQL_TC_DDL_IGNORE", _wrap_python_const_SQL_TC_DDL_IGNORE); _wrap_python_const_SQL_SO_FORWARD_ONLY = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_SO_FORWARD_ONLY", _wrap_python_const_SQL_SO_FORWARD_ONLY); _wrap_python_const_SQL_SO_KEYSET_DRIVEN = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_SO_KEYSET_DRIVEN", _wrap_python_const_SQL_SO_KEYSET_DRIVEN); _wrap_python_const_SQL_SO_DYNAMIC = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_SO_DYNAMIC", _wrap_python_const_SQL_SO_DYNAMIC); _wrap_python_const_SQL_SO_MIXED = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_SO_MIXED", _wrap_python_const_SQL_SO_MIXED); _wrap_python_const_SQL_SO_STATIC = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_SO_STATIC", _wrap_python_const_SQL_SO_STATIC); _wrap_python_const_SQL_SCCO_READ_ONLY = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_SCCO_READ_ONLY", _wrap_python_const_SQL_SCCO_READ_ONLY); _wrap_python_const_SQL_SCCO_LOCK = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_SCCO_LOCK", _wrap_python_const_SQL_SCCO_LOCK); _wrap_python_const_SQL_SCCO_OPT_ROWVER = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_SCCO_OPT_ROWVER", _wrap_python_const_SQL_SCCO_OPT_ROWVER); _wrap_python_const_SQL_SCCO_OPT_VALUES = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_SCCO_OPT_VALUES", _wrap_python_const_SQL_SCCO_OPT_VALUES); _wrap_python_const_SQL_FD_FETCH_NEXT = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_FD_FETCH_NEXT", _wrap_python_const_SQL_FD_FETCH_NEXT); _wrap_python_const_SQL_FD_FETCH_FIRST = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_FD_FETCH_FIRST", _wrap_python_const_SQL_FD_FETCH_FIRST); _wrap_python_const_SQL_FD_FETCH_LAST = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_FD_FETCH_LAST", _wrap_python_const_SQL_FD_FETCH_LAST); _wrap_python_const_SQL_FD_FETCH_PRIOR = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_FD_FETCH_PRIOR", _wrap_python_const_SQL_FD_FETCH_PRIOR); _wrap_python_const_SQL_FD_FETCH_ABSOLUTE = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_FD_FETCH_ABSOLUTE", _wrap_python_const_SQL_FD_FETCH_ABSOLUTE); _wrap_python_const_SQL_FD_FETCH_RELATIVE = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_FD_FETCH_RELATIVE", _wrap_python_const_SQL_FD_FETCH_RELATIVE); _wrap_python_const_SQL_FD_FETCH_RESUME = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_FD_FETCH_RESUME", _wrap_python_const_SQL_FD_FETCH_RESUME); _wrap_python_const_SQL_FD_FETCH_BOOKMARK = PyInt_FromLong(0x00000080L); PyDict_SetItemString(d,"SQL_FD_FETCH_BOOKMARK", _wrap_python_const_SQL_FD_FETCH_BOOKMARK); _wrap_python_const_SQL_TXN_READ_UNCOMMITTED = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_TXN_READ_UNCOMMITTED", _wrap_python_const_SQL_TXN_READ_UNCOMMITTED); _wrap_python_const_SQL_TXN_READ_COMMITTED = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_TXN_READ_COMMITTED", _wrap_python_const_SQL_TXN_READ_COMMITTED); _wrap_python_const_SQL_TXN_REPEATABLE_READ = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_TXN_REPEATABLE_READ", _wrap_python_const_SQL_TXN_REPEATABLE_READ); _wrap_python_const_SQL_TXN_SERIALIZABLE = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_TXN_SERIALIZABLE", _wrap_python_const_SQL_TXN_SERIALIZABLE); _wrap_python_const_SQL_TXN_VERSIONING = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_TXN_VERSIONING", _wrap_python_const_SQL_TXN_VERSIONING); _wrap_python_const_SQL_CN_NONE = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_CN_NONE", _wrap_python_const_SQL_CN_NONE); _wrap_python_const_SQL_CN_DIFFERENT = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_CN_DIFFERENT", _wrap_python_const_SQL_CN_DIFFERENT); _wrap_python_const_SQL_CN_ANY = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_CN_ANY", _wrap_python_const_SQL_CN_ANY); _wrap_python_const_SQL_NNC_NULL = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_NNC_NULL", _wrap_python_const_SQL_NNC_NULL); _wrap_python_const_SQL_NNC_NON_NULL = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_NNC_NON_NULL", _wrap_python_const_SQL_NNC_NON_NULL); _wrap_python_const_SQL_NC_HIGH = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_NC_HIGH", _wrap_python_const_SQL_NC_HIGH); _wrap_python_const_SQL_NC_LOW = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_NC_LOW", _wrap_python_const_SQL_NC_LOW); _wrap_python_const_SQL_NC_START = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_NC_START", _wrap_python_const_SQL_NC_START); _wrap_python_const_SQL_NC_END = PyInt_FromLong(0x0004); PyDict_SetItemString(d,"SQL_NC_END", _wrap_python_const_SQL_NC_END); _wrap_python_const_SQL_FILE_NOT_SUPPORTED = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_FILE_NOT_SUPPORTED", _wrap_python_const_SQL_FILE_NOT_SUPPORTED); _wrap_python_const_SQL_FILE_TABLE = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_FILE_TABLE", _wrap_python_const_SQL_FILE_TABLE); _wrap_python_const_SQL_FILE_QUALIFIER = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_FILE_QUALIFIER", _wrap_python_const_SQL_FILE_QUALIFIER); _wrap_python_const_SQL_GD_ANY_COLUMN = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_GD_ANY_COLUMN", _wrap_python_const_SQL_GD_ANY_COLUMN); _wrap_python_const_SQL_GD_ANY_ORDER = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_GD_ANY_ORDER", _wrap_python_const_SQL_GD_ANY_ORDER); _wrap_python_const_SQL_GD_BLOCK = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_GD_BLOCK", _wrap_python_const_SQL_GD_BLOCK); _wrap_python_const_SQL_GD_BOUND = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_GD_BOUND", _wrap_python_const_SQL_GD_BOUND); _wrap_python_const_SQL_AT_ADD_COLUMN = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_AT_ADD_COLUMN", _wrap_python_const_SQL_AT_ADD_COLUMN); _wrap_python_const_SQL_AT_DROP_COLUMN = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_AT_DROP_COLUMN", _wrap_python_const_SQL_AT_DROP_COLUMN); _wrap_python_const_SQL_PS_POSITIONED_DELETE = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_PS_POSITIONED_DELETE", _wrap_python_const_SQL_PS_POSITIONED_DELETE); _wrap_python_const_SQL_PS_POSITIONED_UPDATE = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_PS_POSITIONED_UPDATE", _wrap_python_const_SQL_PS_POSITIONED_UPDATE); _wrap_python_const_SQL_PS_SELECT_FOR_UPDATE = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_PS_SELECT_FOR_UPDATE", _wrap_python_const_SQL_PS_SELECT_FOR_UPDATE); _wrap_python_const_SQL_GB_NOT_SUPPORTED = PyInt_FromLong(0x0000); PyDict_SetItemString(d,"SQL_GB_NOT_SUPPORTED", _wrap_python_const_SQL_GB_NOT_SUPPORTED); _wrap_python_const_SQL_GB_GROUP_BY_EQUALS_SELECT = PyInt_FromLong(0x0001); PyDict_SetItemString(d,"SQL_GB_GROUP_BY_EQUALS_SELECT", _wrap_python_const_SQL_GB_GROUP_BY_EQUALS_SELECT); _wrap_python_const_SQL_GB_GROUP_BY_CONTAINS_SELECT = PyInt_FromLong(0x0002); PyDict_SetItemString(d,"SQL_GB_GROUP_BY_CONTAINS_SELECT", _wrap_python_const_SQL_GB_GROUP_BY_CONTAINS_SELECT); _wrap_python_const_SQL_GB_NO_RELATION = PyInt_FromLong(0x0003); PyDict_SetItemString(d,"SQL_GB_NO_RELATION", _wrap_python_const_SQL_GB_NO_RELATION); _wrap_python_const_SQL_OU_DML_STATEMENTS = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_OU_DML_STATEMENTS", _wrap_python_const_SQL_OU_DML_STATEMENTS); _wrap_python_const_SQL_OU_PROCEDURE_INVOCATION = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_OU_PROCEDURE_INVOCATION", _wrap_python_const_SQL_OU_PROCEDURE_INVOCATION); _wrap_python_const_SQL_OU_TABLE_DEFINITION = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_OU_TABLE_DEFINITION", _wrap_python_const_SQL_OU_TABLE_DEFINITION); _wrap_python_const_SQL_OU_INDEX_DEFINITION = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_OU_INDEX_DEFINITION", _wrap_python_const_SQL_OU_INDEX_DEFINITION); _wrap_python_const_SQL_OU_PRIVILEGE_DEFINITION = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_OU_PRIVILEGE_DEFINITION", _wrap_python_const_SQL_OU_PRIVILEGE_DEFINITION); _wrap_python_const_SQL_QU_DML_STATEMENTS = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_QU_DML_STATEMENTS", _wrap_python_const_SQL_QU_DML_STATEMENTS); _wrap_python_const_SQL_QU_PROCEDURE_INVOCATION = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_QU_PROCEDURE_INVOCATION", _wrap_python_const_SQL_QU_PROCEDURE_INVOCATION); _wrap_python_const_SQL_QU_TABLE_DEFINITION = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_QU_TABLE_DEFINITION", _wrap_python_const_SQL_QU_TABLE_DEFINITION); _wrap_python_const_SQL_QU_INDEX_DEFINITION = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_QU_INDEX_DEFINITION", _wrap_python_const_SQL_QU_INDEX_DEFINITION); _wrap_python_const_SQL_QU_PRIVILEGE_DEFINITION = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_QU_PRIVILEGE_DEFINITION", _wrap_python_const_SQL_QU_PRIVILEGE_DEFINITION); _wrap_python_const_SQL_SQ_COMPARISON = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_SQ_COMPARISON", _wrap_python_const_SQL_SQ_COMPARISON); _wrap_python_const_SQL_SQ_EXISTS = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_SQ_EXISTS", _wrap_python_const_SQL_SQ_EXISTS); _wrap_python_const_SQL_SQ_IN = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_SQ_IN", _wrap_python_const_SQL_SQ_IN); _wrap_python_const_SQL_SQ_QUANTIFIED = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_SQ_QUANTIFIED", _wrap_python_const_SQL_SQ_QUANTIFIED); _wrap_python_const_SQL_SQ_CORRELATED_SUBQUERIES = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_SQ_CORRELATED_SUBQUERIES", _wrap_python_const_SQL_SQ_CORRELATED_SUBQUERIES); _wrap_python_const_SQL_U_UNION = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_U_UNION", _wrap_python_const_SQL_U_UNION); _wrap_python_const_SQL_U_UNION_ALL = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_U_UNION_ALL", _wrap_python_const_SQL_U_UNION_ALL); _wrap_python_const_SQL_BP_CLOSE = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_BP_CLOSE", _wrap_python_const_SQL_BP_CLOSE); _wrap_python_const_SQL_BP_DELETE = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_BP_DELETE", _wrap_python_const_SQL_BP_DELETE); _wrap_python_const_SQL_BP_DROP = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_BP_DROP", _wrap_python_const_SQL_BP_DROP); _wrap_python_const_SQL_BP_TRANSACTION = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_BP_TRANSACTION", _wrap_python_const_SQL_BP_TRANSACTION); _wrap_python_const_SQL_BP_UPDATE = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_BP_UPDATE", _wrap_python_const_SQL_BP_UPDATE); _wrap_python_const_SQL_BP_OTHER_HSTMT = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_BP_OTHER_HSTMT", _wrap_python_const_SQL_BP_OTHER_HSTMT); _wrap_python_const_SQL_BP_SCROLL = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_BP_SCROLL", _wrap_python_const_SQL_BP_SCROLL); _wrap_python_const_SQL_SS_ADDITIONS = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_SS_ADDITIONS", _wrap_python_const_SQL_SS_ADDITIONS); _wrap_python_const_SQL_SS_DELETIONS = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_SS_DELETIONS", _wrap_python_const_SQL_SS_DELETIONS); _wrap_python_const_SQL_SS_UPDATES = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_SS_UPDATES", _wrap_python_const_SQL_SS_UPDATES); _wrap_python_const_SQL_LCK_NO_CHANGE = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_LCK_NO_CHANGE", _wrap_python_const_SQL_LCK_NO_CHANGE); _wrap_python_const_SQL_LCK_EXCLUSIVE = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_LCK_EXCLUSIVE", _wrap_python_const_SQL_LCK_EXCLUSIVE); _wrap_python_const_SQL_LCK_UNLOCK = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_LCK_UNLOCK", _wrap_python_const_SQL_LCK_UNLOCK); _wrap_python_const_SQL_POS_POSITION = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_POS_POSITION", _wrap_python_const_SQL_POS_POSITION); _wrap_python_const_SQL_POS_REFRESH = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_POS_REFRESH", _wrap_python_const_SQL_POS_REFRESH); _wrap_python_const_SQL_POS_UPDATE = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_POS_UPDATE", _wrap_python_const_SQL_POS_UPDATE); _wrap_python_const_SQL_POS_DELETE = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_POS_DELETE", _wrap_python_const_SQL_POS_DELETE); _wrap_python_const_SQL_POS_ADD = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_POS_ADD", _wrap_python_const_SQL_POS_ADD); _wrap_python_const_SQL_QL_START = PyInt_FromLong(0x0001L); PyDict_SetItemString(d,"SQL_QL_START", _wrap_python_const_SQL_QL_START); _wrap_python_const_SQL_QL_END = PyInt_FromLong(0x0002L); PyDict_SetItemString(d,"SQL_QL_END", _wrap_python_const_SQL_QL_END); _wrap_python_const_SQL_OJ_LEFT = PyInt_FromLong(0x00000001L); PyDict_SetItemString(d,"SQL_OJ_LEFT", _wrap_python_const_SQL_OJ_LEFT); _wrap_python_const_SQL_OJ_RIGHT = PyInt_FromLong(0x00000002L); PyDict_SetItemString(d,"SQL_OJ_RIGHT", _wrap_python_const_SQL_OJ_RIGHT); _wrap_python_const_SQL_OJ_FULL = PyInt_FromLong(0x00000004L); PyDict_SetItemString(d,"SQL_OJ_FULL", _wrap_python_const_SQL_OJ_FULL); _wrap_python_const_SQL_OJ_NESTED = PyInt_FromLong(0x00000008L); PyDict_SetItemString(d,"SQL_OJ_NESTED", _wrap_python_const_SQL_OJ_NESTED); _wrap_python_const_SQL_OJ_NOT_ORDERED = PyInt_FromLong(0x00000010L); PyDict_SetItemString(d,"SQL_OJ_NOT_ORDERED", _wrap_python_const_SQL_OJ_NOT_ORDERED); _wrap_python_const_SQL_OJ_INNER = PyInt_FromLong(0x00000020L); PyDict_SetItemString(d,"SQL_OJ_INNER", _wrap_python_const_SQL_OJ_INNER); _wrap_python_const_SQL_OJ_ALL_COMPARISON_OPS = PyInt_FromLong(0x00000040L); PyDict_SetItemString(d,"SQL_OJ_ALL_COMPARISON_OPS", _wrap_python_const_SQL_OJ_ALL_COMPARISON_OPS); _wrap_python_const_SQL_QUERY_TIMEOUT = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_QUERY_TIMEOUT", _wrap_python_const_SQL_QUERY_TIMEOUT); _wrap_python_const_SQL_MAX_ROWS = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_MAX_ROWS", _wrap_python_const_SQL_MAX_ROWS); _wrap_python_const_SQL_NOSCAN = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_NOSCAN", _wrap_python_const_SQL_NOSCAN); _wrap_python_const_SQL_MAX_LENGTH = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_MAX_LENGTH", _wrap_python_const_SQL_MAX_LENGTH); _wrap_python_const_SQL_ASYNC_ENABLE = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_ASYNC_ENABLE", _wrap_python_const_SQL_ASYNC_ENABLE); _wrap_python_const_SQL_BIND_TYPE = PyInt_FromLong(5); PyDict_SetItemString(d,"SQL_BIND_TYPE", _wrap_python_const_SQL_BIND_TYPE); _wrap_python_const_SQL_CURSOR_TYPE = PyInt_FromLong(6); PyDict_SetItemString(d,"SQL_CURSOR_TYPE", _wrap_python_const_SQL_CURSOR_TYPE); _wrap_python_const_SQL_CONCURRENCY = PyInt_FromLong(7); PyDict_SetItemString(d,"SQL_CONCURRENCY", _wrap_python_const_SQL_CONCURRENCY); _wrap_python_const_SQL_KEYSET_SIZE = PyInt_FromLong(8); PyDict_SetItemString(d,"SQL_KEYSET_SIZE", _wrap_python_const_SQL_KEYSET_SIZE); _wrap_python_const_SQL_ROWSET_SIZE = PyInt_FromLong(9); PyDict_SetItemString(d,"SQL_ROWSET_SIZE", _wrap_python_const_SQL_ROWSET_SIZE); _wrap_python_const_SQL_SIMULATE_CURSOR = PyInt_FromLong(10); PyDict_SetItemString(d,"SQL_SIMULATE_CURSOR", _wrap_python_const_SQL_SIMULATE_CURSOR); _wrap_python_const_SQL_RETRIEVE_DATA = PyInt_FromLong(11); PyDict_SetItemString(d,"SQL_RETRIEVE_DATA", _wrap_python_const_SQL_RETRIEVE_DATA); _wrap_python_const_SQL_USE_BOOKMARKS = PyInt_FromLong(12); PyDict_SetItemString(d,"SQL_USE_BOOKMARKS", _wrap_python_const_SQL_USE_BOOKMARKS); _wrap_python_const_SQL_GET_BOOKMARK = PyInt_FromLong(13); PyDict_SetItemString(d,"SQL_GET_BOOKMARK", _wrap_python_const_SQL_GET_BOOKMARK); _wrap_python_const_SQL_ROW_NUMBER = PyInt_FromLong(14); PyDict_SetItemString(d,"SQL_ROW_NUMBER", _wrap_python_const_SQL_ROW_NUMBER); _wrap_python_const_SQL_STMT_OPT_MAX = PyInt_FromLong((14)); PyDict_SetItemString(d,"SQL_STMT_OPT_MAX", _wrap_python_const_SQL_STMT_OPT_MAX); _wrap_python_const_SQL_STMT_OPT_MIN = PyInt_FromLong((0)); PyDict_SetItemString(d,"SQL_STMT_OPT_MIN", _wrap_python_const_SQL_STMT_OPT_MIN); _wrap_python_const_SQL_QUERY_TIMEOUT_DEFAULT = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_QUERY_TIMEOUT_DEFAULT", _wrap_python_const_SQL_QUERY_TIMEOUT_DEFAULT); _wrap_python_const_SQL_MAX_ROWS_DEFAULT = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_MAX_ROWS_DEFAULT", _wrap_python_const_SQL_MAX_ROWS_DEFAULT); _wrap_python_const_SQL_NOSCAN_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_NOSCAN_OFF", _wrap_python_const_SQL_NOSCAN_OFF); _wrap_python_const_SQL_NOSCAN_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_NOSCAN_ON", _wrap_python_const_SQL_NOSCAN_ON); _wrap_python_const_SQL_NOSCAN_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_NOSCAN_DEFAULT", _wrap_python_const_SQL_NOSCAN_DEFAULT); _wrap_python_const_SQL_MAX_LENGTH_DEFAULT = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_MAX_LENGTH_DEFAULT", _wrap_python_const_SQL_MAX_LENGTH_DEFAULT); _wrap_python_const_SQL_ASYNC_ENABLE_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_ASYNC_ENABLE_OFF", _wrap_python_const_SQL_ASYNC_ENABLE_OFF); _wrap_python_const_SQL_ASYNC_ENABLE_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_ASYNC_ENABLE_ON", _wrap_python_const_SQL_ASYNC_ENABLE_ON); _wrap_python_const_SQL_ASYNC_ENABLE_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_ASYNC_ENABLE_DEFAULT", _wrap_python_const_SQL_ASYNC_ENABLE_DEFAULT); _wrap_python_const_SQL_BIND_BY_COLUMN = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_BIND_BY_COLUMN", _wrap_python_const_SQL_BIND_BY_COLUMN); _wrap_python_const_SQL_BIND_TYPE_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_BIND_TYPE_DEFAULT", _wrap_python_const_SQL_BIND_TYPE_DEFAULT); _wrap_python_const_SQL_CONCUR_READ_ONLY = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_CONCUR_READ_ONLY", _wrap_python_const_SQL_CONCUR_READ_ONLY); _wrap_python_const_SQL_CONCUR_LOCK = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_CONCUR_LOCK", _wrap_python_const_SQL_CONCUR_LOCK); _wrap_python_const_SQL_CONCUR_ROWVER = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_CONCUR_ROWVER", _wrap_python_const_SQL_CONCUR_ROWVER); _wrap_python_const_SQL_CONCUR_VALUES = PyInt_FromLong(4); PyDict_SetItemString(d,"SQL_CONCUR_VALUES", _wrap_python_const_SQL_CONCUR_VALUES); _wrap_python_const_SQL_CONCUR_DEFAULT = PyInt_FromLong((1)); PyDict_SetItemString(d,"SQL_CONCUR_DEFAULT", _wrap_python_const_SQL_CONCUR_DEFAULT); _wrap_python_const_SQL_CURSOR_FORWARD_ONLY = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_CURSOR_FORWARD_ONLY", _wrap_python_const_SQL_CURSOR_FORWARD_ONLY); _wrap_python_const_SQL_CURSOR_KEYSET_DRIVEN = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_CURSOR_KEYSET_DRIVEN", _wrap_python_const_SQL_CURSOR_KEYSET_DRIVEN); _wrap_python_const_SQL_CURSOR_DYNAMIC = PyInt_FromLong(2UL); PyDict_SetItemString(d,"SQL_CURSOR_DYNAMIC", _wrap_python_const_SQL_CURSOR_DYNAMIC); _wrap_python_const_SQL_CURSOR_STATIC = PyInt_FromLong(3UL); PyDict_SetItemString(d,"SQL_CURSOR_STATIC", _wrap_python_const_SQL_CURSOR_STATIC); _wrap_python_const_SQL_CURSOR_TYPE_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_CURSOR_TYPE_DEFAULT", _wrap_python_const_SQL_CURSOR_TYPE_DEFAULT); _wrap_python_const_SQL_ROWSET_SIZE_DEFAULT = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_ROWSET_SIZE_DEFAULT", _wrap_python_const_SQL_ROWSET_SIZE_DEFAULT); _wrap_python_const_SQL_KEYSET_SIZE_DEFAULT = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_KEYSET_SIZE_DEFAULT", _wrap_python_const_SQL_KEYSET_SIZE_DEFAULT); _wrap_python_const_SQL_SC_NON_UNIQUE = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_SC_NON_UNIQUE", _wrap_python_const_SQL_SC_NON_UNIQUE); _wrap_python_const_SQL_SC_TRY_UNIQUE = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_SC_TRY_UNIQUE", _wrap_python_const_SQL_SC_TRY_UNIQUE); _wrap_python_const_SQL_SC_UNIQUE = PyInt_FromLong(2UL); PyDict_SetItemString(d,"SQL_SC_UNIQUE", _wrap_python_const_SQL_SC_UNIQUE); _wrap_python_const_SQL_RD_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_RD_OFF", _wrap_python_const_SQL_RD_OFF); _wrap_python_const_SQL_RD_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_RD_ON", _wrap_python_const_SQL_RD_ON); _wrap_python_const_SQL_RD_DEFAULT = PyInt_FromLong((1UL)); PyDict_SetItemString(d,"SQL_RD_DEFAULT", _wrap_python_const_SQL_RD_DEFAULT); _wrap_python_const_SQL_UB_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_UB_OFF", _wrap_python_const_SQL_UB_OFF); _wrap_python_const_SQL_UB_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_UB_ON", _wrap_python_const_SQL_UB_ON); _wrap_python_const_SQL_UB_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_UB_DEFAULT", _wrap_python_const_SQL_UB_DEFAULT); _wrap_python_const_SQL_ACCESS_MODE = PyInt_FromLong(101); PyDict_SetItemString(d,"SQL_ACCESS_MODE", _wrap_python_const_SQL_ACCESS_MODE); _wrap_python_const_SQL_AUTOCOMMIT = PyInt_FromLong(102); PyDict_SetItemString(d,"SQL_AUTOCOMMIT", _wrap_python_const_SQL_AUTOCOMMIT); _wrap_python_const_SQL_LOGIN_TIMEOUT = PyInt_FromLong(103); PyDict_SetItemString(d,"SQL_LOGIN_TIMEOUT", _wrap_python_const_SQL_LOGIN_TIMEOUT); _wrap_python_const_SQL_OPT_TRACE = PyInt_FromLong(104); PyDict_SetItemString(d,"SQL_OPT_TRACE", _wrap_python_const_SQL_OPT_TRACE); _wrap_python_const_SQL_OPT_TRACEFILE = PyInt_FromLong(105); PyDict_SetItemString(d,"SQL_OPT_TRACEFILE", _wrap_python_const_SQL_OPT_TRACEFILE); _wrap_python_const_SQL_TRANSLATE_DLL = PyInt_FromLong(106); PyDict_SetItemString(d,"SQL_TRANSLATE_DLL", _wrap_python_const_SQL_TRANSLATE_DLL); _wrap_python_const_SQL_TRANSLATE_OPTION = PyInt_FromLong(107); PyDict_SetItemString(d,"SQL_TRANSLATE_OPTION", _wrap_python_const_SQL_TRANSLATE_OPTION); _wrap_python_const_SQL_TXN_ISOLATION = PyInt_FromLong(108); PyDict_SetItemString(d,"SQL_TXN_ISOLATION", _wrap_python_const_SQL_TXN_ISOLATION); _wrap_python_const_SQL_CURRENT_QUALIFIER = PyInt_FromLong(109); PyDict_SetItemString(d,"SQL_CURRENT_QUALIFIER", _wrap_python_const_SQL_CURRENT_QUALIFIER); _wrap_python_const_SQL_ODBC_CURSORS = PyInt_FromLong(110); PyDict_SetItemString(d,"SQL_ODBC_CURSORS", _wrap_python_const_SQL_ODBC_CURSORS); _wrap_python_const_SQL_QUIET_MODE = PyInt_FromLong(111); PyDict_SetItemString(d,"SQL_QUIET_MODE", _wrap_python_const_SQL_QUIET_MODE); _wrap_python_const_SQL_PACKET_SIZE = PyInt_FromLong(112); PyDict_SetItemString(d,"SQL_PACKET_SIZE", _wrap_python_const_SQL_PACKET_SIZE); _wrap_python_const_SQL_CONN_OPT_MAX = PyInt_FromLong((112)); PyDict_SetItemString(d,"SQL_CONN_OPT_MAX", _wrap_python_const_SQL_CONN_OPT_MAX); _wrap_python_const_SQL_CONNECT_OPT_DRVR_START = PyInt_FromLong(1000); PyDict_SetItemString(d,"SQL_CONNECT_OPT_DRVR_START", _wrap_python_const_SQL_CONNECT_OPT_DRVR_START); _wrap_python_const_SQL_CONN_OPT_MIN = PyInt_FromLong((101)); PyDict_SetItemString(d,"SQL_CONN_OPT_MIN", _wrap_python_const_SQL_CONN_OPT_MIN); _wrap_python_const_SQL_MODE_READ_WRITE = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_MODE_READ_WRITE", _wrap_python_const_SQL_MODE_READ_WRITE); _wrap_python_const_SQL_MODE_READ_ONLY = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_MODE_READ_ONLY", _wrap_python_const_SQL_MODE_READ_ONLY); _wrap_python_const_SQL_MODE_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_MODE_DEFAULT", _wrap_python_const_SQL_MODE_DEFAULT); _wrap_python_const_SQL_AUTOCOMMIT_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_AUTOCOMMIT_OFF", _wrap_python_const_SQL_AUTOCOMMIT_OFF); _wrap_python_const_SQL_AUTOCOMMIT_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_AUTOCOMMIT_ON", _wrap_python_const_SQL_AUTOCOMMIT_ON); _wrap_python_const_SQL_AUTOCOMMIT_DEFAULT = PyInt_FromLong((1UL)); PyDict_SetItemString(d,"SQL_AUTOCOMMIT_DEFAULT", _wrap_python_const_SQL_AUTOCOMMIT_DEFAULT); _wrap_python_const_SQL_LOGIN_TIMEOUT_DEFAULT = PyInt_FromLong(15UL); PyDict_SetItemString(d,"SQL_LOGIN_TIMEOUT_DEFAULT", _wrap_python_const_SQL_LOGIN_TIMEOUT_DEFAULT); _wrap_python_const_SQL_OPT_TRACE_OFF = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_OPT_TRACE_OFF", _wrap_python_const_SQL_OPT_TRACE_OFF); _wrap_python_const_SQL_OPT_TRACE_ON = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_OPT_TRACE_ON", _wrap_python_const_SQL_OPT_TRACE_ON); _wrap_python_const_SQL_OPT_TRACE_DEFAULT = PyInt_FromLong((0UL)); PyDict_SetItemString(d,"SQL_OPT_TRACE_DEFAULT", _wrap_python_const_SQL_OPT_TRACE_DEFAULT); _wrap_python_const_SQL_OPT_TRACE_FILE_DEFAULT = PyString_FromString("\\SQL.LOG"); PyDict_SetItemString(d,"SQL_OPT_TRACE_FILE_DEFAULT", _wrap_python_const_SQL_OPT_TRACE_FILE_DEFAULT); _wrap_python_const_SQL_CUR_USE_IF_NEEDED = PyInt_FromLong(0UL); PyDict_SetItemString(d,"SQL_CUR_USE_IF_NEEDED", _wrap_python_const_SQL_CUR_USE_IF_NEEDED); _wrap_python_const_SQL_CUR_USE_ODBC = PyInt_FromLong(1UL); PyDict_SetItemString(d,"SQL_CUR_USE_ODBC", _wrap_python_const_SQL_CUR_USE_ODBC); _wrap_python_const_SQL_CUR_USE_DRIVER = PyInt_FromLong(2UL); PyDict_SetItemString(d,"SQL_CUR_USE_DRIVER", _wrap_python_const_SQL_CUR_USE_DRIVER); _wrap_python_const_SQL_CUR_DEFAULT = PyInt_FromLong((2UL)); PyDict_SetItemString(d,"SQL_CUR_DEFAULT", _wrap_python_const_SQL_CUR_DEFAULT); _wrap_python_const_SQL_BEST_ROWID = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_BEST_ROWID", _wrap_python_const_SQL_BEST_ROWID); _wrap_python_const_SQL_ROWVER = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_ROWVER", _wrap_python_const_SQL_ROWVER); _wrap_python_const_SQL_SCOPE_CURROW = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_SCOPE_CURROW", _wrap_python_const_SQL_SCOPE_CURROW); _wrap_python_const_SQL_SCOPE_TRANSACTION = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_SCOPE_TRANSACTION", _wrap_python_const_SQL_SCOPE_TRANSACTION); _wrap_python_const_SQL_SCOPE_SESSION = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_SCOPE_SESSION", _wrap_python_const_SQL_SCOPE_SESSION); _wrap_python_const_SQL_INDEX_UNIQUE = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_INDEX_UNIQUE", _wrap_python_const_SQL_INDEX_UNIQUE); _wrap_python_const_SQL_INDEX_ALL = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_INDEX_ALL", _wrap_python_const_SQL_INDEX_ALL); _wrap_python_const_SQL_QUICK = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_QUICK", _wrap_python_const_SQL_QUICK); _wrap_python_const_SQL_ENSURE = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_ENSURE", _wrap_python_const_SQL_ENSURE); _wrap_python_const_SQL_TABLE_STAT = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_TABLE_STAT", _wrap_python_const_SQL_TABLE_STAT); _wrap_python_const_SQL_INDEX_CLUSTERED = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_INDEX_CLUSTERED", _wrap_python_const_SQL_INDEX_CLUSTERED); _wrap_python_const_SQL_INDEX_HASHED = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_INDEX_HASHED", _wrap_python_const_SQL_INDEX_HASHED); _wrap_python_const_SQL_INDEX_OTHER = PyInt_FromLong(3); PyDict_SetItemString(d,"SQL_INDEX_OTHER", _wrap_python_const_SQL_INDEX_OTHER); _wrap_python_const_SQL_PC_UNKNOWN = PyInt_FromLong(0); PyDict_SetItemString(d,"SQL_PC_UNKNOWN", _wrap_python_const_SQL_PC_UNKNOWN); _wrap_python_const_SQL_PC_NOT_PSEUDO = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_PC_NOT_PSEUDO", _wrap_python_const_SQL_PC_NOT_PSEUDO); _wrap_python_const_SQL_PC_PSEUDO = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_PC_PSEUDO", _wrap_python_const_SQL_PC_PSEUDO); _wrap_python_const_SQL_FETCH_NEXT = PyInt_FromLong(1); PyDict_SetItemString(d,"SQL_FETCH_NEXT", _wrap_python_const_SQL_FETCH_NEXT); _wrap_python_const_SQL_FETCH_FIRST = PyInt_FromLong(2); PyDict_SetItemString(d,"SQL_FETCH_FIRST", _wrap_python_const_SQL_FETCH_FIRST); _wrap_python_const_error = PyString_FromString("sql.error"); PyDict_SetItemString(d,"error", _wrap_python_const_error); PyExc_SQLError=PyDict_GetItemString(d,"error"); PyDict_SetItemString(d,"__version__", PyString_FromStringAndSize( "$Revision: 1.3 $"+11, strlen("$Revision: 1.3 $"+11)-2)); if(sizeof(SDWORD) != sizeof(int)) PyErr_SetString(PyExc_SQLError, "Binding parameters will fail because SDWORD is\n" "not the same size as an int!" ); UNLESS(SQLAllocEnv(&SQLEnv)==SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "could not allocate environment"); /* * These are the pointer type-equivalency mappings. * (Used by the SWIG pointer type-checker). */ SWIG_RegisterMapping("_signed_long","_SQLINTEGER",0); SWIG_RegisterMapping("_signed_long","_SLONG",0); SWIG_RegisterMapping("_signed_long","_SDWORD",0); SWIG_RegisterMapping("_signed_long","_long",0); SWIG_RegisterMapping("_double","_LDOUBLE",0); SWIG_RegisterMapping("_double","_SDOUBLE",0); SWIG_RegisterMapping("_SQLSCHAR","_SCHAR",0); SWIG_RegisterMapping("_SQLSCHAR","_signed_char",0); SWIG_RegisterMapping("_SQLINTEGER","_BOOKMARK",0); SWIG_RegisterMapping("_SQLINTEGER","_SQLUINTEGER",0); SWIG_RegisterMapping("_SQLINTEGER","_SDWORD",0); SWIG_RegisterMapping("_SQLINTEGER","_unsigned_long",0); SWIG_RegisterMapping("_SQLINTEGER","_signed_long",0); SWIG_RegisterMapping("_SQLINTEGER","_long",0); SWIG_RegisterMapping("_SQLINTEGER","_UDWORD",0); SWIG_RegisterMapping("_SQLINTEGER","_SLONG",0); SWIG_RegisterMapping("_SQLINTEGER","_ULONG",0); SWIG_RegisterMapping("_long","_BOOKMARK",0); SWIG_RegisterMapping("_long","_SQLUINTEGER",0); SWIG_RegisterMapping("_long","_SQLINTEGER",0); SWIG_RegisterMapping("_long","_ULONG",0); SWIG_RegisterMapping("_long","_SLONG",0); SWIG_RegisterMapping("_long","_UDWORD",0); SWIG_RegisterMapping("_long","_SDWORD",0); SWIG_RegisterMapping("_long","_unsigned_long",0); SWIG_RegisterMapping("_long","_signed_long",0); SWIG_RegisterMapping("_UDWORD","_BOOKMARK",0); SWIG_RegisterMapping("_UDWORD","_SQLUINTEGER",0); SWIG_RegisterMapping("_UDWORD","_SQLINTEGER",0); SWIG_RegisterMapping("_UDWORD","_ULONG",0); SWIG_RegisterMapping("_UDWORD","_unsigned_long",0); SWIG_RegisterMapping("_UDWORD","_long",0); SWIG_RegisterMapping("_UDWORD","_SDWORD",0); SWIG_RegisterMapping("_float","_SFLOAT",0); SWIG_RegisterMapping("_LDOUBLE","_double",0); SWIG_RegisterMapping("_LDOUBLE","_SDOUBLE",0); SWIG_RegisterMapping("_SCHAR","_SQLSCHAR",0); SWIG_RegisterMapping("_SCHAR","_signed_char",0); SWIG_RegisterMapping("_signed_char","_SQLSCHAR",0); SWIG_RegisterMapping("_signed_char","_SCHAR",0); SWIG_RegisterMapping("_ULONG","_BOOKMARK",0); SWIG_RegisterMapping("_ULONG","_SQLUINTEGER",0); SWIG_RegisterMapping("_ULONG","_SQLINTEGER",0); SWIG_RegisterMapping("_ULONG","_unsigned_long",0); SWIG_RegisterMapping("_ULONG","_long",0); SWIG_RegisterMapping("_ULONG","_SDWORD",0); SWIG_RegisterMapping("_ULONG","_UDWORD",0); SWIG_RegisterMapping("_SQLUINTEGER","_BOOKMARK",0); SWIG_RegisterMapping("_SQLUINTEGER","_UDWORD",0); SWIG_RegisterMapping("_SQLUINTEGER","_SDWORD",0); SWIG_RegisterMapping("_SQLUINTEGER","_long",0); SWIG_RegisterMapping("_SQLUINTEGER","_unsigned_long",0); SWIG_RegisterMapping("_SQLUINTEGER","_ULONG",0); SWIG_RegisterMapping("_SQLUINTEGER","_SQLINTEGER",0); SWIG_RegisterMapping("_BOOKMARK","_unsigned_long",0); SWIG_RegisterMapping("_BOOKMARK","_long",0); SWIG_RegisterMapping("_BOOKMARK","_SDWORD",0); SWIG_RegisterMapping("_BOOKMARK","_UDWORD",0); SWIG_RegisterMapping("_BOOKMARK","_ULONG",0); SWIG_RegisterMapping("_BOOKMARK","_SQLINTEGER",0); SWIG_RegisterMapping("_BOOKMARK","_SQLUINTEGER",0); SWIG_RegisterMapping("_RETCODE","_SQLSMALLINT",0); SWIG_RegisterMapping("_RETCODE","_signed_short",0); SWIG_RegisterMapping("_RETCODE","_short",0); SWIG_RegisterMapping("_RETCODE","_SWORD",0); SWIG_RegisterMapping("_RETCODE","_SSHORT",0); SWIG_RegisterMapping("_USHORT","_SQLUSMALLINT",0); SWIG_RegisterMapping("_USHORT","_SQLSMALLINT",0); SWIG_RegisterMapping("_USHORT","_unsigned_short",0); SWIG_RegisterMapping("_USHORT","_short",0); SWIG_RegisterMapping("_USHORT","_SWORD",0); SWIG_RegisterMapping("_USHORT","_UWORD",0); SWIG_RegisterMapping("_SDOUBLE","_LDOUBLE",0); SWIG_RegisterMapping("_SDOUBLE","_double",0); SWIG_RegisterMapping("_unsigned_long","_BOOKMARK",0); SWIG_RegisterMapping("_unsigned_long","_SQLUINTEGER",0); SWIG_RegisterMapping("_unsigned_long","_SQLINTEGER",0); SWIG_RegisterMapping("_unsigned_long","_ULONG",0); SWIG_RegisterMapping("_unsigned_long","_UDWORD",0); SWIG_RegisterMapping("_unsigned_long","_SDWORD",0); SWIG_RegisterMapping("_unsigned_long","_long",0); SWIG_RegisterMapping("_UCHAR","_SQLCHAR",0); SWIG_RegisterMapping("_UCHAR","_unsigned_char",0); SWIG_RegisterMapping("_SFLOAT","_float",0); SWIG_RegisterMapping("_signed_int","_int",0); SWIG_RegisterMapping("_SQLHWND","_HWND",0); SWIG_RegisterMapping("_HWND","_SQLHWND",0); SWIG_RegisterMapping("_unsigned_short","_SQLUSMALLINT",0); SWIG_RegisterMapping("_unsigned_short","_SQLSMALLINT",0); SWIG_RegisterMapping("_unsigned_short","_USHORT",0); SWIG_RegisterMapping("_unsigned_short","_UWORD",0); SWIG_RegisterMapping("_unsigned_short","_SWORD",0); SWIG_RegisterMapping("_unsigned_short","_short",0); SWIG_RegisterMapping("_signed_short","_SQLSMALLINT",0); SWIG_RegisterMapping("_signed_short","_RETCODE",0); SWIG_RegisterMapping("_signed_short","_SSHORT",0); SWIG_RegisterMapping("_signed_short","_SWORD",0); SWIG_RegisterMapping("_signed_short","_short",0); SWIG_RegisterMapping("_SWORD","_SQLUSMALLINT",0); SWIG_RegisterMapping("_SWORD","_SQLSMALLINT",0); SWIG_RegisterMapping("_SWORD","_RETCODE",0); SWIG_RegisterMapping("_SWORD","_USHORT",0); SWIG_RegisterMapping("_SWORD","_SSHORT",0); SWIG_RegisterMapping("_SWORD","_UWORD",0); SWIG_RegisterMapping("_SWORD","_short",0); SWIG_RegisterMapping("_SWORD","_signed_short",0); SWIG_RegisterMapping("_SWORD","_unsigned_short",0); SWIG_RegisterMapping("_unsigned_char","_SQLCHAR",0); SWIG_RegisterMapping("_unsigned_char","_UCHAR",0); SWIG_RegisterMapping("_unsigned_int","_int",0); SWIG_RegisterMapping("_short","_SQLUSMALLINT",0); SWIG_RegisterMapping("_short","_SQLSMALLINT",0); SWIG_RegisterMapping("_short","_RETCODE",0); SWIG_RegisterMapping("_short","_USHORT",0); SWIG_RegisterMapping("_short","_SSHORT",0); SWIG_RegisterMapping("_short","_UWORD",0); SWIG_RegisterMapping("_short","_SWORD",0); SWIG_RegisterMapping("_short","_unsigned_short",0); SWIG_RegisterMapping("_short","_signed_short",0); SWIG_RegisterMapping("_SQLUSMALLINT","_UWORD",0); SWIG_RegisterMapping("_SQLUSMALLINT","_SWORD",0); SWIG_RegisterMapping("_SQLUSMALLINT","_short",0); SWIG_RegisterMapping("_SQLUSMALLINT","_unsigned_short",0); SWIG_RegisterMapping("_SQLUSMALLINT","_USHORT",0); SWIG_RegisterMapping("_SQLUSMALLINT","_SQLSMALLINT",0); SWIG_RegisterMapping("_SDWORD","_BOOKMARK",0); SWIG_RegisterMapping("_SDWORD","_SQLUINTEGER",0); SWIG_RegisterMapping("_SDWORD","_SQLINTEGER",0); SWIG_RegisterMapping("_SDWORD","_ULONG",0); SWIG_RegisterMapping("_SDWORD","_SLONG",0); SWIG_RegisterMapping("_SDWORD","_UDWORD",0); SWIG_RegisterMapping("_SDWORD","_long",0); SWIG_RegisterMapping("_SDWORD","_signed_long",0); SWIG_RegisterMapping("_SDWORD","_unsigned_long",0); SWIG_RegisterMapping("_int","_unsigned_int",0); SWIG_RegisterMapping("_int","_signed_int",0); SWIG_RegisterMapping("_SQLCHAR","_UCHAR",0); SWIG_RegisterMapping("_SQLCHAR","_unsigned_char",0); SWIG_RegisterMapping("_UWORD","_SQLUSMALLINT",0); SWIG_RegisterMapping("_UWORD","_SQLSMALLINT",0); SWIG_RegisterMapping("_UWORD","_USHORT",0); SWIG_RegisterMapping("_UWORD","_unsigned_short",0); SWIG_RegisterMapping("_UWORD","_short",0); SWIG_RegisterMapping("_UWORD","_SWORD",0); SWIG_RegisterMapping("_SLONG","_SQLINTEGER",0); SWIG_RegisterMapping("_SLONG","_signed_long",0); SWIG_RegisterMapping("_SLONG","_long",0); SWIG_RegisterMapping("_SLONG","_SDWORD",0); SWIG_RegisterMapping("_SQLSMALLINT","_SQLUSMALLINT",0); SWIG_RegisterMapping("_SQLSMALLINT","_SWORD",0); SWIG_RegisterMapping("_SQLSMALLINT","_unsigned_short",0); SWIG_RegisterMapping("_SQLSMALLINT","_signed_short",0); SWIG_RegisterMapping("_SQLSMALLINT","_short",0); SWIG_RegisterMapping("_SQLSMALLINT","_UWORD",0); SWIG_RegisterMapping("_SQLSMALLINT","_SSHORT",0); SWIG_RegisterMapping("_SQLSMALLINT","_USHORT",0); SWIG_RegisterMapping("_SQLSMALLINT","_RETCODE",0); SWIG_RegisterMapping("_SSHORT","_SQLSMALLINT",0); SWIG_RegisterMapping("_SSHORT","_RETCODE",0); SWIG_RegisterMapping("_SSHORT","_signed_short",0); SWIG_RegisterMapping("_SSHORT","_short",0); SWIG_RegisterMapping("_SSHORT","_SWORD",0); } lib/python/Products/ZODBCDA/src/sql.i100666 0 0 37734 6645422174 20141 0ustar00unknownunknown 0 0 /***************************************************************************** Zope Public License (ZPL) Version 0.9.4 --------------------------------------- Copyright (c) Digital Creations. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source code must retain the above copyright notice, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Any use, including use of the Zope software to operate a website, must either comply with the terms described below under "Attribution" or alternatively secure a separate license from Digital Creations. 4. All advertising materials, documentation, or technical papers mentioning features derived from or use of this software must display the following acknowledgement: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 5. Names associated with Zope or Digital Creations must not be used to endorse or promote products derived from this software without prior written permission from Digital Creations. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 7. Modifications are encouraged but must be packaged separately as patches to official Zope releases. Distributions that do not clearly separate the patches from the original work must be clearly labeled as unofficial distributions. Disclaimer THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Attribution Individuals or organizations using this software as a web site must provide attribution by placing the accompanying "button" and a link to the accompanying "credits page" on the website's main entry point. In cases where this placement of attribution is not feasible, a separate arrangment must be concluded with Digital Creations. Those using the software for purposes other than web sites must provide a corresponding attribution in locations that include a copyright using a manner best suited to the application environment. This software consists of contributions made by Digital Creations and many individuals on behalf of Digital Creations. Specific attributions are listed in the accompanying credits file. ****************************************************************************/ %module sql %{ #ifdef SOLIDSQLAPI #include "cli0defs.h" #include "cli0core.h" #include "cli0ext1.h" #define SQLHENV HENV #define SQLHDBC HDBC #define SQLHSTMT HSTMT typedef UCHAR SQLCHAR; typedef SCHAR SQLSCHAR; typedef SDWORD SQLINTEGER; typedef SWORD SQLSMALLINT; typedef UDWORD SQLUINTEGER; typedef UWORD SQLUSMALLINT; typedef void* SQLPOINTER; SWORD SQLDataSources( SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1, SQLCHAR *OUT2, SQLSMALLINT DIM2, SQLSMALLINT *ODIM2) { return SQL_NO_DATA_FOUND; } #else #include #include "sql.h" #include "sqlext.h" #endif static PyObject *PyExc_SQLError; static SQLHENV SQLEnv; static void PyVar_Assign(PyObject **v, PyObject *e) { Py_XDECREF(*v); *v=e; } #define ASSIGN(V,E) PyVar_Assign(&(V),(E)) #define UNLESS(E) if(!(E)) #define UNLESS_ASSIGN(V,E) ASSIGN(V,E); UNLESS(V) #include "pysql.c" %} %include sqlutil.i %include pointer.i %include sqldefs.i %apply long *T_OUTPUT { SQLINTEGER *T_OUTPUT }; %apply unsigned long *T_OUTPUT { SQLUINTEGER *T_OUTPUT }; %apply short *T_OUTPUT { SQLSMALLINT *T_OUTPUT }; %apply unsigned short *T_OUTPUT { SQLUSMALLINT *T_OUTPUT }; /* Core Function Prototypes */ SWORD SQLDataSources( SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1, SQLCHAR *OUT2, SQLSMALLINT DIM2, SQLSMALLINT *ODIM2); SWORD SQLError( SQLHENV henv, SQLHDBC hdbc, SQLHSTMT hstmt, SQLCHAR *szSqlState, SQLINTEGER *T_OUTPUT, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1); SWORD SQLTransact( SQLHENV henv, SQLHDBC hdbc, SQLUSMALLINT fType); %inline %{ static PyObject * SQLException(SQLHDBC hdbc, SQLHSTMT hstmt) { char state[6]; SDWORD native; char mess[SQL_MAX_MESSAGE_LENGTH]; SWORD lmess; SWORD status; PyObject *v; status=SQLError(SQLEnv, hdbc, hstmt,state,&native, mess,SQL_MAX_MESSAGE_LENGTH-1,&lmess); if(status != SQL_SUCCESS || !(v=Py_BuildValue("s#is#",state,5,(long)native,mess,lmess)) ) { v=Py_None; Py_INCREF(v); } PyErr_SetObject(PyExc_SQLError,v); Py_DECREF(v); return NULL; } static PyObject * SQLGetFloat(SQLHSTMT hstmt, SQLUSMALLINT icol) { double v; SWORD status; SQLINTEGER sz; status=SQLGetData(hstmt, icol, SQL_C_DOUBLE, &v, sizeof(v), &sz); if(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) return PyFloat_FromDouble(v); return SQLException(SQL_NULL_HDBC, hstmt); } static PyObject * SQLGetInt(SQLHSTMT hstmt, SQLUSMALLINT icol) { long v; SWORD status; SQLINTEGER sz; status=SQLGetData(hstmt, icol, SQL_C_SLONG, &v, sizeof(v), &sz); if(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) return PyInt_FromLong(v); return SQLException(SQL_NULL_HDBC, hstmt); } static PyObject * SQLGetString(SQLHSTMT hstmt, SQLUSMALLINT icol, int binary) { char v[128]; SWORD status, fCType; SQLINTEGER sz; PyObject *list=0, *s=0; fCType=binary ? SQL_C_BINARY : SQL_C_CHAR; status=SQLGetData(hstmt, icol, fCType, &v, 128, &sz); if(sz==SQL_NULL_DATA) return PyString_FromString(""); if(binary) { if(sz==SQL_NO_TOTAL || sz > 128) sz=128; } else if(sz==SQL_NO_TOTAL || sz > 127) sz=127; if(status==SQL_SUCCESS) return PyString_FromStringAndSize(v,sz); UNLESS(list=PyList_New(0)) return NULL; while(status==SQL_SUCCESS_WITH_INFO) { char state[6]; char mess[1]; SDWORD native; SWORD esz, estatus; estatus=SQLError(SQLEnv, SQL_NULL_HDBC, hstmt, state, &native, mess,1,&esz); if(estatus != SQL_SUCCESS && estatus != SQL_SUCCESS_WITH_INFO) break; if(strcmp(state,"01004") != 0) break; UNLESS(s=PyString_FromStringAndSize(v,sz)) goto err; if(PyList_Append(list,s) < 0) goto err; Py_DECREF(s); status=SQLGetData(hstmt, icol, fCType, &v, 128, &sz); if(binary) { if(sz==SQL_NO_TOTAL || sz > 128) sz=128; } else if(sz==SQL_NO_TOTAL || sz > 127) sz=127; } if(status==SQL_SUCCESS) { static PyObject *join=0, *empty=0; if(! empty) { UNLESS(join=PyImport_ImportModule("string")) goto err; UNLESS_ASSIGN(join, PyObject_GetAttrString(join,"join")) goto err; UNLESS(empty=PyString_FromString("")) goto err; } UNLESS(s=PyString_FromStringAndSize(v,sz)) goto err; if(PyList_Append(list,s) < 0) goto err; ASSIGN(s,PyObject_CallFunction(join,"OO",list,empty)); Py_DECREF(list); return s; } SQLException(SQL_NULL_HDBC, hstmt); err: Py_XDECREF(list); Py_XDECREF(s); return NULL; } static PyObject * SQLConnection( SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3) { Connection *self; SWORD status; UNLESS(self = PyObject_NEW(Connection, &ConnectionType)) return NULL; status=SQLAllocConnect(SQLEnv, &(self->connection)); UNLESS(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) goto err; status=SQLConnect(self->connection,IN1,DIM1,IN2,DIM2,IN3,DIM3); UNLESS(status==SQL_SUCCESS || status==SQL_SUCCESS_WITH_INFO) goto err; return (PyObject*)self; err: self->connection=SQL_NULL_HDBC; Py_DECREF(self); return SQLException(SQL_NULL_HDBC, SQL_NULL_HSTMT); } %} SWORD SQLFetch( SQLHSTMT hstmt); %except(python) { SWORD status; status=$function; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, SQL_NULL_HSTMT); } SWORD SQLAllocConnect( SQLHENV henv, SQLHDBC *phdbc); %except(python) { SWORD status; status=$function; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(handle, SQL_NULL_HSTMT); } SWORD SQLConnect( SQLHDBC hdbc, SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3); SWORD SQLDisconnect( SQLHDBC hdbc); SWORD SQLAllocStmt( SQLHDBC hdbc, SQLHSTMT *phstmt); SWORD SQLGetConnectOption( SQLHDBC hdbc, SQLUSMALLINT fOption, SQLPOINTER pvParam); SWORD SQLGetFunctions( SQLHDBC hdbc, SQLUSMALLINT fFunction, SQLUSMALLINT *T_OUTPUT); SWORD SQLGetInfo( SQLHDBC hdbc, SQLUSMALLINT fInfoType, SQLPOINTER OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1); SWORD SQLSetConnectOption( SQLHDBC hdbc, SQLUSMALLINT fOption, SQLUINTEGER vParam); %except(python) { SWORD status; status=$function; if(status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return SQLException(SQL_NULL_HDBC, handle); } SWORD SQLFreeStmt( SQLHSTMT hstmt, UWORD foption); SWORD SQLBindCol( SQLHSTMT hstmt, SQLUSMALLINT icol, SQLSMALLINT fCType, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue); %inline %{ SWORD SQLBindInputParameter( SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fSqlType, PyObject *v ) { void *p; SDWORD *lp; if(PyString_Check(v)) { p=PyString_AsString(v); lp=&(((PyStringObject*)v)->ob_size); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_BINARY, fSqlType,*lp,0, p,*lp,lp); } else if(PyInt_Check(v)) { p=&(((PyIntObject*)v)->ob_ival); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_SLONG, fSqlType,0,0, p,sizeof(long),NULL); } else if(PyFloat_Check(v)) { p=&(((PyFloatObject*)v)->ob_fval); return SQLBindParameter(hstmt,ipar,SQL_PARAM_INPUT,SQL_C_DOUBLE, fSqlType,0,0, p,sizeof(double),NULL); } return 0; } %} SWORD SQLCancel( SQLHSTMT hstmt); SWORD SQLColAttributes( SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1, SQLINTEGER *T_OUTPUT); SWORD SQLDescribeCol( SQLHSTMT hstmt, SQLUSMALLINT icol, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1, SQLSMALLINT *T_OUTPUT, SQLUINTEGER *T_OUTPUT, SQLSMALLINT *T_OUTPUT, SQLSMALLINT *T_OUTPUT); SWORD SQLExecDirect( SQLHSTMT hstmt, SQLCHAR *IN1, SQLINTEGER DIM1); SWORD SQLExecute( SQLHSTMT hstmt); SWORD SQLGetCursorName( SQLHSTMT hstmt, SQLCHAR *OUT1, SQLSMALLINT DIM1, SQLSMALLINT *ODIM1); SWORD SQLNumResultCols( SQLHSTMT hstmt, SQLSMALLINT *T_OUTPUT); SWORD SQLPrepare( SQLHSTMT hstmt, SQLCHAR *IN1, SQLINTEGER DIM1); SWORD SQLRowCount( SQLHSTMT hstmt, SQLINTEGER *T_OUTPUT); SWORD SQLSetCursorName( SQLHSTMT hstmt, SQLCHAR *IN1, SQLSMALLINT DIM1); /* Level 1 Prototypes */ SWORD SQLColumns( SQLHSTMT hstmt, SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3, SQLCHAR *IN4, SQLSMALLINT DIM4); SWORD SQLGetData( SQLHSTMT hstmt, SQLUSMALLINT icol, SQLSMALLINT fCType, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue); SWORD SQLGetStmtOption( SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLPOINTER pvParam); SWORD SQLGetTypeInfo( SQLHSTMT hstmt, SQLSMALLINT fSqlType); SWORD SQLParamData( SQLHSTMT hstmt, SQLPOINTER *prgbValue); SWORD SQLPutData( SQLHSTMT hstmt, SQLCHAR *IN1, SQLINTEGER DIM1); SWORD SQLSetStmtOption( SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLUINTEGER vParam); SWORD SQLSpecialColumns( SQLHSTMT hstmt, SQLUSMALLINT fColType, SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3, SQLUSMALLINT fScope, SQLUSMALLINT fNullable); SWORD SQLStatistics( SQLHSTMT hstmt, SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3, SQLUSMALLINT fUnique, SQLUSMALLINT fAccuracy); SWORD SQLTables( SQLHSTMT hstmt, SQLCHAR *IN1, SQLSMALLINT DIM1, SQLCHAR *IN2, SQLSMALLINT DIM2, SQLCHAR *IN3, SQLSMALLINT DIM3, SQLCHAR *IN4, SQLSMALLINT DIM4); #define error "sql.error" %init %{ PyExc_SQLError=PyDict_GetItemString(d,"error"); PyDict_SetItemString(d,"__version__", PyString_FromStringAndSize( "$Revision: 1.3 $"+11, strlen("$Revision: 1.3 $"+11)-2)); if(sizeof(SDWORD) != sizeof(int)) PyErr_SetString(PyExc_SQLError, "Binding parameters will fail because SDWORD is\n" "not the same size as an int!" ); UNLESS(SQLAllocEnv(&SQLEnv)==SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "could not allocate environment"); %} lib/python/Products/ZODBCDA/src/sqldefs.i100666 0 0 121372 6644513254 21012 0ustar00unknownunknown 0 0 /***************************************************************************** Zope Public License (ZPL) Version 0.9.4 --------------------------------------- Copyright (c) Digital Creations. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source code must retain the above copyright notice, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Any use, including use of the Zope software to operate a website, must either comply with the terms described below under "Attribution" or alternatively secure a separate license from Digital Creations. 4. All advertising materials, documentation, or technical papers mentioning features derived from or use of this software must display the following acknowledgement: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 5. Names associated with Zope or Digital Creations must not be used to endorse or promote products derived from this software without prior written permission from Digital Creations. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 7. Modifications are encouraged but must be packaged separately as patches to official Zope releases. Distributions that do not clearly separate the patches from the original work must be clearly labeled as unofficial distributions. Disclaimer THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Attribution Individuals or organizations using this software as a web site must provide attribution by placing the accompanying "button" and a link to the accompanying "credits page" on the website's main entry point. In cases where this placement of attribution is not feasible, a separate arrangment must be concluded with Digital Creations. Those using the software for purposes other than web sites must provide a corresponding attribution in locations that include a copyright using a manner best suited to the application environment. This software consists of contributions made by Digital Creations and many individuals on behalf of Digital Creations. Specific attributions are listed in the accompanying credits file. ****************************************************************************/ /* if ODBCVER is not defined, assume version 2.50 */ #ifndef ODBCVER #define ODBCVER 0x0250 #endif /* define WINDOWS */ /* _WINDOWS_ is defined in windows.h for 32 bit */ /* _INC_WINDOWS is defined in windows.h for 16 bit */ #define WINDOWS /* SQL portable types for C */ typedef unsigned char UCHAR; typedef signed char SCHAR; typedef long int SDWORD; typedef short int SWORD; typedef unsigned long int UDWORD; typedef unsigned short int UWORD; typedef signed long SLONG; typedef signed short SSHORT; typedef unsigned long ULONG; typedef unsigned short USHORT; typedef double SDOUBLE; typedef double LDOUBLE; /* long double == short double in Win32 */ typedef float SFLOAT; typedef void * PTR; typedef void * HENV; typedef void * HDBC; typedef void * HSTMT; typedef signed short RETCODE; typedef UCHAR SQLCHAR; typedef SCHAR SQLSCHAR; typedef SDWORD SQLINTEGER; typedef SWORD SQLSMALLINT; typedef UDWORD SQLUINTEGER; typedef UWORD SQLUSMALLINT; typedef void * SQLPOINTER; typedef HENV SQLHENV; typedef HDBC SQLHDBC; typedef HSTMT SQLHSTMT; typedef HWND SQLHWND; typedef unsigned long int BOOKMARK; /* generally useful constants */ #define SQL_SPEC_MAJOR 2 /* Major version of specification */ #define SQL_SPEC_MINOR 50 /* Minor version of specification */ #define SQL_SPEC_STRING "02.50" /* String constant for version */ #define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */ #define SQL_MAX_MESSAGE_LENGTH 512 /* message buffer size */ #define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size*/ /* RETCODEs */ #define SQL_INVALID_HANDLE (-2) #define SQL_ERROR (-1) #define SQL_SUCCESS 0 #define SQL_SUCCESS_WITH_INFO 1 #define SQL_NO_DATA_FOUND 100 /* Standard SQL datatypes, using ANSI type numbering */ #define SQL_CHAR 1 #define SQL_NUMERIC 2 #define SQL_DECIMAL 3 #define SQL_INTEGER 4 #define SQL_SMALLINT 5 #define SQL_FLOAT 6 #define SQL_REAL 7 #define SQL_DOUBLE 8 #define SQL_VARCHAR 12 #define SQL_TYPE_NULL 0 #define SQL_TYPE_MIN SQL_BIT #define SQL_TYPE_MAX SQL_VARCHAR #define SQL_ALL_TYPES 0 /* C datatype to SQL datatype mapping SQL types ------------------- */ #define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */ #define SQL_C_LONG SQL_INTEGER /* INTEGER */ #define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */ #define SQL_C_FLOAT SQL_REAL /* REAL */ #define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */ #define SQL_C_DEFAULT 99 /* NULL status constants. These are used in SQLColumns, SQLColAttributes, SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the nullablity of a column in a table. */ #define SQL_NO_NULLS 0 #define SQL_NULLABLE 1 #define SQL_NULLABLE_UNKNOWN 2 /* Special length values */ #define SQL_NULL_DATA (-1) #define SQL_DATA_AT_EXEC (-2) #define SQL_NTS (-3) /* SQLFreeStmt defines */ #define SQL_CLOSE 0 #define SQL_DROP 1 #define SQL_UNBIND 2 #define SQL_RESET_PARAMS 3 /* SQLTransact defines */ #define SQL_COMMIT 0 #define SQL_ROLLBACK 1 /* SQLColAttributes defines */ #define SQL_COLUMN_COUNT 0 #define SQL_COLUMN_NAME 1 #define SQL_COLUMN_TYPE 2 #define SQL_COLUMN_LENGTH 3 #define SQL_COLUMN_PRECISION 4 #define SQL_COLUMN_SCALE 5 #define SQL_COLUMN_DISPLAY_SIZE 6 #define SQL_COLUMN_NULLABLE 7 #define SQL_COLUMN_UNSIGNED 8 #define SQL_COLUMN_MONEY 9 #define SQL_COLUMN_UPDATABLE 10 #define SQL_COLUMN_AUTO_INCREMENT 11 #define SQL_COLUMN_CASE_SENSITIVE 12 #define SQL_COLUMN_SEARCHABLE 13 #define SQL_COLUMN_TYPE_NAME 14 #define SQL_COLUMN_TABLE_NAME 15 #define SQL_COLUMN_OWNER_NAME 16 #define SQL_COLUMN_QUALIFIER_NAME 17 #define SQL_COLUMN_LABEL 18 #define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL #define SQL_COLUMN_DRIVER_START 1000 #define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT /* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */ #define SQL_ATTR_READONLY 0 #define SQL_ATTR_WRITE 1 #define SQL_ATTR_READWRITE_UNKNOWN 2 /* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */ /* These are also used by SQLGetInfo */ #define SQL_UNSEARCHABLE 0 #define SQL_LIKE_ONLY 1 #define SQL_ALL_EXCEPT_LIKE 2 #define SQL_SEARCHABLE 3 /* SQLError defines */ #define SQL_NULL_HENV 0 #define SQL_NULL_HDBC 0 #define SQL_NULL_HSTMT 0 /* generally useful constants */ #define SQL_MAX_OPTION_STRING_LENGTH 256 /* Additional return codes */ #define SQL_STILL_EXECUTING 2 #define SQL_NEED_DATA 99 /* SQL extended datatypes */ #define SQL_DATE 9 #define SQL_TIME 10 #define SQL_TIMESTAMP 11 #define SQL_LONGVARCHAR (-1) #define SQL_BINARY (-2) #define SQL_VARBINARY (-3) #define SQL_LONGVARBINARY (-4) #define SQL_BIGINT (-5) #define SQL_TINYINT (-6) #define SQL_BIT (-7) #define SQL_INTERVAL_YEAR (-80) #define SQL_INTERVAL_MONTH (-81) #define SQL_INTERVAL_YEAR_TO_MONTH (-82) #define SQL_INTERVAL_DAY (-83) #define SQL_INTERVAL_HOUR (-84) #define SQL_INTERVAL_MINUTE (-85) #define SQL_INTERVAL_SECOND (-86) #define SQL_INTERVAL_DAY_TO_HOUR (-87) #define SQL_INTERVAL_DAY_TO_MINUTE (-88) #define SQL_INTERVAL_DAY_TO_SECOND (-89) #define SQL_INTERVAL_HOUR_TO_MINUTE (-90) #define SQL_INTERVAL_HOUR_TO_SECOND (-91) #define SQL_INTERVAL_MINUTE_TO_SECOND (-92) #define SQL_UNICODE (-95) #define SQL_UNICODE_VARCHAR (-96) #define SQL_UNICODE_LONGVARCHAR (-97) #define SQL_UNICODE_CHAR SQL_UNICODE #define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR #define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR #define SQL_SIGNED_OFFSET (-20) #define SQL_UNSIGNED_OFFSET (-22) /* C datatype to SQL datatype mapping */ #define SQL_C_DATE SQL_DATE #define SQL_C_TIME SQL_TIME #define SQL_C_TIMESTAMP SQL_TIMESTAMP #define SQL_C_BINARY SQL_BINARY #define SQL_C_BIT SQL_BIT #define SQL_C_TINYINT SQL_TINYINT #define SQL_C_SLONG SQL_C_LONG+SQL_SIGNED_OFFSET /* SIGNED INTEGER */ #define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET /* SIGNED SMALLINT */ #define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET /* SIGNED TINYINT */ #define SQL_C_ULONG SQL_C_LONG+SQL_UNSIGNED_OFFSET /* UNSIGNED INTEGER */ #define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET /* UNSIGNED SMALLINT*/ #define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET /* UNSIGNED TINYINT */ #define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */ /* Level 1 Functions */ /* Special return values for SQLGetData */ #define SQL_NO_TOTAL (-4) /* Defines for SQLGetFunctions */ #define SQL_API_SQLALLOCCONNECT 1 /* Core Functions */ #define SQL_API_SQLALLOCENV 2 #define SQL_API_SQLALLOCSTMT 3 #define SQL_API_SQLBINDCOL 4 #define SQL_API_SQLCANCEL 5 #define SQL_API_SQLCOLATTRIBUTES 6 #define SQL_API_SQLCONNECT 7 #define SQL_API_SQLDESCRIBECOL 8 #define SQL_API_SQLDISCONNECT 9 #define SQL_API_SQLERROR 10 #define SQL_API_SQLEXECDIRECT 11 #define SQL_API_SQLEXECUTE 12 #define SQL_API_SQLFETCH 13 #define SQL_API_SQLFREECONNECT 14 #define SQL_API_SQLFREEENV 15 #define SQL_API_SQLFREESTMT 16 #define SQL_API_SQLGETCURSORNAME 17 #define SQL_API_SQLNUMRESULTCOLS 18 #define SQL_API_SQLPREPARE 19 #define SQL_API_SQLROWCOUNT 20 #define SQL_API_SQLSETCURSORNAME 21 #define SQL_API_SQLSETPARAM 22 #define SQL_API_SQLTRANSACT 23 #define SQL_NUM_FUNCTIONS 23 #define SQL_EXT_API_START 40 #define SQL_API_SQLCOLUMNS 40 /* Level 1 Functions */ #define SQL_API_SQLDRIVERCONNECT 41 #define SQL_API_SQLGETCONNECTOPTION 42 #define SQL_API_SQLGETDATA 43 #define SQL_API_SQLGETFUNCTIONS 44 #define SQL_API_SQLGETINFO 45 #define SQL_API_SQLGETSTMTOPTION 46 #define SQL_API_SQLGETTYPEINFO 47 #define SQL_API_SQLPARAMDATA 48 #define SQL_API_SQLPUTDATA 49 #define SQL_API_SQLSETCONNECTOPTION 50 #define SQL_API_SQLSETSTMTOPTION 51 #define SQL_API_SQLSPECIALCOLUMNS 52 #define SQL_API_SQLSTATISTICS 53 #define SQL_API_SQLTABLES 54 #define SQL_API_SQLBROWSECONNECT 55 /* Level 2 Functions */ #define SQL_API_SQLCOLUMNPRIVILEGES 56 #define SQL_API_SQLDATASOURCES 57 #define SQL_API_SQLDESCRIBEPARAM 58 #define SQL_API_SQLEXTENDEDFETCH 59 #define SQL_API_SQLFOREIGNKEYS 60 #define SQL_API_SQLMORERESULTS 61 #define SQL_API_SQLNATIVESQL 62 #define SQL_API_SQLNUMPARAMS 63 #define SQL_API_SQLPARAMOPTIONS 64 #define SQL_API_SQLPRIMARYKEYS 65 #define SQL_API_SQLPROCEDURECOLUMNS 66 #define SQL_API_SQLPROCEDURES 67 #define SQL_API_SQLSETPOS 68 #define SQL_API_SQLSETSCROLLOPTIONS 69 #define SQL_API_SQLTABLEPRIVILEGES 70 /* SDK 2.0 Additions */ #define SQL_API_SQLDRIVERS 71 #define SQL_API_SQLBINDPARAMETER 72 #define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER #define SQL_API_ALL_FUNCTIONS 0 #define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1) #define SQL_API_LOADBYORDINAL 199 /* Defines for SQLGetInfo */ #define SQL_INFO_FIRST 0 #define SQL_ACTIVE_CONNECTIONS 0 #define SQL_ACTIVE_STATEMENTS 1 #define SQL_DATA_SOURCE_NAME 2 #define SQL_DRIVER_HDBC 3 #define SQL_DRIVER_HENV 4 #define SQL_DRIVER_HSTMT 5 #define SQL_DRIVER_NAME 6 #define SQL_DRIVER_VER 7 #define SQL_FETCH_DIRECTION 8 #define SQL_ODBC_API_CONFORMANCE 9 #define SQL_ODBC_VER 10 #define SQL_ROW_UPDATES 11 #define SQL_ODBC_SAG_CLI_CONFORMANCE 12 #define SQL_SERVER_NAME 13 #define SQL_SEARCH_PATTERN_ESCAPE 14 #define SQL_ODBC_SQL_CONFORMANCE 15 #define SQL_DBMS_NAME 17 #define SQL_DBMS_VER 18 #define SQL_ACCESSIBLE_TABLES 19 #define SQL_ACCESSIBLE_PROCEDURES 20 #define SQL_PROCEDURES 21 #define SQL_CONCAT_NULL_BEHAVIOR 22 #define SQL_CURSOR_COMMIT_BEHAVIOR 23 #define SQL_CURSOR_ROLLBACK_BEHAVIOR 24 #define SQL_DATA_SOURCE_READ_ONLY 25 #define SQL_DEFAULT_TXN_ISOLATION 26 #define SQL_EXPRESSIONS_IN_ORDERBY 27 #define SQL_IDENTIFIER_CASE 28 #define SQL_IDENTIFIER_QUOTE_CHAR 29 #define SQL_MAX_COLUMN_NAME_LEN 30 #define SQL_MAX_CURSOR_NAME_LEN 31 #define SQL_MAX_OWNER_NAME_LEN 32 #define SQL_MAX_PROCEDURE_NAME_LEN 33 #define SQL_MAX_QUALIFIER_NAME_LEN 34 #define SQL_MAX_TABLE_NAME_LEN 35 #define SQL_MULT_RESULT_SETS 36 #define SQL_MULTIPLE_ACTIVE_TXN 37 #define SQL_OUTER_JOINS 38 #define SQL_OWNER_TERM 39 #define SQL_PROCEDURE_TERM 40 #define SQL_QUALIFIER_NAME_SEPARATOR 41 #define SQL_QUALIFIER_TERM 42 #define SQL_SCROLL_CONCURRENCY 43 #define SQL_SCROLL_OPTIONS 44 #define SQL_TABLE_TERM 45 #define SQL_TXN_CAPABLE 46 #define SQL_USER_NAME 47 #define SQL_CONVERT_FUNCTIONS 48 #define SQL_NUMERIC_FUNCTIONS 49 #define SQL_STRING_FUNCTIONS 50 #define SQL_SYSTEM_FUNCTIONS 51 #define SQL_TIMEDATE_FUNCTIONS 52 #define SQL_CONVERT_BIGINT 53 #define SQL_CONVERT_BINARY 54 #define SQL_CONVERT_BIT 55 #define SQL_CONVERT_CHAR 56 #define SQL_CONVERT_DATE 57 #define SQL_CONVERT_DECIMAL 58 #define SQL_CONVERT_DOUBLE 59 #define SQL_CONVERT_FLOAT 60 #define SQL_CONVERT_INTEGER 61 #define SQL_CONVERT_LONGVARCHAR 62 #define SQL_CONVERT_NUMERIC 63 #define SQL_CONVERT_REAL 64 #define SQL_CONVERT_SMALLINT 65 #define SQL_CONVERT_TIME 66 #define SQL_CONVERT_TIMESTAMP 67 #define SQL_CONVERT_TINYINT 68 #define SQL_CONVERT_VARBINARY 69 #define SQL_CONVERT_VARCHAR 70 #define SQL_CONVERT_LONGVARBINARY 71 #define SQL_TXN_ISOLATION_OPTION 72 #define SQL_ODBC_SQL_OPT_IEF 73 /*** ODBC SDK 1.0 Additions ***/ #define SQL_CORRELATION_NAME 74 #define SQL_NON_NULLABLE_COLUMNS 75 /*** ODBC SDK 2.0 Additions ***/ #define SQL_DRIVER_HLIB 76 #define SQL_DRIVER_ODBC_VER 77 #define SQL_LOCK_TYPES 78 #define SQL_POS_OPERATIONS 79 #define SQL_POSITIONED_STATEMENTS 80 #define SQL_GETDATA_EXTENSIONS 81 #define SQL_BOOKMARK_PERSISTENCE 82 #define SQL_STATIC_SENSITIVITY 83 #define SQL_FILE_USAGE 84 #define SQL_NULL_COLLATION 85 #define SQL_ALTER_TABLE 86 #define SQL_COLUMN_ALIAS 87 #define SQL_GROUP_BY 88 #define SQL_KEYWORDS 89 #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90 #define SQL_OWNER_USAGE 91 #define SQL_QUALIFIER_USAGE 92 #define SQL_QUOTED_IDENTIFIER_CASE 93 #define SQL_SPECIAL_CHARACTERS 94 #define SQL_SUBQUERIES 95 #define SQL_UNION 96 #define SQL_MAX_COLUMNS_IN_GROUP_BY 97 #define SQL_MAX_COLUMNS_IN_INDEX 98 #define SQL_MAX_COLUMNS_IN_ORDER_BY 99 #define SQL_MAX_COLUMNS_IN_SELECT 100 #define SQL_MAX_COLUMNS_IN_TABLE 101 #define SQL_MAX_INDEX_SIZE 102 #define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103 #define SQL_MAX_ROW_SIZE 104 #define SQL_MAX_STATEMENT_LEN 105 #define SQL_MAX_TABLES_IN_SELECT 106 #define SQL_MAX_USER_NAME_LEN 107 #define SQL_MAX_CHAR_LITERAL_LEN 108 #define SQL_TIMEDATE_ADD_INTERVALS 109 #define SQL_TIMEDATE_DIFF_INTERVALS 110 #define SQL_NEED_LONG_DATA_LEN 111 #define SQL_MAX_BINARY_LITERAL_LEN 112 #define SQL_LIKE_ESCAPE_CLAUSE 113 #define SQL_QUALIFIER_LOCATION 114 /*** ODBC SDK 2.01 Additions ***/ #define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */ #define SQL_INFO_LAST SQL_QUALIFIER_LOCATION #define SQL_INFO_DRIVER_START 1000 /* SQL_CONVERT_* return value bitmasks */ #define SQL_CVT_CHAR 0x00000001L #define SQL_CVT_NUMERIC 0x00000002L #define SQL_CVT_DECIMAL 0x00000004L #define SQL_CVT_INTEGER 0x00000008L #define SQL_CVT_SMALLINT 0x00000010L #define SQL_CVT_FLOAT 0x00000020L #define SQL_CVT_REAL 0x00000040L #define SQL_CVT_DOUBLE 0x00000080L #define SQL_CVT_VARCHAR 0x00000100L #define SQL_CVT_LONGVARCHAR 0x00000200L #define SQL_CVT_BINARY 0x00000400L #define SQL_CVT_VARBINARY 0x00000800L #define SQL_CVT_BIT 0x00001000L #define SQL_CVT_TINYINT 0x00002000L #define SQL_CVT_BIGINT 0x00004000L #define SQL_CVT_DATE 0x00008000L #define SQL_CVT_TIME 0x00010000L #define SQL_CVT_TIMESTAMP 0x00020000L #define SQL_CVT_LONGVARBINARY 0x00040000L /* SQL_CONVERT_FUNCTIONS functions */ #define SQL_FN_CVT_CONVERT 0x00000001L /* SQL_STRING_FUNCTIONS functions */ #define SQL_FN_STR_CONCAT 0x00000001L #define SQL_FN_STR_INSERT 0x00000002L #define SQL_FN_STR_LEFT 0x00000004L #define SQL_FN_STR_LTRIM 0x00000008L #define SQL_FN_STR_LENGTH 0x00000010L #define SQL_FN_STR_LOCATE 0x00000020L #define SQL_FN_STR_LCASE 0x00000040L #define SQL_FN_STR_REPEAT 0x00000080L #define SQL_FN_STR_REPLACE 0x00000100L #define SQL_FN_STR_RIGHT 0x00000200L #define SQL_FN_STR_RTRIM 0x00000400L #define SQL_FN_STR_SUBSTRING 0x00000800L #define SQL_FN_STR_UCASE 0x00001000L #define SQL_FN_STR_ASCII 0x00002000L #define SQL_FN_STR_CHAR 0x00004000L #define SQL_FN_STR_DIFFERENCE 0x00008000L #define SQL_FN_STR_LOCATE_2 0x00010000L #define SQL_FN_STR_SOUNDEX 0x00020000L #define SQL_FN_STR_SPACE 0x00040000L /* SQL_NUMERIC_FUNCTIONS functions */ #define SQL_FN_NUM_ABS 0x00000001L #define SQL_FN_NUM_ACOS 0x00000002L #define SQL_FN_NUM_ASIN 0x00000004L #define SQL_FN_NUM_ATAN 0x00000008L #define SQL_FN_NUM_ATAN2 0x00000010L #define SQL_FN_NUM_CEILING 0x00000020L #define SQL_FN_NUM_COS 0x00000040L #define SQL_FN_NUM_COT 0x00000080L #define SQL_FN_NUM_EXP 0x00000100L #define SQL_FN_NUM_FLOOR 0x00000200L #define SQL_FN_NUM_LOG 0x00000400L #define SQL_FN_NUM_MOD 0x00000800L #define SQL_FN_NUM_SIGN 0x00001000L #define SQL_FN_NUM_SIN 0x00002000L #define SQL_FN_NUM_SQRT 0x00004000L #define SQL_FN_NUM_TAN 0x00008000L #define SQL_FN_NUM_PI 0x00010000L #define SQL_FN_NUM_RAND 0x00020000L #define SQL_FN_NUM_DEGREES 0x00040000L #define SQL_FN_NUM_LOG10 0x00080000L #define SQL_FN_NUM_POWER 0x00100000L #define SQL_FN_NUM_RADIANS 0x00200000L #define SQL_FN_NUM_ROUND 0x00400000L #define SQL_FN_NUM_TRUNCATE 0x00800000L /* SQL_TIMEDATE_FUNCTIONS functions */ #define SQL_FN_TD_NOW 0x00000001L #define SQL_FN_TD_CURDATE 0x00000002L #define SQL_FN_TD_DAYOFMONTH 0x00000004L #define SQL_FN_TD_DAYOFWEEK 0x00000008L #define SQL_FN_TD_DAYOFYEAR 0x00000010L #define SQL_FN_TD_MONTH 0x00000020L #define SQL_FN_TD_QUARTER 0x00000040L #define SQL_FN_TD_WEEK 0x00000080L #define SQL_FN_TD_YEAR 0x00000100L #define SQL_FN_TD_CURTIME 0x00000200L #define SQL_FN_TD_HOUR 0x00000400L #define SQL_FN_TD_MINUTE 0x00000800L #define SQL_FN_TD_SECOND 0x00001000L #define SQL_FN_TD_TIMESTAMPADD 0x00002000L #define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L #define SQL_FN_TD_DAYNAME 0x00008000L #define SQL_FN_TD_MONTHNAME 0x00010000L /* SQL_SYSTEM_FUNCTIONS functions */ #define SQL_FN_SYS_USERNAME 0x00000001L #define SQL_FN_SYS_DBNAME 0x00000002L #define SQL_FN_SYS_IFNULL 0x00000004L /* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */ #define SQL_FN_TSI_FRAC_SECOND 0x00000001L #define SQL_FN_TSI_SECOND 0x00000002L #define SQL_FN_TSI_MINUTE 0x00000004L #define SQL_FN_TSI_HOUR 0x00000008L #define SQL_FN_TSI_DAY 0x00000010L #define SQL_FN_TSI_WEEK 0x00000020L #define SQL_FN_TSI_MONTH 0x00000040L #define SQL_FN_TSI_QUARTER 0x00000080L #define SQL_FN_TSI_YEAR 0x00000100L /* SQL_ODBC_API_CONFORMANCE values */ #define SQL_OAC_NONE 0x0000 #define SQL_OAC_LEVEL1 0x0001 #define SQL_OAC_LEVEL2 0x0002 /* SQL_ODBC_SAG_CLI_CONFORMANCE values */ #define SQL_OSCC_NOT_COMPLIANT 0x0000 #define SQL_OSCC_COMPLIANT 0x0001 /* SQL_ODBC_SQL_CONFORMANCE values */ #define SQL_OSC_MINIMUM 0x0000 #define SQL_OSC_CORE 0x0001 #define SQL_OSC_EXTENDED 0x0002 /* SQL_CONCAT_NULL_BEHAVIOR values */ #define SQL_CB_NULL 0x0000 #define SQL_CB_NON_NULL 0x0001 /* SQL_CURSOR_COMMIT_BEHAVIOR and SQL_CURSOR_ROLLBACK_BEHAVIOR values */ #define SQL_CB_DELETE 0x0000 #define SQL_CB_CLOSE 0x0001 #define SQL_CB_PRESERVE 0x0002 /* SQL_IDENTIFIER_CASE values */ #define SQL_IC_UPPER 0x0001 #define SQL_IC_LOWER 0x0002 #define SQL_IC_SENSITIVE 0x0003 #define SQL_IC_MIXED 0x0004 /* SQL_TXN_CAPABLE values */ #define SQL_TC_NONE 0x0000 #define SQL_TC_DML 0x0001 #define SQL_TC_ALL 0x0002 #define SQL_TC_DDL_COMMIT 0x0003 #define SQL_TC_DDL_IGNORE 0x0004 /* SQL_SCROLL_OPTIONS masks */ #define SQL_SO_FORWARD_ONLY 0x00000001L #define SQL_SO_KEYSET_DRIVEN 0x00000002L #define SQL_SO_DYNAMIC 0x00000004L #define SQL_SO_MIXED 0x00000008L #define SQL_SO_STATIC 0x00000010L /* SQL_SCROLL_CONCURRENCY masks */ #define SQL_SCCO_READ_ONLY 0x00000001L #define SQL_SCCO_LOCK 0x00000002L #define SQL_SCCO_OPT_ROWVER 0x00000004L #define SQL_SCCO_OPT_VALUES 0x00000008L /* SQL_FETCH_DIRECTION masks */ #define SQL_FD_FETCH_NEXT 0x00000001L #define SQL_FD_FETCH_FIRST 0x00000002L #define SQL_FD_FETCH_LAST 0x00000004L #define SQL_FD_FETCH_PRIOR 0x00000008L #define SQL_FD_FETCH_ABSOLUTE 0x00000010L #define SQL_FD_FETCH_RELATIVE 0x00000020L #define SQL_FD_FETCH_RESUME 0x00000040L #define SQL_FD_FETCH_BOOKMARK 0x00000080L /* SQL_TXN_ISOLATION_OPTION masks */ #define SQL_TXN_READ_UNCOMMITTED 0x00000001L #define SQL_TXN_READ_COMMITTED 0x00000002L #define SQL_TXN_REPEATABLE_READ 0x00000004L #define SQL_TXN_SERIALIZABLE 0x00000008L #define SQL_TXN_VERSIONING 0x00000010L /* SQL_CORRELATION_NAME values */ #define SQL_CN_NONE 0x0000 #define SQL_CN_DIFFERENT 0x0001 #define SQL_CN_ANY 0x0002 /* SQL_NON_NULLABLE_COLUMNS values */ #define SQL_NNC_NULL 0x0000 #define SQL_NNC_NON_NULL 0x0001 /* SQL_NULL_COLLATION values */ #define SQL_NC_HIGH 0x0000 #define SQL_NC_LOW 0x0001 #define SQL_NC_START 0x0002 #define SQL_NC_END 0x0004 /* SQL_FILE_USAGE values */ #define SQL_FILE_NOT_SUPPORTED 0x0000 #define SQL_FILE_TABLE 0x0001 #define SQL_FILE_QUALIFIER 0x0002 /* SQL_GETDATA_EXTENSIONS values */ #define SQL_GD_ANY_COLUMN 0x00000001L #define SQL_GD_ANY_ORDER 0x00000002L #define SQL_GD_BLOCK 0x00000004L #define SQL_GD_BOUND 0x00000008L /* SQL_ALTER_TABLE values */ #define SQL_AT_ADD_COLUMN 0x00000001L #define SQL_AT_DROP_COLUMN 0x00000002L /* SQL_POSITIONED_STATEMENTS masks */ #define SQL_PS_POSITIONED_DELETE 0x00000001L #define SQL_PS_POSITIONED_UPDATE 0x00000002L #define SQL_PS_SELECT_FOR_UPDATE 0x00000004L /* SQL_GROUP_BY values */ #define SQL_GB_NOT_SUPPORTED 0x0000 #define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001 #define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002 #define SQL_GB_NO_RELATION 0x0003 /* SQL_OWNER_USAGE masks */ #define SQL_OU_DML_STATEMENTS 0x00000001L #define SQL_OU_PROCEDURE_INVOCATION 0x00000002L #define SQL_OU_TABLE_DEFINITION 0x00000004L #define SQL_OU_INDEX_DEFINITION 0x00000008L #define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L /* SQL_QUALIFIER_USAGE masks */ #define SQL_QU_DML_STATEMENTS 0x00000001L #define SQL_QU_PROCEDURE_INVOCATION 0x00000002L #define SQL_QU_TABLE_DEFINITION 0x00000004L #define SQL_QU_INDEX_DEFINITION 0x00000008L #define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L /* SQL_SUBQUERIES masks */ #define SQL_SQ_COMPARISON 0x00000001L #define SQL_SQ_EXISTS 0x00000002L #define SQL_SQ_IN 0x00000004L #define SQL_SQ_QUANTIFIED 0x00000008L #define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L /* SQL_UNION masks */ #define SQL_U_UNION 0x00000001L #define SQL_U_UNION_ALL 0x00000002L /* SQL_BOOKMARK_PERSISTENCE values */ #define SQL_BP_CLOSE 0x00000001L #define SQL_BP_DELETE 0x00000002L #define SQL_BP_DROP 0x00000004L #define SQL_BP_TRANSACTION 0x00000008L #define SQL_BP_UPDATE 0x00000010L #define SQL_BP_OTHER_HSTMT 0x00000020L #define SQL_BP_SCROLL 0x00000040L /* SQL_STATIC_SENSITIVITY values */ #define SQL_SS_ADDITIONS 0x00000001L #define SQL_SS_DELETIONS 0x00000002L #define SQL_SS_UPDATES 0x00000004L /* SQL_LOCK_TYPESL masks */ #define SQL_LCK_NO_CHANGE 0x00000001L #define SQL_LCK_EXCLUSIVE 0x00000002L #define SQL_LCK_UNLOCK 0x00000004L /* SQL_POS_OPERATIONS masks */ #define SQL_POS_POSITION 0x00000001L #define SQL_POS_REFRESH 0x00000002L #define SQL_POS_UPDATE 0x00000004L #define SQL_POS_DELETE 0x00000008L #define SQL_POS_ADD 0x00000010L /* SQL_QUALIFIER_LOCATION values */ #define SQL_QL_START 0x0001L #define SQL_QL_END 0x0002L /* SQL_OJ_CAPABILITIES values */ #define SQL_OJ_LEFT 0x00000001L #define SQL_OJ_RIGHT 0x00000002L #define SQL_OJ_FULL 0x00000004L #define SQL_OJ_NESTED 0x00000008L #define SQL_OJ_NOT_ORDERED 0x00000010L #define SQL_OJ_INNER 0x00000020L #define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L /* options for SQLGetStmtOption/SQLSetStmtOption */ #define SQL_QUERY_TIMEOUT 0 #define SQL_MAX_ROWS 1 #define SQL_NOSCAN 2 #define SQL_MAX_LENGTH 3 #define SQL_ASYNC_ENABLE 4 #define SQL_BIND_TYPE 5 #define SQL_CURSOR_TYPE 6 #define SQL_CONCURRENCY 7 #define SQL_KEYSET_SIZE 8 #define SQL_ROWSET_SIZE 9 #define SQL_SIMULATE_CURSOR 10 #define SQL_RETRIEVE_DATA 11 #define SQL_USE_BOOKMARKS 12 #define SQL_GET_BOOKMARK 13 /* GetStmtOption Only */ #define SQL_ROW_NUMBER 14 /* GetStmtOption Only */ #define SQL_STMT_OPT_MAX SQL_ROW_NUMBER #define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT /* SQL_QUERY_TIMEOUT options */ #define SQL_QUERY_TIMEOUT_DEFAULT 0UL /* SQL_MAX_ROWS options */ #define SQL_MAX_ROWS_DEFAULT 0UL /* SQL_NOSCAN options */ #define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */ #define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */ #define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF /* SQL_MAX_LENGTH options */ #define SQL_MAX_LENGTH_DEFAULT 0UL /* SQL_ASYNC_ENABLE options */ #define SQL_ASYNC_ENABLE_OFF 0UL #define SQL_ASYNC_ENABLE_ON 1UL #define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF /* SQL_BIND_TYPE options */ #define SQL_BIND_BY_COLUMN 0UL #define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN /* Default value */ /* SQL_CONCURRENCY options */ #define SQL_CONCUR_READ_ONLY 1 #define SQL_CONCUR_LOCK 2 #define SQL_CONCUR_ROWVER 3 #define SQL_CONCUR_VALUES 4 #define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY /* Default value */ /* SQL_CURSOR_TYPE options */ #define SQL_CURSOR_FORWARD_ONLY 0UL #define SQL_CURSOR_KEYSET_DRIVEN 1UL #define SQL_CURSOR_DYNAMIC 2UL #define SQL_CURSOR_STATIC 3UL #define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY /* Default value */ /* SQL_ROWSET_SIZE options */ #define SQL_ROWSET_SIZE_DEFAULT 1UL /* SQL_KEYSET_SIZE options */ #define SQL_KEYSET_SIZE_DEFAULT 0UL /* SQL_SIMULATE_CURSOR options */ #define SQL_SC_NON_UNIQUE 0UL #define SQL_SC_TRY_UNIQUE 1UL #define SQL_SC_UNIQUE 2UL /* SQL_RETRIEVE_DATA options */ #define SQL_RD_OFF 0UL #define SQL_RD_ON 1UL #define SQL_RD_DEFAULT SQL_RD_ON /* SQL_USE_BOOKMARKS options */ #define SQL_UB_OFF 0UL #define SQL_UB_ON 1UL #define SQL_UB_DEFAULT SQL_UB_OFF /* options for SQLSetConnectOption/SQLGetConnectOption */ #define SQL_ACCESS_MODE 101 #define SQL_AUTOCOMMIT 102 #define SQL_LOGIN_TIMEOUT 103 #define SQL_OPT_TRACE 104 #define SQL_OPT_TRACEFILE 105 #define SQL_TRANSLATE_DLL 106 #define SQL_TRANSLATE_OPTION 107 #define SQL_TXN_ISOLATION 108 #define SQL_CURRENT_QUALIFIER 109 #define SQL_ODBC_CURSORS 110 #define SQL_QUIET_MODE 111 #define SQL_PACKET_SIZE 112 #define SQL_CONN_OPT_MAX SQL_PACKET_SIZE #define SQL_CONNECT_OPT_DRVR_START 1000 #define SQL_CONN_OPT_MIN SQL_ACCESS_MODE /* SQL_ACCESS_MODE options */ #define SQL_MODE_READ_WRITE 0UL #define SQL_MODE_READ_ONLY 1UL #define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE /* SQL_AUTOCOMMIT options */ #define SQL_AUTOCOMMIT_OFF 0UL #define SQL_AUTOCOMMIT_ON 1UL #define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON /* SQL_LOGIN_TIMEOUT options */ #define SQL_LOGIN_TIMEOUT_DEFAULT 15UL /* SQL_OPT_TRACE options */ #define SQL_OPT_TRACE_OFF 0UL #define SQL_OPT_TRACE_ON 1UL #define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF #define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG" /* SQL_ODBC_CURSORS options */ #define SQL_CUR_USE_IF_NEEDED 0UL #define SQL_CUR_USE_ODBC 1UL #define SQL_CUR_USE_DRIVER 2UL #define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER /* Column types and scopes in SQLSpecialColumns. */ #define SQL_BEST_ROWID 1 #define SQL_ROWVER 2 #define SQL_SCOPE_CURROW 0 #define SQL_SCOPE_TRANSACTION 1 #define SQL_SCOPE_SESSION 2 /* Defines for SQLStatistics */ #define SQL_INDEX_UNIQUE 0 #define SQL_INDEX_ALL 1 #define SQL_QUICK 0 #define SQL_ENSURE 1 /* Defines for SQLStatistics (returned in the result set) */ #define SQL_TABLE_STAT 0 #define SQL_INDEX_CLUSTERED 1 #define SQL_INDEX_HASHED 2 #define SQL_INDEX_OTHER 3 /* Defines for SQLSpecialColumns (returned in the result set) */ #define SQL_PC_UNKNOWN 0 #define SQL_PC_NOT_PSEUDO 1 #define SQL_PC_PSEUDO 2 /* SQLDataSources "fDirection" values, also used on SQLExtendedFetch() */ #define SQL_FETCH_NEXT 1 #define SQL_FETCH_FIRST 2 #define SQL_ODBC_KEYWORDS \ "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\ "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\ "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\ "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\ "COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\ "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\ "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\ "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\ "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\ "DISTINCT,DOMAIN,DOUBLE,DROP,"\ "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\ "EXISTS,EXTERNAL,EXTRACT,"\ "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\ "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\ "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\ "INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\ "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\ "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\ "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\ "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\ "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\ "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\ "REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\ "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\ "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\ "SUBSTRING,SUM,SYSTEM_USER,"\ "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\ "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\ "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\ "VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR" lib/python/Products/ZODBCDA/src/sqlutil.i100666 0 0 17717 6644513254 21035 0ustar00unknownunknown 0 0 /***************************************************************************** Zope Public License (ZPL) Version 0.9.4 --------------------------------------- Copyright (c) Digital Creations. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source code must retain the above copyright notice, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Any use, including use of the Zope software to operate a website, must either comply with the terms described below under "Attribution" or alternatively secure a separate license from Digital Creations. 4. All advertising materials, documentation, or technical papers mentioning features derived from or use of this software must display the following acknowledgement: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 5. Names associated with Zope or Digital Creations must not be used to endorse or promote products derived from this software without prior written permission from Digital Creations. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by Digital Creations for use in the Z Object Publishing Environment (http://www.zope.org/)." 7. Modifications are encouraged but must be packaged separately as patches to official Zope releases. Distributions that do not clearly separate the patches from the original work must be clearly labeled as unofficial distributions. Disclaimer THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Attribution Individuals or organizations using this software as a web site must provide attribution by placing the accompanying "button" and a link to the accompanying "credits page" on the website's main entry point. In cases where this placement of attribution is not feasible, a separate arrangment must be concluded with Digital Creations. Those using the software for purposes other than web sites must provide a corresponding attribution in locations that include a copyright using a manner best suited to the application environment. This software consists of contributions made by Digital Creations and many individuals on behalf of Digital Creations. Specific attributions are listed in the accompanying credits file. ****************************************************************************/ %{ static char * PySequence_CharArray(PyObject *s, int *d) { if((*d=PyString_Size(s)) < 0) return NULL; return PyString_AsString(s); } static void ___FreeConnect(void *p) { if(p && (SQLHDBC*)p != SQL_NULL_HDBC) { UNLESS(SQLFreeConnect(*(SQLHDBC*)p) == SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error calling SQLFreeConnect in destructor"); free(p); } } static void ___FreeStmt(void *p) { if(p && (SQLHSTMT*)p != SQL_NULL_HSTMT) { UNLESS(SQLFreeStmt(*(SQLHSTMT*)p, SQL_DROP) == SQL_SUCCESS) PyErr_SetString(PyExc_SQLError, "error calling SQLFreeStmt in destructor"); free(p); } } %} %include typemaps.i %typemap(python, ignore) SQLHDBC * { $target = ($type)malloc(sizeof(SQLHDBC)); } %typemap(python,argout) SQLHDBC * { $target = t_output_helper($target,PyCObject_FromVoidPtr((void*)$source, ___FreeConnect)); } %typemap(python, ignore) SQLHSTMT * { $target = ($type)malloc(sizeof(SQLHSTMT)); } %typemap(python,argout) SQLHSTMT * { $target = t_output_helper($target, PyCObject_FromVoidPtr((void*)$source, ___FreeStmt)); } %typemap(python,ignore) SQLHENV { $target=SQLEnv; } %typemap(python,in) SQLHDBC(SQLHDBC handle) { if($source==Py_None) $target=NULL; else if($source->ob_type == &ConnectionType) { $target = ((Connection*)$source)->connection; } else { UNLESS(PyCObject_Check($source)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } $target=*($type *)PyCObject_AsVoidPtr($source); } handle=$target; } %typemap(python,in) SQLHSTMT(SQLHSTMT handle) { if($source==Py_None) $target=NULL; else if($source->ob_type == &StatementType) { $target = ((Statement*)$source)->stmt; } else { UNLESS(PyCObject_Check($source)) { PyErr_SetString(PyExc_TypeError, "Expected CObject"); return NULL; } $target=*($type *)PyCObject_AsVoidPtr($source); } handle=$target; } %typemap(python, ignore) SQLCHAR *OUT1 (int dim1, SQLCHAR buf1[256]), SQLPOINTER OUT1(int dim1, SQLCHAR buf1[256]) { dim1=255; $target=buf1; } %typemap(python, argout) SQLCHAR *OUT1, SQLPOINTER OUT1 { $target = t_output_helper($target, PyString_FromStringAndSize( buf1, odim1)); } %typemap(python, ignore) SQLSMALLINT *ODIM1(SQLSMALLINT odim1) { $target=&odim1; odim1=0; } %typemap(python, ignore) SQLCHAR *OUT2(SQLSMALLINT dim2, SQLCHAR buf2[256]), SQLPOINTER OUT2(SQLSMALLINT dim2, SQLCHAR buf2[256]) { dim2=255; $target=buf2; } %typemap(python, argout) SQLCHAR *OUT2, SQLPOINTER OUT2 { $target = t_output_helper($target, PyString_FromStringAndSize( buf2, odim2)); } %typemap(python, ignore) SQLSMALLINT *ODIM2(SQLSMALLINT odim2) { $target=&odim2; odim2=0; } %typemap(python, in) SQLCHAR *IN1(int dim1) { if($source==Py_None) { $target=NULL; dim1=0; } else UNLESS($target=PySequence_CharArray($source, &dim1)) return NULL; } %typemap(python, ignore) SQLSMALLINT DIM1, SQLINTEGER DIM1 {} %typemap(python, check) SQLSMALLINT DIM1, SQLINTEGER DIM1 { $target=dim1;} %typemap(python, in) SQLCHAR *IN2(int dim2) { if($source==Py_None) { $target=NULL; dim2=0; } else UNLESS($target=PySequence_CharArray($source, &dim2)) return NULL; } %typemap(python, ignore) SQLSMALLINT DIM2 {} %typemap(python, check) SQLSMALLINT DIM2 { $target=dim2;} %typemap(python, in) SQLCHAR *IN3(int dim3) { if($source==Py_None) { $target=NULL; dim3=0; } else UNLESS($target=PySequence_CharArray($source, &dim3)) return NULL; } %typemap(python, ignore) SQLSMALLINT DIM3 {} %typemap(python, check) SQLSMALLINT DIM3 { $target=dim3;} %typemap(python, in) SQLCHAR *IN4(int dim4) { if($source==Py_None) { $target=NULL; dim4=0; } else UNLESS($target=PySequence_CharArray($source, &dim4)) return NULL; } %typemap(python, ignore) SQLSMALLINT DIM4 {} %typemap(python, check) SQLSMALLINT DIM4 { $target=dim4;} %typemap(python, ignore) SQLCHAR *szSqlState(char buf[6]){$target=buf;} %typemap(python, argout) SQLCHAR *szSqlState { $target = t_output_helper($target, PyString_FromStringAndSize(buf, 5)); } lib/python/Products/ZODBCDA/table_info.dtml100666 0 0 331 6501032312 21262 0ustar00unknownunknown 0 0 owned by
lib/python/Products/ZODBCDA/__init__.py100666 0 0 10201 6763507012 20462 0ustar00unknownunknown 0 0 ############################################################################## # # Zope Public License (ZPL) Version 1.0 # ------------------------------------- # # Copyright (c) Digital Creations. All rights reserved. # # This license has been certified as Open Source(tm). # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # 1. Redistributions in source code must retain the above copyright # notice, this list of conditions, and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions, and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # # 3. Digital Creations requests that attribution be given to Zope # in any manner possible. Zope includes a "Powered by Zope" # button that is installed by default. While it is not a license # violation to remove this button, it is requested that the # attribution remain. A significant investment has been put # into Zope, and this effort will continue if the Zope community # continues to grow. This is one way to assure that growth. # # 4. All advertising materials and documentation mentioning # features derived from or use of this software must display # the following acknowledgement: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # In the event that the product being advertised includes an # intact Zope distribution (with copyright and license included) # then this clause is waived. # # 5. Names associated with Zope or Digital Creations must not be used to # endorse or promote products derived from this software without # prior written permission from Digital Creations. # # 6. Modified redistributions of any form whatsoever must retain # the following acknowledgment: # # "This product includes software developed by Digital Creations # for use in the Z Object Publishing Environment # (http://www.zope.org/)." # # Intact (re-)distributions of any official Zope release do not # require an external acknowledgement. # # 7. Modifications are encouraged but must be packaged separately as # patches to official Zope releases. Distributions that do not # clearly separate the patches from the original work must be clearly # labeled as unofficial distributions. Modifications which do not # carry the name Zope may be packaged in any form, as long as they # conform to all of the clauses above. # # # Disclaimer # # THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # # This software consists of contributions made by Digital Creations and # many individuals on behalf of Digital Creations. Specific # attributions are listed in the accompanying credits file. # ############################################################################## __doc__='''Generic Database Adapter Package Registration $Id: __init__.py,v 1.7 1999/09/02 14:47:38 petrilli Exp $''' __version__='$Revision: 1.7 $'[11:-2] import DA classes=DA.classes meta_types=DA.meta_types methods=DA.folder_methods misc_=DA.misc_ __module_aliases__=( ('Products.AqueductODBC.DA', DA), )