Giter Club home page Giter Club logo

pyodbc's People

Contributors

abitrolly avatar ajnelson-nist avatar almeida-cloves-bcg avatar baluyotraf avatar bdholder avatar bkline avatar fladi avatar gordthompson avatar hugovk avatar jabbera avatar juliuszsompolski avatar kadler avatar keitherskine avatar lsrzj avatar maparent avatar mavxg avatar mizaro avatar mkfiserv avatar mkleehammer avatar neilodonuts avatar qpenko avatar richard-reece avatar roskakori avatar rosscoleman avatar sgivens0 avatar soundstripe avatar stefan6419846 avatar tekknolagi avatar tjguk avatar v-chojas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyodbc's Issues

Add property to check if a connection is open.

Trying to perform an operation on a closed connection currently produces a ProgrammingError but there is no way to check if a connection is open.

It would be great to be able to check if a connection is open before trying to run queries or close the connection.

Regression in Unicode support between version 3.0.9 and 3.0.10

There seems to have been a regression in Unicode support in 3.0.10.
This might also be the actual cause of issue #47

Test Code

import pyodbc

def pyodbc_test(db, query, username):
    try:
        curs = db.cursor()
        curs.execute(query, (username, ))
        return curs.fetchone()
    except Exception, e:
        return e
    return None

db = pyodbc.connect("DSN=...")
print pyodbc_test(db, u"SELECT * FROM [Users] WHERE username = ?", u'foo')
print pyodbc_test(db, b"SELECT * FROM [Users] WHERE username = ?", u'foo')
print pyodbc_test(db, u"SELECT * FROM [Users] WHERE username = ?", b'foo')
print pyodbc_test(db, b"SELECT * FROM [Users] WHERE username = ?", b'foo')
db.close()

Results

Version 3.0.10

('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')
None
('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')
(u'f\x00o\x00o\x00', u'M\x00r\x00.\x00 \x00F\x00o\x00o\x00')

Version 3.0.9 (and earlier)

(u'foo', u'Mr. Foo')
(u'foo', u'Mr. Foo')
(u'foo', u'Mr. Foo')
(u'foo', u'Mr. Foo')

Environment

Client

  • OS X 10.9.5
  • Python 2.7
  • libiodbc-3.52.9
  • freetds-0.91

Server

  • Windows 7 x64
  • MS SQL Server 2012

cursor returns incorrect numerical value

Running on

Python 2.7.8 (v2.7.8:ee879c0ffa11, Sep  3 2014, 17:02:16) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Connecting to PosgreSQL DB v 9.4 of form

create table m {
    day DATE,
    string VARCHAR,
    volume NUMERIC(16,0)
}

Running isql using Postgres UNICODE driver returns correct values

$ isql database uid ps  < echo "select * from m LIMIT 1;"

-----------------------------------------------------------------------+-------------------+
| day |string  | volume |
| 2015-04-30| blah | 2029139           |

Using pyodbc

...
conn = pyodbc.connect(host)
query = "select * from m LIMIT 1;"
cursor= conn.cursor()
cursor.execute(query)
results = cursor.fetchone()
print results
conn.close()

outputs

(datetime.date(2015, 4, 30), 'blah', Decimal('2'))

Non-ASCII characters in connection string password cause UnicodeEncodeError in cleanup

This script successfully connects to a SQL Server database using a login with a non-ASCII character in the password, but causes a UnicodeEncodeError when garbage collecting the pyodbc connection (I assume) and crashes python:

#!/usr/bin/env python
# encoding: utf-8
from __future__ import unicode_literals, print_function

import gc
import sys

import pyodbc

# Please ensure these are valid parameters for your test SQL Server - if pyodbc
# cannot establish a connection then the bug seems to be avoided.
CONN_PARTS = {
    'DRIVER': '{SQL Server}',
    'Server': '.\\SQLEXPRESS',
    'DATABASE': 'test_pyodbc',
    'UID': 'test_pyodbc_unicode',

    # PWD must contain Unicode that cannot be encoded as ASCII to invoke crash.
    'PWD': 'pa££word',
}
CONN_STR = ";".join(key + '=' + val for key, val in CONN_PARTS.items())

def main():
    print('python version:', sys.version)
    print('pyodbc version:', pyodbc.version)
    try:
        print("Connecting", CONN_STR)
        pyodbc.connect(CONN_STR)
        print("Connected OK")
    except Exception as err:
        print("Failed to connect - is your connection string correct?")
        print(err)
        exit(1)

    print('About to garbage collect')
    gc.collect()
    print('No crash - did you forget to use a Unicode PWD or fix the bug?')
    exit(1)

if __name__ == "__main__":
    main()

Output on my Windows 7 system, with the latest 3.0.10 release from pypi installed by pip from the wheel:

python version: 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]
pyodbc version: 3.0.10
Connecting PWD=pa££word;DATABASE=test_pyodbc;DRIVER={SQL Server};UID=test_pyodbc_unicode;Server=.\SQLEXPRESS
Connected OK
About to garbage collect
Exception UnicodeEncodeError: UnicodeEncodeError('ascii', u'PWD=pa\xa3\xa3word;DATABASE=test_pyodbc;DRIVER={SQL Server};UID=test_pyodbc_unicode;Server=.\\SQLEXPRESS', 6, 8, 'ordinal not in range(128)') in 'garbage collection' ignored
Fatal Python error: unexpected exception during garbage collection

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

If we remove the 4 lines of explicit gc.collect stuff at the end of main and replace with a dummy loop:

    for i in xrange(2):
        print("Fake work", i)
    print("Done")

Then python itself doesn't crash, but the UnicodeEncodeError is raised when the loop finishes, before we print Done:

python version: 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]
pyodbc version: 3.0.10
Connecting PWD=pa££word;DATABASE=test_pyodbc;DRIVER={SQL Server};UID=test_pyodbc_unicode;Server=.\SQLEXPRESS
Connected OK
Fake work 0
Fake work 1
Traceback (most recent call last):
  File "./pyodbc_crash.py", line 40, in <module>
    main()
  File "./pyodbc_crash.py", line 35, in main
    for i in xrange(2):
UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-7: ordinal not in range(128)

I can also reproduce with the latest code from master built with python setup.py bdist_wininst:

python version: 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]
pyodbc version: 3.0.11b8
Connecting PWD=pa££word;DATABASE=test_pyodbc;DRIVER={SQL Server};UID=test_pyodbc_unicode;Server=.\SQLEXPRESS
Connected OK
Fake work 0
Fake work 1
Traceback (most recent call last):
  File "c:\Users\day.barr\bromium-management-server\bin\python-script.py", line 66, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "pyodbc_crash.py", line 40, in <module>
    main()
  File "pyodbc_crash.py", line 35, in main
    for i in xrange(2):
UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-7: ordinal not in range(128)```

When fetch numeric field, get "Program type out of range" error.

I've tried multiple versions of pyodbc, i've been using 2.1.7 which don't have this problem, but i got problem with bigint field, so i decide to upgrade to most recent version of pyodbc, it has no problem with bigint now, but have this new problem.

exception:

pyodbc.Error: ('HY003', '[HY003] [FreeTDS][SQL Server]Program type out of range (0) (SQLGetData)')

python: 2.6
os: debian6 x86/64
sqlserver: 2005/64
unixODBC: 2.2.11

Error when building on Solaris 10 sparc

Hello, when building the source code on Solaris 10 (sparc) I get some errors related to inline functions. Any hint to fix this?

bash-3.2# uname -a
SunOS martin 5.10 Generic_147147-26 sun4v sparc sun4v

bash-3.2# CC -V
CC: Sun C++ 5.13 SunOS_sparc 2014/10/20

bash-3.2# python setup.py build
sh: git: not found
WARNING: git describe failed with: 256
WARNING: Unable to determine version. Using 3.0.0.0
running build
running build_ext
building 'pyodbc' extension
/usr/lib/python2.6/pycc -DNDEBUG -KPIC -DPYODBC_VERSION=3.0.0-unsupported -DPYODBC_UNICODE_WIDTH=2 -I/opt/DataAccess64/ODBC/dm/include -I/usr/include/python2.6 -c /tmp/pyodbc-master/src/buffer.cpp -o build/temp.solaris-2.10-sun4v-2.6/tmp/pyodbc-master/src/buffer.o -g0
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: "inline" is not allowed here.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: DWORD is not defined.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: grf is not defined.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: Badly formed expression.
4 Error(s) detected.
error: command '/usr/lib/python2.6/pycc' failed with exit status 2

ImportError with Python 3 and Django 1.8

This may be something Django-specific but thought I'd ask here in addition to on the Django list.

On Ubuntu Server 14.04 64-bit, Python 3.4, and pyodbc 3.0.8 (which I believe is the only version that works with Python 3?), pyodbc installs fine, and works fine from a regular Python interpreter, but fails in a Django shell.

For example if I do python3 and then import pyodbc, no problems.

If, however, I do python3 manage.py shell and then import pyodbc, I get the following:
http://pastebin.com/cNDrmvcb

Any ideas? Thanks.

What should i use for Driver for oracle in linux?

Hi
I want to connect to an oracle db on my linux machine but i don't know what should i put as driver in connection string?
I've tried:

connStr = "Driver={/usr/lib/oracle/product/11.2.0/xe/lib/libsqora.so.11.1};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=XE)));Uid=me;Pwd=mypass;"

And i got this error:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/product/11.2.0/xe/lib/libsqora.so.11.1' : file not found (0) (SQLDriverConnect)")

But the file is there:

$ ls -l /usr/lib/oracle/product/11.2.0/xe/lib/libsqora.so.11.1
-rwxr-xr-x 1 oracle dba 790904 Aug 29  2011 /usr/lib/oracle/product/11.2.0/xe/lib/libsqora.so.11.1

This is my odbcinst.ini file:

$ cat /etc/odbcinst.ini 

[Oracle 11g ODBC driver]
Description     = Oracle ODBC driver for Oracle 11g
Driver          = /usr/lib/oracle/product/11.2.0/xe/lib/libsqora.so.11.1
Setup           =
FileUsage       =
CPTimeout       =
CPReuse         = 

Please help me through this problem.
Thanks.

Decimal separator isn't detected properly

We are running with the iSeries Access for Linux driver to DB2 on AS/400. When pyodbc initializes chDecimal is set incorrectly to the Python locale's decimal separator rather than the locale of the database driver. In our environment the driver is apparently English (.) and Python Danish (,) which ends up converting the unicode decimal number incorrectly as the separator is ignored.

Pickle support?

No queryset pyodbc could be pickled so it cannot be cached in memcached... any tip or plan for that? Uncached orm performs dramatically slower in our project. Thanx

Request to use parameter arrays in executemany()

I just wanted to create this issue as a placeholder for the implementation of parameter arrays in pyodbc.

In cases where users are attempting to bulk load data into a database using the executemany() function, parameter arrays allow the data to be "buffered up" so that it is transferred in batches to the database rather than one record at a time. This makes orders-of-magnitude differences in the speed of the operation.

Not all databases accept parameter arrays, but Microsoft SQL Server does:
https://msdn.microsoft.com/en-us/library/ms713841(v=vs.85).aspx

Github user 'gbegen' has apparently already implemented this functionality from an earlier fork of pyodbc (some years ago now), and his updates can be seen here:
gbegen@956201e

It would be great if those changes could be folded into the latest version of pyodbc. I for one would be extremely grateful.

building on mac os x 10.8, unknown command g++-4.2

I was trying to build on mac os x 10.8, and it was working fine until it was trying to link the binary and it was complaining that it couldn't find "g++-4.2", i had to create a symlink named g++-4.2 -> g++

Corvidae:pyodbc markgrandi$ python3 setup.py install --user
running install
running bdist_egg
running egg_info
creating pyodbc.egg-info
writing dependency_links to pyodbc.egg-info/dependency_links.txt
writing pyodbc.egg-info/PKG-INFO
writing top-level names to pyodbc.egg-info/top_level.txt
writing manifest file 'pyodbc.egg-info/SOURCES.txt'
reading manifest file 'pyodbc.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'tests/*'
writing manifest file 'pyodbc.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-intel/egg
running install_lib
running build_ext
building 'pyodbc' extension
creating build
creating build/temp.macosx-10.6-intel-3.3
creating build/temp.macosx-10.6-intel-3.3/Users
creating build/temp.macosx-10.6-intel-3.3/Users/markgrandi
creating build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code
creating build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git
creating build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc
creating build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/buffer.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/buffer.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/cnxninfo.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/cnxninfo.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/connection.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/connection.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/cursor.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/cursor.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/errors.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/errors.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/getdata.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/getdata.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/params.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/params.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/pyodbccompat.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbccompat.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/pyodbcdbg.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbcdbg.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/pyodbcmodule.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbcmodule.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/row.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/row.o -Wno-write-strings -Wno-deprecated-declarations
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -DPYODBC_VERSION=3.0.7 -UMAC_OS_X_VERSION_10_7 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c /Users/markgrandi/Code/git/pyodbc/src/sqlwchar.cpp -o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/sqlwchar.o -Wno-write-strings -Wno-deprecated-declarations
creating build/lib.macosx-10.6-intel-3.3
g++-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/buffer.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/cnxninfo.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/connection.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/cursor.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/errors.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/getdata.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/params.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbccompat.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbcdbg.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/pyodbcmodule.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/row.o build/temp.macosx-10.6-intel-3.3/Users/markgrandi/Code/git/pyodbc/src/sqlwchar.o -liodbc -o build/lib.macosx-10.6-intel-3.3/pyodbc.so
unable to execute g++-4.2: No such file or directory
error: command 'g++-4.2' failed with exit status 1

execute unicode str without parameters

When using unicode query string, query doesn't execute.

import pyodbc
con = pyodbc.connect('DSN=Northwind; UID=vte; PWD=vte')
res = con.cursor().execute(u"select * from Customers where CustomerID = 'ĄŁÓ$!'").fetchall()
print len(res)
#output: 0, should be 1

When encoding query string utf-8 the result is the same - 0

My configuration on Ubuntu 10.04

FreeTDS 0.91 freetds.conf

[global]
        # TDS protocol version
        tds version = 8.0
        client charset = UTF-8
        text size = 64512

[mssql]
        host = hostname.somedomain
        port = 1433
        tds version = 8.0

unixODBC 2.3.0 odbcinst.ini

[FreeTDS]
Driver          = /usr/local/lib/libtdsodbc.so

[SQLServer]
Driver          = /usr/local/lib/libtdsodbc.so

obdc.ini

[Northwind]
Description = MS SQL Database
Driver      = FreeTDS
Servername  = mssql
Database    = Northwind
UID     = 
PWD     = 
Port        = 1433

pyodbc-3.0.2_beta01-py2.6

Select works fine when using
isql

isql Northwind vte vte
select * from Customers where CustomerID = 'ĄŁÓ$!'

or tsql

tsql -S mssql -U vte -P vte
use Northwind
go
select * from Customers where CustomerID = 'ĄŁÓ$!'
go

Documentation -> Tips and Tricks -> Column names

I cite:

Of course you can always extract the value by index:

   count = cursor.execute("select count(*) from users").fetchone()[0]
   print('{} users'.format(row.user_count)

Should obviously be:

Of course you can always extract the value by index:

   count = cursor.execute("select count(*) from users").fetchone()[0]
   print('{} users'.format(count)

on https://mkleehammer.github.io/pyodbc/ that page. I can't find where to file a pull request for it, so just leaving that here.

Losing exceptions generated within Stored Procedures in MS SQL Server 2012

Hi, I have a strange one, whereby I seem to be losing exceptions from MS SQL Server.
When I invoke a stored procedure, using the 'ProofOfPyodbcError.py' (attached), I receive exceptions up until I do some sort of Update DDL in the Stored Procedure.
Prior to the Insert/Update/Delete, I can receive exceptions.

The ProofOfPyodbcError.py script has hard coded Database connection string, so it will need to be tweaked if you wish to run it.

After the Insert/Update/Delete, it doesn't matter what I do, no exceptions are received by the python code.

The attached Proof_Of_Error_DDL.sql will establish a test table and stored procedure, although, the script does have a hard coded Database name in it.

The ODBC settings are done using C:\Windows\SysWOW64\odbcad32.exe to create a "System DSN", which is used in the Database connection string.

Am I simply doing something wrong with my Python code or is there something deeper?

I originally hit this whilst using SQLAlchemy but have narrowed it down to pyodbc.

Environment:

Windows 7 Microsoft Windows NT 6.1 (7601) 64 bit
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
pyodbc-3.0.10.-cp27-none-win32.whl
Microsoft SQL Server Enterprise (64-bit) 2012 (11.0.3128.0) Unclustered, stand alone on a development workstation

Suggestions more than welcomed!

DDL to create Stored Procedure and Table used by Stored Procedure.

use mssql_db_dev

drop table [dbo].[proof_of_error];

CREATE TABLE [dbo].[proof_of_error](
    [col1] [int] NOT NULL,
    [col2] [int] NOT NULL,
    [col3] [smallint] NULL,
    CONSTRAINT [PK_proof_of_error] PRIMARY KEY NONCLUSTERED 
(
    [col1] ASC,
    [col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY];


USE [mssql_db_dev]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE [dbo].[spProofOfError]
GO

-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[spProofOfError] @doDelete int = 0
AS
BEGIN
    declare @anInteger int;
    set @anInteger = 123;
    --print '@doDelete = '+ cast(@doDelete as nvarchar)

    if @doDelete = 1
    BEGIN
        BEGIN TRY
        --delete nothing.
            --print 'executing delete'
            DELETE [proof_of_error]
             WHERE col1 = 1 AND col2 = 1;
            --print 'Execute delete completed.'
        END TRY
        BEGIN CATCH
            --print 'Exception whilst executing delete'
            set @anInteger = 'UNEXPECTED DELETE ERROR';
        END CATCH;
    END
    ELSE
    BEGIN
        --print 'Did not Execute Delete'
        set @anInteger = 'DID NOT EXECUTE DELETE';
    END;
    -- print 'exception regardless of which path taken'
    set @anInteger = 'ERROR REGARDLESS OF PATH';

    --print 'Returning @anInteger = '+cast(@anInteger as nvarchar)
    return @anInteger
END
GO

Proof to show that SQL Server does raise exceptions when expected, using the execution mechanism as captured by SQL Trace.

use mssql_db_dev
declare @p1 int

BEGIN TRY
print 'Running Delete'
set @p1=NULL
exec sp_prepexec @p1 output,
N'@P1 int',
N'
declare @result int;
EXEC @result = spProofOfError @P1;
select @result as result;
',1;
END TRY
BEGIN CATCH
    SELECT 'With Delete'
        ,ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;

BEGIN TRY
print 'Without running Delete'
 set @p1=NULL
 exec sp_prepexec @p1 output,
 N'@P1 int',
 N'
 declare @result int;
 EXEC @result = spProofOfError @P1;
 select @result as result;
 ',
 0;
END TRY
BEGIN CATCH
    SELECT 'Without Delete'
        ,ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;

Python code using pyodbc to invoke the above stored procedure, expecting the same results as manually executing the stored proc in SQL Server Management Studio

from __future__ import print_function
import logging
logging.basicConfig(level=logging.DEBUG)

#Default logging, overridden by command line option right down the bottom of this file
logger = logging.getLogger("ProofOfError")
logger.setLevel(logging.DEBUG)


import pyodbc
print("pyodbc version = ", pyodbc.version)
logger.debug("Attempting connection to ***DEV WORKSTATION*** SQL Server for info (hard coded credentials for ODBC PFdb)")

db = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=mssql_db_dev;UID=db_user_dev;PWD=dev')
logger.debug("Connection succeeded")

executeStoredProcedureSQL = """
declare @result int;
EXEC @result = spProofOfError ?;
select @result as result;
"""
#executeStoredProcedureSQL = """select count(1)+1 from dbo.proof_of_error;"""
logger.debug("SQL = '%s'", executeStoredProcedureSQL)

try:
    logger.info('\n\nRunning WITHOUT DELETE')
    cursor = db.cursor()
    cursor.execute(executeStoredProcedureSQL, (0,))  # zero does not run the DELETE
    logger.debug("cursor.description = ", cursor.description)
    if cursor.description:
        row = cursor.fetchone()
        if row:
            logger.debug("column[0] = %s", repr(row[0]))
        else:
            logger.debug("no rows returned")

except Exception as ex:
    logger.error("exception ignored - "+repr(ex))
finally:
    if cursor:
        cursor.close
    else:
        logger.debug("Cursor None")

try:
    logger.info('\n\nRunning WITH DELETE')
    cursor = db.cursor()
    cursor.execute(executeStoredProcedureSQL, (1,))   # 1 runs the DELETE
    logger.debug("cursor.description = %s", cursor.description)
    if cursor.description:
        row = cursor.fetchone()
        if row:
            logger.debug("column[0] = %s", repr(row[0]))
        else:
            logger.debug("no rows returned")

except Exception as ex:
    logger.error("exception ignored - "+repr(ex))
finally:
    if cursor:
        cursor.close
    else:
        logger.debug("Cursor None")

Mac OS X 10.10 - build for unixODBC

pyodbc 3.0.7 cannot be compiled with unixODBC support on 10.10
I fixed it by myself with

elif sys.platform == 'darwin':
        # OS/X now ships with iODBC.
        settings['libraries'].append('odbc')

but may be it's better to add some installation option or something else.

unicode parameters on pyodbc -> unixodbc -> freetds

I am using Ubuntu 9.04

I have installed the following package versions:

unixodbc and unixodbc-dev: 2.2.11-16build3
tdsodbc: 0.82-4
libsybdb5: 0.82-4
freetds-common and freetds-dev: 0.82-4

I have configured /etc/unixodbc.ini like this:

[FreeTDS]
Description             = TDS driver (Sybase/MS SQL)
Driver          = /usr/lib/odbc/libtdsodbc.so
Setup           = /usr/lib/odbc/libtdsS.so
CPTimeout               = 
CPReuse         = 
UsageCount              = 2

I have configured /etc/freetds/freetds.conf like this:

[global]
    tds version = 8.0
    client charset = UTF-8

I have grabbed pyodbc revision 31e2fae from http://github.com/mkleehammer/pyodbc and installed it using "python setup.py install"

I have a windows machine with Microsoft SQL Server 2000 installed on my local network, up and listening on the local ip address 10.32.42.69. I have an empty database created with name "Common". I have the user "sa" with password "secret" with full priviledges.

I am using the following python code to setup the connection:

import pyodbc
odbcstring = "SERVER=10.32.42.69;UID=sa;PWD=secret;DATABASE=Common;DRIVER=FreeTDS"
con = pyodbc.connect(s)
cur = con.cursor()
cur.execute('''
CREATE TABLE testing (
    id INTEGER NOT NULL IDENTITY(1,1), 
    name NVARCHAR(200) NULL, 
    PRIMARY KEY (id)
)
    ''')
con.commit()

Everything WORKS up to this point. I have used SQLServer's Enterprise Manager on the server and the new table is there. Now I want to insert some data on the table.

cur = con.cursor()
cur.execute('INSERT INTO testing (name) VALUES (?)', (u'áéí',))

That fails!! Seems like pyodbc won't accept a unicode object. Here's the error I get:

pyodbc.Error: ('HY004', '[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)'

Since my freetds client is configured to use UTF-8 as above, I thought I could solve by encoding data to UTF-8. That gives no error, but then I get back strange data when I query. pyodbc returns unicode strings, and decoded with the wrong encoding so the chars are wrong.

If I can't insert an unicode string, why do I get those back? And wrong?

Add interval support

I plan to submit a patch to fix support for intervals, particularly with a Vertica backend. Is there anything in particular I should read before submitting my patch? Perhaps regarding code style, licenses, etc?

I made a Google Groups post here but I am not sure if that is monitored much.

Problems with detecting parameter markers

pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 12 parameters were supplied', 'HY000')

I have this problem when using insert into x values (?,?)

Update from 3.0.7 to 3.0.9, fails SQL Server connection

I've recently upgraded from using 3.0.7 of this library to 3.0.9 and get the following error when it tries to connect to Microsoft SQL Server.

Traceback (most recent call last):
File "test_query_guide.py", line 71, in
spec_cursor.execute("SELECT * FROM [SQL API]")
pyodbc.ProgrammingError: ('42000', "[42000] [FreeTDS][SQL Server]Could not find stored procedure 'S'. (2812) (SQLExecDirectW)")

For now, I've rolled back to 3.0.7.

Decimal columns with NULL value cause MemoryError exception

This query when executed against a SQL Server in Pyodbc 3.0.7 on Mac OS X using iODBC will raise a MemoryError:

SELECT CAST(NULL AS DECIMAL)

There is no issue when tried directly in FreeTDS directly via tsql (0.91).

(UPDATED: Added version, Mac OS X and iODBC to description.)

3.0.8 won't build on Windows with MSVC

C:\Windows\system32>pip install pyodbc
Collecting pyodbc
  Downloading pyodbc-3.0.8.tar.gz (70kB)
    100% |################################| 73kB 431kB/s
Installing collected packages: pyodbc
  Running setup.py install for pyodbc
[...]
    C:\Users\root\AppData\Local\Temp\pip-build-tf74nvw9\pyodbc\src\getdata.cpp(466) : error C2057: expected constant expression
    C:\Users\root\AppData\Local\Temp\pip-build-tf74nvw9\pyodbc\src\getdata.cpp(466) : error C2466: cannot allocate an array of constant size 0
    C:\Users\root\AppData\Local\Temp\pip-build-tf74nvw9\pyodbc\src\getdata.cpp(466) : error C2133: 'buffer' : unknown size
    C:\Users\root\AppData\Local\Temp\pip-build-tf74nvw9\pyodbc\src\getdata.cpp(471) : error C2070: 'SQLWCHAR []': illegal sizeof operand

It seems like 48e6732 was the commit that introduced this problem. Declaring buffsize in GetDataDecimal as "const" should fix it, or eliminating buffsize and just comparing cbFetched to sizeof(buffer).

UnicodeDecodeError

I'm trying to write a django-pyodbc-informix driver.

I have the following problem:
ipdb> self.cursor.execute("SELECT DBINFO('sqlca.sqlerrd1') FROM SYSTABLES")
*** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 1: invalid start byte

Also:
cursor.execute("SELECT FIRST 1 'x' FROM SYSTABLES")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 1: invalid continuation byte

But:
ipdb> self.cursor.execute('SELECT FIRST 1 * FROM SYSTABLES')
<pyodbc.Cursor object at 0x7fb3a973bdb0>

So apparently the ' is giving problems. =(

any help would be greatly appreciated

Teradata 64-Bit ODBC Long/Int Cast Issues

With Teradata 14.00 64-bit ODBC using unixODBC (Linux 12.04) running pyodbc (3.11b8) integer values are incorrectly represented:

In [16]: cur.execute("select 1").fetchall()
Out[16]: [(140376711102465, )]

In [17]: cur.execute("select cast(1 as int)").fetchall()
Out[17]: [(140376711102465, )]

In order to work I need to cast the values manually to bigint:

In [18]: cur.execute("select cast(1 as bigint)").fetchall()
Out[18]: [(1L, )]

Verified this issue also exists in pyodbc 3.0.7 as well.

Per Teradata's docs a integer type is signed 4-byte (-2.147B - 2.147B) number. The value returned by pyodbc appears to far larger than that though.

Problem appears similar to: #42

Contributing to the documentation?

Sorry if I missed something obvious, but is there a way we can easier contribute changes / enhancements to the documentation on github.io?

python crashes during pyodbc connect method to as400

I was trying to get stored procedures on the as400 to return a result set (testing with pyodbc and pypyodbc, python 2.7 64 bit, windows 7), found a bug in the windows iseries access odbc driver was the issue (as it worked on linux using ibm's linux driver and isql).

Having applied the latest windows iseries access patch si55797 , now found result set works fine with pypyodbc, but now pyodbc crashes python.exe as soon as it gets to the connect method, regardless of pyodbc version used, 64 or 32 bit versions, string or unicode connection string, exactly same issue was reported here

I've used a simple select query to get odbc log traces from pyodbc (crashes python) and pypyodbc (works ok)

import pyodbc
    connection = pyodbc.connect('DSN=scuksg;Uid=*******;Pwd=*******;CCSID=1208') # 
    cur = connection.cursor()
    print cur.execute("select lname from irmpr.address").fetchone()

pyodbc log

Pythonwin 1698-b94 ENTER SQLSetEnvAttr
SQLHENV 0x0000000000000000
SQLINTEGER 201 <SQL_ATTR_CONNECTION_POOLING>
SQLPOINTER 2 <SQL_CP_ONE_PER_HENV>
SQLINTEGER 4

Pythonwin 1698-b94 EXIT SQLSetEnvAttr with return code 0 (SQL_SUCCESS)
SQLHENV 0x0000000000000000
SQLINTEGER 201 <SQL_ATTR_CONNECTION_POOLING>
SQLPOINTER 2 <SQL_CP_ONE_PER_HENV>
SQLINTEGER 4

Pythonwin 1698-b94 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x0000000004CDA698

Pythonwin 1698-b94 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x0000000004CDA698 ( 0x000000000092F850)

Pythonwin 1698-b94 ENTER SQLSetEnvAttr
SQLHENV 0x000000000092F850
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 3 <SQL_OV_ODBC3>
SQLINTEGER 4

Pythonwin 1698-b94 EXIT SQLSetEnvAttr with return code 0 (SQL_SUCCESS)
SQLHENV 0x000000000092F850
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 3 <SQL_OV_ODBC3>
SQLINTEGER 4

Pythonwin 1698-b94 ENTER SQLAllocHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x000000000092F850
SQLHANDLE * 0x000000000012D480

Pythonwin 1698-b94 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x000000000092F850
SQLHANDLE * 0x000000000012D480 ( 0x000000000092F920)

Pythonwin 1698-b94 ENTER SQLDriverConnectW
HDBC 0x000000000092F920
HWND 0x0000000000000000
WCHAR * 0x000007FEE0C58F08 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x000007FEE0C58F08
SWORD -3
SWORD * 0x0000000000000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

Pythonwin 1698-b94 EXIT SQLDriverConnectW with return code 0 (SQL_SUCCESS)
HDBC 0x000000000092F920
HWND 0x0000000000000000
WCHAR * 0x000007FEE0C58F08 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x000007FEE0C58F08 <Invalid buffer length!> [-3]
SWORD -3
SWORD * 0x0000000000000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

Pythonwin 1698-b94 ENTER SQLSetConnectAttr
SQLHDBC 0x000000000092F920
SQLINTEGER 102 <SQL_ATTR_AUTOCOMMIT>
SQLPOINTER 0 <SQL_AUTOCOMMIT_OFF>
SQLINTEGER -5

Pythonwin 1698-b94 EXIT SQLSetConnectAttr with return code 0 (SQL_SUCCESS)
SQLHDBC 0x000000000092F920
SQLINTEGER 102 <SQL_ATTR_AUTOCOMMIT>
SQLPOINTER 0 <SQL_AUTOCOMMIT_OFF>
SQLINTEGER -5

Pythonwin 1698-b94 ENTER SQLGetInfoW
HDBC 0x000000000092F920
UWORD 77 <SQL_DRIVER_ODBC_VER>
PTR 0x000000000092FF20
SWORD 40
SWORD * 0x000000000012D438

Pythonwin 1698-b94 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 0x000000000092F920
UWORD 77 <SQL_DRIVER_ODBC_VER>
PTR 0x000000000092FF20 [ 10] "03.51"
SWORD 40
SWORD * 0x000000000012D438 (10)

Pythonwin 1698-b94 ENTER SQLGetInfoW
HDBC 0x000000000092F920
UWORD 10002 <SQL_DESCRIBE_PARAMETER>
PTR 0x00000000007CA3E0
SWORD 4
SWORD * 0x000000000012D438

Pythonwin 1698-b94 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 0x000000000092F920
UWORD 10002 <SQL_DESCRIBE_PARAMETER>
PTR 0x00000000007CA3E0 [ 2] "Y"
SWORD 4
SWORD * 0x000000000012D438 (2)

Pythonwin 1698-b94 ENTER SQLGetInfoW
HDBC 0x000000000092F920
UWORD 111 <SQL_NEED_LONG_DATA_LEN>
PTR 0x00000000007CA3E0
SWORD 4
SWORD * 0x000000000012D438

Pythonwin 1698-b94 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 0x000000000092F920
UWORD 111 <SQL_NEED_LONG_DATA_LEN>
PTR 0x00000000007CA3E0 [ 2] "N"
SWORD 4
SWORD * 0x000000000012D438 (2)

Pythonwin 1698-b94 ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000092F920
SQLHANDLE * 0x000000000012D3E0

Pythonwin 1698-b94 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000092F920
SQLHANDLE * 0x000000000012D3E0 ( 0x00000000007CA7A0)

Pythonwin 1698-b94 ENTER SQLGetTypeInfo
HSTMT 0x00000000007CA7A0
SWORD 93 <SQL_TYPE_TIMESTAMP>

Pythonwin 1698-b94 EXIT SQLGetTypeInfo with return code 0 (SQL_SUCCESS)
HSTMT 0x00000000007CA7A0
SWORD 93 <SQL_TYPE_TIMESTAMP>

Pythonwin 1698-b94 ENTER SQLFetch
HSTMT 0x00000000007CA7A0

Pythonwin 1698-b94 EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 0x00000000007CA7A0

Pythonwin 1698-b94 ENTER SQLGetData
HSTMT 0x00000000007CA7A0
UWORD 3
SWORD 4 <SQL_C_LONG>
PTR
SQLLEN 4
SQLLEN * 0x0000000000000000

pypyodbc log

Pythonwin 16a4-bec ENTER SQLSetEnvAttr
SQLHENV 0x0000000000000000
SQLINTEGER 201 <SQL_ATTR_CONNECTION_POOLING>
SQLPOINTER 2 <SQL_CP_ONE_PER_HENV>
SQLINTEGER -5

Pythonwin 16a4-bec EXIT SQLSetEnvAttr with return code 0 (SQL_SUCCESS)
SQLHENV 0x0000000000000000
SQLINTEGER 201 <SQL_ATTR_CONNECTION_POOLING>
SQLPOINTER 2 <SQL_CP_ONE_PER_HENV>
SQLINTEGER -5

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x0000000003E28A90

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x0000000003E28A90 ( 0x0000000000A1F850)

Pythonwin 16a4-bec ENTER SQLSetEnvAttr
SQLHENV 0x0000000000A1F850
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 3 <SQL_OV_ODBC3>
SQLINTEGER 0

Pythonwin 16a4-bec EXIT SQLSetEnvAttr with return code 0 (SQL_SUCCESS)
SQLHENV 0x0000000000A1F850
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 3 <SQL_OV_ODBC3>
SQLINTEGER 0

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0000000000A1F850
SQLHANDLE * 0x0000000003E28410

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0000000000A1F850
SQLHANDLE * 0x0000000003E28410 ( 0x0000000000A1F920)

Pythonwin 16a4-bec ENTER SQLDriverConnectW
HDBC 0x0000000000A1F920
HWND 0x0000000000000000
WCHAR * 0x000007FEECC08F08 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x000007FEECC08F08
SWORD -3
SWORD * 0x0000000000000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

Pythonwin 16a4-bec EXIT SQLDriverConnectW with return code 0 (SQL_SUCCESS)
HDBC 0x0000000000A1F920
HWND 0x0000000000000000
WCHAR * 0x000007FEECC08F08 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x000007FEECC08F08 <Invalid buffer length!> [-3]
SWORD -3
SWORD * 0x0000000000000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

Pythonwin 16a4-bec ENTER SQLSetConnectAttr
SQLHDBC 0x0000000000A1F920
SQLINTEGER 102 <SQL_ATTR_AUTOCOMMIT>
SQLPOINTER 0 <SQL_AUTOCOMMIT_OFF>
SQLINTEGER -5

Pythonwin 16a4-bec EXIT SQLSetConnectAttr with return code 0 (SQL_SUCCESS)
SQLHDBC 0x0000000000A1F920
SQLINTEGER 102 <SQL_ATTR_AUTOCOMMIT>
SQLPOINTER 0 <SQL_AUTOCOMMIT_OFF>
SQLINTEGER -5

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003E28D90

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003E28D90 ( 0x000000000088A7A0)

Pythonwin 16a4-bec ENTER SQLGetTypeInfo
HSTMT 0x000000000088A7A0
SWORD 93 <SQL_TYPE_TIMESTAMP>

Pythonwin 16a4-bec EXIT SQLGetTypeInfo with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD 93 <SQL_TYPE_TIMESTAMP>

Pythonwin 16a4-bec ENTER SQLRowCount
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E28E90

Pythonwin 16a4-bec EXIT SQLRowCount with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E28E90 (1)

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003E45610

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003E45610 (19)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0 [ 9] "TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003E28F90 (9)
SWORD * 0x0000000003E45110 (12)
SQLULEN * 0x0000000003E45210 (128)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0 [ 9] "DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003E28F90 (9)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0 [ 11] "COLUMN_SIZE"
SWORD 1024
SWORD * 0x0000000003E28F90 (11)
SWORD * 0x0000000003E45110 (4)
SQLULEN * 0x0000000003E45210 (10)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_PREFIX"
SWORD 1024
SWORD * 0x0000000003E28F90 (14)
SWORD * 0x0000000003E45110 (12)
SQLULEN * 0x0000000003E45210 (128)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_SUFFIX"
SWORD 1024
SWORD * 0x0000000003E28F90 (14)
SWORD * 0x0000000003E45110 (12)
SQLULEN * 0x0000000003E45210 (128)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0 [ 13] "CREATE_PARAMS"
SWORD 1024
SWORD * 0x0000000003E28F90 (13)
SWORD * 0x0000000003E45110 (12)
SQLULEN * 0x0000000003E45210 (128)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0 [ 8] "NULLABLE"
SWORD 1024
SWORD * 0x0000000003E28F90 (8)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0 [ 14] "CASE_SENSITIVE"
SWORD 1024
SWORD * 0x0000000003E28F90 (14)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0 [ 10] "SEARCHABLE"
SWORD 1024
SWORD * 0x0000000003E28F90 (10)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0 [ 18] "UNSIGNED_ATTRIBUTE"
SWORD 1024
SWORD * 0x0000000003E28F90 (18)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0 [ 16] "FIXED_PREC_SCALE"
SWORD 1024
SWORD * 0x0000000003E28F90 (16)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0 [ 17] "AUTO_UNIQUE_VALUE"
SWORD 1024
SWORD * 0x0000000003E28F90 (17)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0 [ 15] "LOCAL_TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003E28F90 (15)
SWORD * 0x0000000003E45110 (12)
SQLULEN * 0x0000000003E45210 (128)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0 [ 13] "MINIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003E28F90 (13)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0 [ 13] "MAXIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003E28F90 (13)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0 [ 13] "SQL_DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003E28F90 (13)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0 [ 16] "SQL_DATETIME_SUB"
SWORD 1024
SWORD * 0x0000000003E28F90 (16)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0 [ 14] "NUM_PREC_RADIX"
SWORD 1024
SWORD * 0x0000000003E28F90 (14)
SWORD * 0x0000000003E45110 (4)
SQLULEN * 0x0000000003E45210 (10)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710
SQLPOINTER 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003E45610
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003E45710 (0)
SQLPOINTER 0x0000000003E45310 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28F90
SWORD * 0x0000000003E45110
SQLULEN * 0x0000000003E45210
SWORD * 0x0000000003E45410
SWORD * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0 [ 18] "INTERVAL_PRECISION"
SWORD 1024
SWORD * 0x0000000003E28F90 (18)
SWORD * 0x0000000003E45110 (5)
SQLULEN * 0x0000000003E45210 (5)
SWORD * 0x0000000003E45410 (0)
SWORD * 0x0000000003E45510 (1)

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003E45610

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003E45610 (19)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003E45710

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003E45710 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1E60
SQLLEN 73014444182
SQLLEN * 0x0000000003E45A10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1E60
SQLLEN 73014444182
SQLLEN * 0x0000000003E45A10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1F00
SQLLEN 73014444182
SQLLEN * 0x0000000003E48C90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1F00
SQLLEN 73014444182
SQLLEN * 0x0000000003E48C90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F0A690

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F0A690 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F0AD90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F0AD90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F0AF10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F0AF10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 73014444182
SQLLEN * 0x0000000003F14190

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 73014444182
SQLLEN * 0x0000000003F14190 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 73014444182
SQLLEN * 0x0000000003F14390

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 73014444182
SQLLEN * 0x0000000003F14390 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 150
SQLLEN * 0x0000000003F14510

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 150
SQLLEN * 0x0000000003F14510 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 73014444182
SQLLEN * 0x0000000003F14690

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 73014444182
SQLLEN * 0x0000000003F14690 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 73014444182
SQLLEN * 0x0000000003F14C90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 73014444182
SQLLEN * 0x0000000003F14C90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 73014444182
SQLLEN * 0x0000000003F14D10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 73014444182
SQLLEN * 0x0000000003F14D10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003F14E90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003F14E90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 73014444182
SQLLEN * 0x0000000003F3BD90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 73014444182
SQLLEN * 0x0000000003F3BD90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 73014444182
SQLLEN * 0x0000000003F89810

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 73014444182
SQLLEN * 0x0000000003F89810 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 73014444182
SQLLEN * 0x0000000003F9CE10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 73014444182
SQLLEN * 0x0000000003F9CE10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 150
SQLLEN * 0x0000000003F9CF90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 150
SQLLEN * 0x0000000003F9CF90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 73014444182
SQLLEN * 0x0000000003FFA110

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 73014444182
SQLLEN * 0x0000000003FFA110 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 73014444182
SQLLEN * 0x0000000003FFA210

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 73014444182
SQLLEN * 0x0000000003FFA210 (0)

Pythonwin 16a4-bec ENTER SQLFetch
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec ENTER SQLFreeHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003E45510 ( 0x000000000088A7A0)

Pythonwin 16a4-bec ENTER SQLGetTypeInfo
HSTMT 0x000000000088A7A0
SWORD 91 <SQL_TYPE_DATE>

Pythonwin 16a4-bec EXIT SQLGetTypeInfo with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD 91 <SQL_TYPE_DATE>

Pythonwin 16a4-bec ENTER SQLRowCount
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E48C90

Pythonwin 16a4-bec EXIT SQLRowCount with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E48C90 (1)

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14190

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14190 (19)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0 [ 9] "TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003F06810 (9)
SWORD * 0x0000000003F0A690 (12)
SQLULEN * 0x0000000003F0AD90 (128)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0 [ 9] "DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003F06810 (9)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0 [ 11] "COLUMN_SIZE"
SWORD 1024
SWORD * 0x0000000003F06810 (11)
SWORD * 0x0000000003F0A690 (4)
SQLULEN * 0x0000000003F0AD90 (10)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_PREFIX"
SWORD 1024
SWORD * 0x0000000003F06810 (14)
SWORD * 0x0000000003F0A690 (12)
SQLULEN * 0x0000000003F0AD90 (128)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_SUFFIX"
SWORD 1024
SWORD * 0x0000000003F06810 (14)
SWORD * 0x0000000003F0A690 (12)
SQLULEN * 0x0000000003F0AD90 (128)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0 [ 13] "CREATE_PARAMS"
SWORD 1024
SWORD * 0x0000000003F06810 (13)
SWORD * 0x0000000003F0A690 (12)
SQLULEN * 0x0000000003F0AD90 (128)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0 [ 8] "NULLABLE"
SWORD 1024
SWORD * 0x0000000003F06810 (8)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0 [ 14] "CASE_SENSITIVE"
SWORD 1024
SWORD * 0x0000000003F06810 (14)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0 [ 10] "SEARCHABLE"
SWORD 1024
SWORD * 0x0000000003F06810 (10)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0 [ 18] "UNSIGNED_ATTRIBUTE"
SWORD 1024
SWORD * 0x0000000003F06810 (18)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0 [ 16] "FIXED_PREC_SCALE"
SWORD 1024
SWORD * 0x0000000003F06810 (16)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0 [ 17] "AUTO_UNIQUE_VALUE"
SWORD 1024
SWORD * 0x0000000003F06810 (17)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0 [ 15] "LOCAL_TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003F06810 (15)
SWORD * 0x0000000003F0A690 (12)
SQLULEN * 0x0000000003F0AD90 (128)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0 [ 13] "MINIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003F06810 (13)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0 [ 13] "MAXIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003F06810 (13)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0 [ 13] "SQL_DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003F06810 (13)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0 [ 16] "SQL_DATETIME_SUB"
SWORD 1024
SWORD * 0x0000000003F06810 (16)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0 [ 14] "NUM_PREC_RADIX"
SWORD 1024
SWORD * 0x0000000003F06810 (14)
SWORD * 0x0000000003F0A690 (4)
SQLULEN * 0x0000000003F0AD90 (10)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090
SQLPOINTER 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14190
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14090 (0)
SQLPOINTER 0x0000000003F0A210 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F06810
SWORD * 0x0000000003F0A690
SQLULEN * 0x0000000003F0AD90
SWORD * 0x0000000003F0AF10
SWORD * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0 [ 18] "INTERVAL_PRECISION"
SWORD 1024
SWORD * 0x0000000003F06810 (18)
SWORD * 0x0000000003F0A690 (5)
SQLULEN * 0x0000000003F0AD90 (5)
SWORD * 0x0000000003F0AF10 (0)
SWORD * 0x0000000003F0AE10 (1)

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14190

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14190 (19)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F14090

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F14090 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1F00
SQLLEN 141733920918
SQLLEN * 0x0000000003F14290

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1F00
SQLLEN 141733920918
SQLLEN * 0x0000000003F14290 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 141733920918
SQLLEN * 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 141733920918
SQLLEN * 0x0000000003F14410 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F14790

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F14790 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F14D90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F14D90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 141733920918
SQLLEN * 0x0000000003F14E10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 141733920918
SQLLEN * 0x0000000003F14E10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 141733920918
SQLLEN * 0x0000000003F3BB10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 141733920918
SQLLEN * 0x0000000003F3BB10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 150
SQLLEN * 0x0000000003F89690

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 150
SQLLEN * 0x0000000003F89690 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 141733920918
SQLLEN * 0x0000000003F9CE10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 141733920918
SQLLEN * 0x0000000003F9CE10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 141733920918
SQLLEN * 0x0000000003F9CF10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 141733920918
SQLLEN * 0x0000000003F9CF10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 141733920918
SQLLEN * 0x0000000003E45610

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 141733920918
SQLLEN * 0x0000000003E45610 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003E45810

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003E45810 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 141733920918
SQLLEN * 0x0000000003E45410

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 141733920918
SQLLEN * 0x0000000003E45410 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 141733920918
SQLLEN * 0x0000000003E45210

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 141733920918
SQLLEN * 0x0000000003E45210 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 141733920918
SQLLEN * 0x0000000003E28D90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 141733920918
SQLLEN * 0x0000000003E28D90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 150
SQLLEN * 0x0000000003E28E90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 150
SQLLEN * 0x0000000003E28E90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 141733920918
SQLLEN * 0x0000000003FFD110

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 141733920918
SQLLEN * 0x0000000003FFD110 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1DC0
SQLLEN 141733920918
SQLLEN * 0x0000000003FFD210

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1DC0
SQLLEN 141733920918
SQLLEN * 0x0000000003FFD210 (0)

Pythonwin 16a4-bec ENTER SQLFetch
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec ENTER SQLFreeHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F0AE10

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F0AE10 ( 0x000000000088A7A0)

Pythonwin 16a4-bec ENTER SQLGetTypeInfo
HSTMT 0x000000000088A7A0
SWORD 92 <SQL_TYPE_TIME>

Pythonwin 16a4-bec EXIT SQLGetTypeInfo with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD 92 <SQL_TYPE_TIME>

Pythonwin 16a4-bec ENTER SQLRowCount
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003F14090

Pythonwin 16a4-bec EXIT SQLRowCount with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003F14090 (1)

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14690

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14690 (19)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0 [ 9] "TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003F14190 (9)
SWORD * 0x0000000003F14290 (12)
SQLULEN * 0x0000000003F14390 (128)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 2
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
UCHAR * 0x0000000002E2DAE0 [ 9] "DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003F14190 (9)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 3
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
UCHAR * 0x0000000002E2DAE0 [ 11] "COLUMN_SIZE"
SWORD 1024
SWORD * 0x0000000003F14190 (11)
SWORD * 0x0000000003F14290 (4)
SQLULEN * 0x0000000003F14390 (10)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 4
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_PREFIX"
SWORD 1024
SWORD * 0x0000000003F14190 (14)
SWORD * 0x0000000003F14290 (12)
SQLULEN * 0x0000000003F14390 (128)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 5
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
UCHAR * 0x0000000002E2DAE0 [ 14] "LITERAL_SUFFIX"
SWORD 1024
SWORD * 0x0000000003F14190 (14)
SWORD * 0x0000000003F14290 (12)
SQLULEN * 0x0000000003F14390 (128)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 6
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
UCHAR * 0x0000000002E2DAE0 [ 13] "CREATE_PARAMS"
SWORD 1024
SWORD * 0x0000000003F14190 (13)
SWORD * 0x0000000003F14290 (12)
SQLULEN * 0x0000000003F14390 (128)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 7
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
UCHAR * 0x0000000002E2DAE0 [ 8] "NULLABLE"
SWORD 1024
SWORD * 0x0000000003F14190 (8)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 8
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
UCHAR * 0x0000000002E2DAE0 [ 14] "CASE_SENSITIVE"
SWORD 1024
SWORD * 0x0000000003F14190 (14)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 9
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
UCHAR * 0x0000000002E2DAE0 [ 10] "SEARCHABLE"
SWORD 1024
SWORD * 0x0000000003F14190 (10)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 10
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
UCHAR * 0x0000000002E2DAE0 [ 18] "UNSIGNED_ATTRIBUTE"
SWORD 1024
SWORD * 0x0000000003F14190 (18)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 11
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
UCHAR * 0x0000000002E2DAE0 [ 16] "FIXED_PREC_SCALE"
SWORD 1024
SWORD * 0x0000000003F14190 (16)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 12
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
UCHAR * 0x0000000002E2DAE0 [ 17] "AUTO_UNIQUE_VALUE"
SWORD 1024
SWORD * 0x0000000003F14190 (17)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 13
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (128)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
UCHAR * 0x0000000002E2DAE0 [ 15] "LOCAL_TYPE_NAME"
SWORD 1024
SWORD * 0x0000000003F14190 (15)
SWORD * 0x0000000003F14290 (12)
SQLULEN * 0x0000000003F14390 (128)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 14
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
UCHAR * 0x0000000002E2DAE0 [ 13] "MINIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003F14190 (13)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 15
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
UCHAR * 0x0000000002E2DAE0 [ 13] "MAXIMUM_SCALE"
SWORD 1024
SWORD * 0x0000000003F14190 (13)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 16
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
UCHAR * 0x0000000002E2DAE0 [ 13] "SQL_DATA_TYPE"
SWORD 1024
SWORD * 0x0000000003F14190 (13)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (0)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 17
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
UCHAR * 0x0000000002E2DAE0 [ 16] "SQL_DATETIME_SUB"
SWORD 1024
SWORD * 0x0000000003F14190 (16)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 18
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (11)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
UCHAR * 0x0000000002E2DAE0 [ 14] "NUM_PREC_RADIX"
SWORD 1024
SWORD * 0x0000000003F14190 (14)
SWORD * 0x0000000003F14290 (4)
SQLULEN * 0x0000000003F14390 (10)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790
SQLPOINTER 0x0000000003F14410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 19
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F14690
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F14790 (0)
SQLPOINTER 0x0000000003F14410 (6)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003F14190
SWORD * 0x0000000003F14290
SQLULEN * 0x0000000003F14390
SWORD * 0x0000000003F14510
SWORD * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
UCHAR * 0x0000000002E2DAE0 [ 18] "INTERVAL_PRECISION"
SWORD 1024
SWORD * 0x0000000003F14190 (18)
SWORD * 0x0000000003F14290 (5)
SQLULEN * 0x0000000003F14390 (5)
SWORD * 0x0000000003F14510 (0)
SWORD * 0x0000000003F14610 (1)

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14690

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F14690 (19)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F14790

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F14790 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 210453397654
SQLLEN * 0x0000000003F14D90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1FA0
SQLLEN 210453397654
SQLLEN * 0x0000000003F14D90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 210453397654
SQLLEN * 0x0000000003F14E10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2040
SQLLEN 210453397654
SQLLEN * 0x0000000003F14E10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F3BB10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 4
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003DF7B60
SQLLEN 2048
SQLLEN * 0x0000000003F3BB10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F89690

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 5
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403CEF0
SQLLEN 2048
SQLLEN * 0x0000000003F89690 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F89F90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 6
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403D700
SQLLEN 2048
SQLLEN * 0x0000000003F89F90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 210453397654
SQLLEN * 0x0000000003F9CF10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 7
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE20E0
SQLLEN 210453397654
SQLLEN * 0x0000000003F9CF10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 210453397654
SQLLEN * 0x0000000003E28D90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 8
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2180
SQLLEN 210453397654
SQLLEN * 0x0000000003E28D90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 150
SQLLEN * 0x0000000003E28F90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 9
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2220
SQLLEN 150
SQLLEN * 0x0000000003E28F90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 210453397654
SQLLEN * 0x0000000003E45710

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 10
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE22C0
SQLLEN 210453397654
SQLLEN * 0x0000000003E45710 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 210453397654
SQLLEN * 0x0000000003E45A10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 11
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2360
SQLLEN 210453397654
SQLLEN * 0x0000000003E45A10 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 210453397654
SQLLEN * 0x0000000003E45C90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 12
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2400
SQLLEN 210453397654
SQLLEN * 0x0000000003E45C90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003E45310

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 13
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000403DF10
SQLLEN 2048
SQLLEN * 0x0000000003E45310 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 210453397654
SQLLEN * 0x0000000003E45510

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 14
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE24A0
SQLLEN 210453397654
SQLLEN * 0x0000000003E45510 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 210453397654
SQLLEN * 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 15
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2540
SQLLEN 210453397654
SQLLEN * 0x0000000003F0A210 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 210453397654
SQLLEN * 0x0000000003F0A690

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 16
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE25E0
SQLLEN 210453397654
SQLLEN * 0x0000000003F0A690 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 150
SQLLEN * 0x0000000003E48C90

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 17
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE2680
SQLLEN 150
SQLLEN * 0x0000000003E48C90 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1DC0
SQLLEN 210453397654
SQLLEN * 0x0000000003FFD090

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 18
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1DC0
SQLLEN 210453397654
SQLLEN * 0x0000000003FFD090 (0)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1E60
SQLLEN 210453397654
SQLLEN * 0x0000000003FFD190

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 19
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000002DE1E60
SQLLEN 210453397654
SQLLEN * 0x0000000003FFD190 (0)

Pythonwin 16a4-bec ENTER SQLFetch
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec ENTER SQLFreeHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F14610

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F14610 ( 0x000000000088A7A0)

Pythonwin 16a4-bec ENTER SQLGetTypeInfo
HSTMT 0x000000000088A7A0
SWORD -154

Pythonwin 16a4-bec EXIT SQLGetTypeInfo with return code -1 (SQL_ERROR)
HSTMT 0x000000000088A7A0
SWORD -154

    DIAG [00000] [IBM][System i Access ODBC Driver]SQL data type argument out of range. (30030) 

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec ENTER SQLFreeHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x000000000088A7A0

Pythonwin 16a4-bec ENTER SQLGetInfoW
HDBC 0x0000000000A1F920
UWORD 6 <SQL_DRIVER_NAME>
PTR 0x000000000315F4F0
SWORD 1000
SWORD * 0x0000000003F3BD90

Pythonwin 16a4-bec EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 0x0000000000A1F920
UWORD 6 <SQL_DRIVER_NAME>
PTR 0x000000000315F4F0 [ 22] "CWBODBC.DLL"
SWORD 1000
SWORD * 0x0000000003F3BD90 (22)

Pythonwin 16a4-bec ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F3BD90

Pythonwin 16a4-bec EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0000000000A1F920
SQLHANDLE * 0x0000000003F3BD90 ( 0x000000000088A7A0)

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 0 <SQL_CLOSE>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 3 <SQL_RESET_PARAMS>

Pythonwin 16a4-bec ENTER SQLExecDirect
HSTMT 0x000000000088A7A0
UCHAR * 0x0000000003E3AC10 [ 31] "select lname from irmpr.address"
SDWORD 31

Pythonwin 16a4-bec EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UCHAR * 0x0000000003E3AC10 [ 31] "select lname from irmpr.address"
SDWORD 31

Pythonwin 16a4-bec ENTER SQLRowCount
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E48C90

Pythonwin 16a4-bec EXIT SQLRowCount with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SQLLEN * 0x0000000003E48C90 (-1)

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F0A210 (1)

Pythonwin 16a4-bec ENTER SQLColAttribute
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F0A210
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F0AF10
SQLPOINTER 0x0000000003E45410

Pythonwin 16a4-bec EXIT SQLColAttribute with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x000000000088A7A0
SQLSMALLINT 1
SQLSMALLINT 6 <SQL_DESC_DISPLAY_SIZE>
SQLPOINTER 0x0000000003F0A210
SQLSMALLINT 10
SQLSMALLINT * 0x0000000003F0AF10 (0)
SQLPOINTER 0x0000000003E45410 (30)

Pythonwin 16a4-bec ENTER SQLDescribeCol
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0
SWORD 1024
SWORD * 0x0000000003E28C10
SWORD * 0x0000000003E28D90
SQLULEN * 0x0000000003E45610
SWORD * 0x0000000003E45510
SWORD * 0x0000000003F06810

Pythonwin 16a4-bec EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
UCHAR * 0x0000000002E2DAE0 [ 5] "LNAME"
SWORD 1024
SWORD * 0x0000000003E28C10 (5)
SWORD * 0x0000000003E28D90 (1)
SQLULEN * 0x0000000003E45610 (30)
SWORD * 0x0000000003E45510 (0)
SWORD * 0x0000000003F06810 (1)

Pythonwin 16a4-bec ENTER SQLFreeStmt
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 2 <SQL_UNBIND>

Pythonwin 16a4-bec ENTER SQLNumResultCols
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F0A210

Pythonwin 16a4-bec EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
SWORD * 0x0000000003F0A210 (1)

Pythonwin 16a4-bec ENTER SQLBindCol
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F0AF10

Pythonwin 16a4-bec EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x0000000003E04380
SQLLEN 2048
SQLLEN * 0x0000000003F0AF10 (0)

Pythonwin 16a4-bec ENTER SQLFetch
HSTMT 0x000000000088A7A0

Pythonwin 16a4-bec EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000088A7A0

Overflow in GetDataDecimal()

Using pyodbc version 3.0.7 and 3.0.8-beta06 (latest from github) I get a bus error when trying to parse a decimal value returned from a bogus expression on iSeries (AS400).

For example this simple test segfaults every time:

print cur.execute("SELECT decimal('', 10, 2) FROM SYSIBM.SYSDUMMY1").fetchone()

It seems like SQLGetData() returns a bogus overflowed value in the cbFetched variable:

Program received signal SIGBUS, Bus error.
0x00007ffff560aca7 in GetDataDecimal (iCol=<optimized out>, cur=<optimized out>) at /home/jbq/pyodbc/src/getdata.cpp:486
486             if (buffer[i] == chDecimal)
(gdb) list
481
482         int cch = (int)(cbFetched / sizeof(SQLWCHAR));
483
484         for (int i = (cch - 1); i >= 0; i--)
485         {
486             if (buffer[i] == chDecimal)
487             {
488                 // Must force it to use '.' since the Decimal class doesn't pay attention to the locale.
489                 buffer[i] = '.';
490             }
(gdb) print cbFetched
$14 = 4294967295

Any help would be appreciated, as I haven't been able to figure out what's wrong. I'd be glad to provide more information if needed. I need this code to be working and willing to sponsor development if this could speedup resolution.

Thanks!

FetchMany MemoryError

I'm using an iterator with fetchmany to stream a large result out as CSV:

class ODBCContext:

     def __init__(self, odbc_connection_string):
        self.conn_str = odbc_connection_string

    def __enter__(self):
        self.connection = pyodbc.connect(self.conn_str)
        self.cursor = self.connection.cursor()
        return self.cursor

    def __exit__(self, error_type, error_value, traceback):
        self.cursor.close()
        self.connection.close()

def ResultIter(cursor, size=100):
    i = 0
    while True:
        part = cursor.fetchmany(size)
        i += len(part)
        print "fetched:", i
        if not part:
            print "break"
            break
        yield part

def StreamingCSV(connection_string, query, header=None):
        if header:
            yield string.join([header],',') + '\n'

        with ODBCContext(connection_string) as cursor:
            cursor.execute(query)
            for part in ResultIter(cursor):
                for row in part:
                    line = string.join([str(r) for r in row],',') + '\n'
                    yield line

For a large query, I can only get 3641 rows out of ~4300 before fetchmany throws a MemoryError.

I've tried a variety of array sizes, as well as fetchone. The error is consistent.

I've also monitored memory usage for the process and I'm not entirely convinced there is a legitimate memory error: physical memory remains stable around 25 megs, virtual at 2.5 gb. At no point do I get any telltale signs of a machine running out of memory.

Any thoughts?

Inline errors when building on Solaris 10 sparc

Hello, when building the source code on Solaris 10 (sparc) I get some errors related to inline functions. Any hint to fix this?

bash-3.2# uname -a
SunOS martin 5.10 Generic_147147-26 sun4v sparc sun4v

bash-3.2# CC -V
CC: Sun C++ 5.13 SunOS_sparc 2014/10/20

bash-3.2# python setup.py build
sh: git: not found
WARNING: git describe failed with: 256
WARNING: Unable to determine version. Using 3.0.0.0
running build
running build_ext
building 'pyodbc' extension
/usr/lib/python2.6/pycc -DNDEBUG -KPIC -DPYODBC_VERSION=3.0.0-unsupported -DPYODBC_UNICODE_WIDTH=2 -I/opt/DataAccess64/ODBC/dm/include -I/usr/include/python2.6 -c /tmp/pyodbc-master/src/buffer.cpp -o build/temp.solaris-2.10-sun4v-2.6/tmp/pyodbc-master/src/buffer.o -g0
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: "inline" is not allowed here.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: DWORD is not defined.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: grf is not defined.
"/tmp/pyodbc-master/src/pyodbc.h", line 69: Error: Badly formed expression.
4 Error(s) detected.
error: command '/usr/lib/python2.6/pycc' failed with exit status 2

Queries with results with big strings return nothing

I have a query that fetches not so big strings. In isql I query the length of the Content field and get this:

ID | TypeA | TypeB | LENGTH(Content)
-----------+---------+-----------+--------
292581866 | X | A | 62603
292581866 | X | B | 2481
292581866 | X | C | 59296

When I try to fetch this from pyodbc with the Content field, I get an empty result. If I query it without the Content field, I get the 3 rows.

I think this is similar to this: https://code.google.com/p/pyodbc/issues/detail?id=296

I am connecting to a HP Vertica database.

Installation tries to use iODBC on Mac OS 10.7.5

I'm on Mac OS 10.7.5, I've installed and configured freetds and unixodbc. I've used pip to install pyodbc (3.0.10). It should be using unixodbc by default, but when I try to connect to a db with the following piece of code on python2.7:

pyodbc.connect('DSN=DSN;UID=USER;PWD=PASS')

I get the following error:

"pyodbc.Error: ('IM002', '[IM002] [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded (0) (SQLDriverConnect)')"

Looks like it's still trying to use iODBC.

I can connect to the db with isql using the same configuration.

Release 3.0.7 on pypi

Hi, can we have a 3.0.7. release on pypi please? It fixes some unicode errors together with mssql, freetds and unixodbc and would be nice if we could just pin the version to 3.0.7.

thanks in advance.

Paypal - Beer?

OMG THANK YOU! 👍

I'm trying to get odbc working with Informix (and python3.4 on linux 64bit).

With version 3.0.7 I got
('t\x00e\x00s\x00t\x00b\x00r\x00a\x00i\x00n\x00', 'i\x00n\x00f\x00o\x00r\x00m\x00i\x00x\x00', 's\x00p\x00', 's\x00p\x00_\x00n\x00r\x00', ...
for a cur.columns.
And trying to run cursor.execute('...') would throw the funniest charset-Informix-bugs.

Anyways. I just realized you had a github-repo, which is newer and it fixed all my problems.
nerdgasm
Do you have a paypal-link, so I can buy you a beer? :)

Unable to pass a generator to executemany

I'm using Pyodbc 3.0.3.

Attempting to use the following code:

connection.cursor().executemany("INSERT INTO my_table (AN_INT) VALUES(?)",
     ((id_, ) for id_ in xrange(1000)))

results in a ProgrammingError - pyodbc is checking the the result is a sequence of the type Tuple, List or Row. Would it be possible to also add generators to the list of valid sequences that can be passed to this method?

Numeric module segfaulting when running with pyodbc==3.08

We are having issues with the latest pyodbc==3.08 on Ubuntu 12.04 and Python 2.7.

Decimal is working as expected:

Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import decimal
>>> 
KeyboardInterrupt
>>> 

However, when running in a virtualenv with the latest pyodbc, decimal can no longer be imported:

Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: Unable to import cdecimal or decimal
>>> import decimal
Segmentation fault

The relevant pyodbc compilation/installation:

pip install pyodbc==3.0.8
Downloading/unpacking pyodbc==3.0.8
  Downloading pyodbc-3.0.8.tar.gz (70kB): 70kB downloaded
  Running setup.py (path:/tmp/pyodbc-old/build/pyodbc/setup.py) egg_info for package pyodbc

    warning: no files found matching 'tests/*'
Installing collected packages: pyodbc
  Found existing installation: pyodbc 3.0.7
    Uninstalling pyodbc:
      Successfully uninstalled pyodbc
  Running setup.py install for pyodbc
    building 'pyodbc' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/pyodbcmodule.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbcmodule.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/errors.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/errors.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/row.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/row.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/sqlwchar.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/sqlwchar.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/buffer.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/buffer.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/connection.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/connection.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/pyodbccompat.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbccompat.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/getdata.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/getdata.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    /tmp/pyodbc-old/build/pyodbc/src/getdata.cpp: In functionPyObject* GetDataDecimal(Cursor*, Py_ssize_t)’:
    /tmp/pyodbc-old/build/pyodbc/src/getdata.cpp:487:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/pyodbcdbg.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbcdbg.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/params.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/params.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/cursor.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/cursor.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=3.0.8 -DPYODBC_UNICODE_WIDTH=4 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/usr/include/python2.7 -c /tmp/pyodbc-old/build/pyodbc/src/cnxninfo.cpp -o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/cnxninfo.o -Wno-write-strings
    cc1plus: warning: command line option-Wstrict-prototypesis valid for Ada/C/ObjC but not for C++ [enabled by default]
    g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbcmodule.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/errors.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/row.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/sqlwchar.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/buffer.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/connection.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbccompat.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/getdata.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/pyodbcdbg.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/params.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/cursor.o build/temp.linux-x86_64-2.7/tmp/pyodbc-old/build/pyodbc/src/cnxninfo.o -lodbc -o build/lib.linux-x86_64-2.7/pyodbc.so

    warning: no files found matching 'tests/*'
Successfully installed pyodbc
Cleaning up...

connect function timeout not working with SQL Server using SSPI or documentation incorrect

Brought over from code.google.com.

What steps will reproduce the problem?

  1. Attempt to connect to incorrect server name or instance using following code:
    pyodbc.connect('DRIVER={SQL Server};SERVER=\servername\inst01;', timeout=10)

What is the expected output?
Exception to be raised in 'timeout' settings value (10 seconds in this case)

What do you see instead?
Default timeout reached and then pyodbc.Error raised

What version of the product are you using?
python 2.7 | pyodbc 3.0.5

On what operating system?
Windows 7 64bit | SQL Server 2008 R2

Please provide any additional information below.

I believe the problem may be an incorrect setting is being applied to the SQLSetConnectAttr function in connection.cpp (line 75). The setting being applied is SQL_ATTR_LOGIN_TIMEOUT; which the spec says, "The query timeout period expired before the connection to the data source completed. The timeout period is set through SQLSetConnectAttr, SQL_ATTR_LOGIN_TIMEOUT."

There is another setting that is for the data source connection timeout named "SQL_ATTR_CONNECTION_TIMEOUT"; which the spec says, "The connection timeout period expired before the data source responded to the request. The connection timeout period is set through SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT."

The documentation could be incorrect since the Connection page doesn't have any information on the timeout keyword. I may be using it incorrectly or using the wrong keyword argument, but the source shows the keyword being 'timeout'.

Incorrect Results for Int data

A select query of integer data returns incorrect results when I am running pyodbc 3.0.7 with python 2.7 on RHEL6 against a Sybase database. I do not experience this issue when running on 3.0.3

Here is a basic example of incorrect results for int data

import pyodbc
dbconn = pyodbc.connect("DSN=....")
c = dbconn.cursor()
c.execute("select 0, 1, 2")
print c.fetchone()

>> (210453397504, 210453397505, 210453397506)

All of the integers consistently add 2^32 * 2^7 (210453397504) to the correct value. This remains true until the value gets to 2^31 (2147483648), at which point results are correctly converted to type Long.

When I explicitly cast the data to numeric, it returns correctly:

c.execute("select cast(0 as numeric), cast(1 as numeric), cast(2 as numeric)")
print c.fetchone()

>> (Decimal('0'), Decimal('1'), Decimal('2'))

Likewise if I explicitly add a decimal to the values, it will return the correct values as Decimal instances

c.execute("select 0.0, 1.0, 2.0")

>> (Decimal('0'), Decimal('1'), Decimal('2'))

However when I try to cast the data as Ints, I get the same incorrect results as I do by default:

c.execute("select cast(0 as int), cast(1 as int), cast(2 as int)")
print c.fetchone()

>> (210453397504, 210453397505, 210453397506)

There are a couple other users that have experienced the same issue on code.google.com
https://code.google.com/p/pyodbc/issues/detail?id=360

Issues with UTF-16 strings on 64 bit versions

I know I commented on this issue back on google code, but never received a response. https://code.google.com/p/pyodbc/issues/detail?id=78

Basically it looks like it was "fixed" at some point, and then the patch reverted some time around 2014. I checked this new github repository, and the problematic line still appears to be there:

https://github.com/mkleehammer/pyodbc/blob/master/src/getdata.cpp#L319

You can glean plenty of details from that first link, but I'll quote some in case google code disappears some day:

What steps will reproduce the problem?
1 Setup odbc correctly.
2 Execute the following:
 import pyodbc
 database = pyodbc.connect('DSN=localhost')
 cursor = database.cursor()
 cursor.execute('SHOW CREATE TABLE mysql.users')
 print cursor.fetchall()
 cursor.close()
 database.close()
2 Notice the output being in UTF-16 in memory format, containing something
like this:
 [(u'\U00730075\U00720065', u'\U00520043\U00410045\U00450054\U00540020 ...

What is the expected output? What do you see instead?
Something readable in UTF-8, containing something like this:
...
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
...

What version of the product are you using? On what operating system?
pyodbc-2.1.5-2.fc11.i586
unixODBC-2.2.14-2.fc11.i586
mysql-5.1.37-1.fc11.i586
mysql-libs-5.1.37-1.fc11.i586
mysql-server-5.1.37-1.fc11.i586
mysql-connector-odbc-5.1.5r1144-4.fc11.i586
I've had the same issue, which only seems to happen on 64-bit machines.

Here's my setup:
ubuntu 10.4 64-bit
pyodbc-2.1.7
unixODBC-2.2.11-21
freeTDS-0.82

Server:
MS SQL Server 2008

I've traced the problem back to a call to SQLGetData in getdata.cpp. The function doesn't seem to handle unicode strings correcty on 64-bit systems. Specifying a charset in the pyodbc.connect() call doesn't fix it. I was able to fix it by mapping all unicode character types to SQL_C_CHAR, I'm attaching a diff of the fix.

Daniel Erickson
Concentric Sky, Inc.
www.concentricsky.com

Contents of patch:

diff --git a/src/getdata.cpp b/src/getdata.cpp
index a487ae3..660116b 100644
--- a/src/getdata.cpp
+++ b/src/getdata.cpp
@@ -262,7 +262,8 @@ GetDataString(Cursor* cur, int iCol)
     case SQL_WCHAR:
     case SQL_WVARCHAR:
     case SQL_WLONGVARCHAR:
-        nTargetType  = SQL_C_WCHAR;
+        //nTargetType  = SQL_C_WCHAR;
+        nTargetType  = SQL_C_CHAR;
         break;

     default:

Install fails 3.0.10 on Yosemite

Hi

Build fails:

running

sudo python setup.py build install

returns
x-10.6-intel-2.7/pyodbc.so
ld: library not found for -lodbc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang++' failed with exit status 1

I can install from 3.0.7 using the same technique fine.

Not working with Python 3.4.3 on OS X (Vertica driver)

I am getting the following error when connecting to Vertica:

>>> res = cursor.execute("select version()")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('42601', '[42601] ERROR 4856:  Syntax error at or near "��������� (4856) (SQLExecDirectW)')

Wondering if this has been encountered before. Works on Python 2 on the same host so I doubt it's iODBC.

pyodbc does not fetch the actual SQL error description for Teradata database

What steps will reproduce the problem?

!/usr/bin/python

import pyodbc

def checkTable():
cursor = TDCONN.cursor()
sql = "SELECT 1 FROM query with error"
try:
cursor.execute(sql)
for row in cursor:
print "How did this query work?\n"
exit(0)
except Exception, e:
print e
print "SQL Exception: " + e.message
cursor.close()

def main():

checkTable()
TDCONN.close()

if name == "main":

TDCONN = pyodbc.connect('DSN=mydsn;',ansi=True, autocommit=True)
print "\nTeradata connection established \n"

main()

====ODBC.ini====

[mydsn]
Driver=/opt/teradata/client/14.00/odbc_64/lib/tdata.so
Description=Desc
DBCName=mydbc
LastUser=myuser
Username=myuser
Password=Tmp
Database=mydb
DefaultDatabase=mydb
TDMSTPortNumber=1025
DateTimeFormat=AAA

What is the expected output? What do you see instead?

Expected output:
Teradata connection established
Syntax error: expected something between the 'with' keyword and the 'error' keyword.
State: 37000; Native: -3706; Origin: [Teradata][ODBC Teradata Driver][Teradata Database]

Actual Output:
Teradata connection established
('HY000', '[HY000] [unixODBC][Driver Manager]Driver returned SQL_ERROR or SQL_SUCCESS_WITH_INFO but no error reporting API found (0) (SQLExecDirectW)')
SQL Exception:

What version of the product are you using? On what operating system?

pyodbc - 2.1.8
OS - Linux version 2.6.18-238.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Thu Jan 13 15:51:15 EST 2011

FreeTDS and SQL Server: Could Not Find Stored Procedure 'S'

Environment:

  • Python 3.4
  • Ubuntu Server 14.04

I can connect to SQL Server fine, but when I try to execute a simple select statement:
conn = pyodbc.connect('... connection info ...')
cursor = conn.cursor()
cursor.execute('SELECT foo FROM bar')

I get this error:
http://pastebin.com/uyfj5qCq

This seems to be the same issue described when using Python 2.x here:
https://code.google.com/p/pyodbc/issues/detail?id=110

I'm still messing with it to try and figure out the encoding issue described in that older ticket, but thought I'd bring it up here in the mean time to see if there's any additional information that would be helpful.

Thanks!

Connection object behavior within context managers

Python context managers for connection objects are typically used like this:

with pyodbc.connect('mydsn') as cnxn:
    do_stuff

Right now in pyodbc 3.0.10, that seems to be the equivalent of:

cnxn = pyodbc.connect('mydsn')
do_stuff
if not cnxn.autocommit:
    cnxn.commit()

Could we re-visit this functionality because I do have some reservations about that behavior, especially when autocommit is off:

  1. The connection object is not closed when the context is exited (unlike exiting the context manager for a file, for example).
  2. Assuming autocommit is off, in the event of an exception occurring, the transactions on the connections are not explicitly rolled back (which they would be if the connection was closed on exit).
  3. Lastly, and I appreciate I appear to be in a minority on this, but I have a real issue with a commit being issued "under the hood" when autocommit is off (assuming no exceptions raised).

To elaborate on those points:

  1. For files, context managers operate like this
with file('/tmp/myfile', 'w') as f:
    f.write('hello\n')

which is equivalent to:

f = file('/tmp/myfile', 'w')
try:
    f.write('hello\n')
finally:
    f.close()

From my perspective, the point of a context manager is to make sure the context object is cleaned up when the context exits (typically by closing the object). I'm surprised pyodbc leaves the connection open, to be closed only when it is deleted.

  1. Following on from 1), my understanding is that contexts should be essentially self-contained, and they should tidy themselves up during the exit process. In this case, for me that includes rolling back transactions if any exception has occurred. Instead, pyodbc leaves that up to surrounding code. Bear in mind, explicit rolling back would not be needed if the connection was closed, the database would do this anyway.

  2. Looking at other Python odbc managers, it appears I am going against the tide on this, but I still feel strongly that the context manager should never issue an implicit commit when autocommit is off.

http://cx-oracle.readthedocs.org/en/latest/connection.html#Connection.__exit__
https://docs.python.org/3.4/library/sqlite3.html#using-the-connection-as-a-context-manager
http://initd.org/psycopg/docs/connection.html#connection.commit
https://pythonhosted.org/oursql/api.html#cursor-context-manager
https://dev.mysql.com/doc/connector-python/en/index.html
http://sourceforge.net/p/adodbapi/code/ci/default/tree/adodbapi.py

My preference would be that the pyodbc connection context manager would be just like the file context manager and doing nothing more than the equivalent of this:

cnxn = pyodbc.connect('mydsn')
try:
    do_stuff
finally:
    cnxn.close()

I realize this would be a change in behavior, but right now, the connection context manager has behavior that makes it essentially unusable for me when I want to use a connection with autocommit off.

Finally, pretty much all of what I have said here is equally applicable to pyodbc cursor objects too.

`pip install pyodbc` doesn't work (`--allow-external` is needed)

Due to security requirements built-in into all newer pip versions a simple pip install pyodbc doesn't work anymore with a current version of pip. Example:

$ pip --version
pip 6.1.1 from /path/to/virtualenv/lib/python2.7/site-packages (python 2.7)
$ pip install pyodbc
Collecting pyodbc
  Could not find a version that satisfies the requirement pyodbc (from versions: )
  Some externally hosted files were ignored as access to them may be unreliable (use --allow-external pyodbc to allow).
  No matching distribution found for pyodbc

It is possible to make an installation work using some switches as follows, but this should not be necessary.

$ pip install -v --allow-external pyodbc --allow-unverified pyodbc pyodbc

The python dist package needs to be uploaded to the PyPI server to fix this problem, using something like:

$ python ./setup.py sdist upload

This is really a critical issue, not just a nice-to-have.

Install fails OS X 10.10

I've tried installing as Me, Sudo and Sudo -H but getting the following error:

Command "/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-av0bnl1e/pyodbc/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-q3wvh5x7-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-av0bnl1e/pyodbc

I have it working for python2 , but python3 seems to be a bit sticky

Any help much appreciated :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.