Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Sep 27, 2012
  1. Eliminated warnings on OS/X

    Two 64-bit warnings.  Also turned off the ODBC deprecation warnings.  Apparently Apple has
    decided not to maintain iODBC for OS/X in the future.  ODBC can still be used, but iODBC will
    have to be installed separately.
Commits on Dec 28, 2011
  1. Issue 178: Fixed compilation issues with 4.6.2

    Removed deprecated Row_slice.  The sequence structure changed this from an actual function
    pointer to a void pointer.  GCC 4.6.2 would not allow the assignment of Row_slice to void*.
    This may not build under 2.5.
    Also eliminated a bunch of casts to see if newer GCC would uncover other issues.
Commits on Dec 18, 2011
Commits on Nov 3, 2011
Commits on Sep 14, 2011
  1. Issue 145: Update to handle failure.

    The parameter array is initialized to zero in case of failure during the binding process.
    Therefore it is possible that some values are still zero in FreeInfos.
Commits on Sep 13, 2011
  1. Issue 145: cursor.execute leaks parameters

    Michael Kleehammer authored
    Thanks to luke (see issue) for finding, debugging, and providing a fix.
Commits on Jul 11, 2011

    Was passing the incorrect length when binding, causing SQLPut errors when using long strings
    (usually when inserting long strings) for some drivers.
Commits on Jul 8, 2011
Commits on Nov 25, 2010
  1. Fixed printf in new pyodbcconf.

    Eliminated unused code.
    Eliminated compiler warning.
Commits on Nov 23, 2010
Commits on Nov 21, 2010
  1. Issue 129: ("select ?", None) fails

    If SQLDescribeParam cannot tell us the type of a column for a NULL parameter, we'll assume it
    is VARCHAR.  We already do this if SQLDescribeParam is not supported.
Commits on Sep 6, 2010
  1. Allocated own string for decimals.

    Was using str(decimal), but it can return items in exponential notation, which I'm not sure
    many databases would handle properly.
  2. More Unicode fixes. Updated mysql tests.

    Michael Kleehammer authored
Commits on Sep 5, 2010
  1. Issue 91: decimal fix; Completely reworked parameters; added leakcheck

    Fixed issue 91 - handling of decimals was incorrect (off by 1).  Added lots of SQL Server unit
    To properly fix this, reworked and simplified parameter binding.  Instead of separating the
    memory requirement and the actual memory preparation, it is now performed in 1 step and stored
    in the new ParamInfo structures.
    I added a lot of optional malloc calls (not usually used), so I added a PYODBC_LEAK_CHECK
    parameter which causes pyodbc_malloc and pyodbc_free to track allocations.  This is not thread
    safe and is intended only for troubleshooting.
Commits on Sep 4, 2010
  1. Reworked Unicode; changed version format; more Py_ssize_t

    Reworked Unicode support, properly differentiating between SQLWCHAR on the different platforms.
    This should fix a lot of the OS/X problems and perhaps Linux UCS4 build problems.
    Version format now includes the branch name if not 'master' or v<version>, allowing custom
    builds to be identified, such as v2unicode-2.1.8-beta03.
    Also tested with 64-bit Windows builds, so more Py_ssize_t warnings were found and corrected.
    Created TRACE macro to replace the #ifdefs sprinkled through the code.
Commits on Aug 28, 2010
  1. Modified decimal param binding; Updated varchar/longvarchar fix.

    Updated calculation of buffer size needed for binding decimals.  This shouldn't have any affect
    other than assertions - generally the old calculation added an extra character or two.
    The previous varchar/longvarchar fix used varchar max with Unicode instead of wvarchar.  Also
    updated unit tests.
Commits on Aug 20, 2010
  1. Fixed VARCHAR/LONGVARCHAR comparison bug.

    Michael Kleehammer authored
    As reported by Andy Hochhaus in the pyodbc group, SQL Server fails if you compare a
    SQL_LONGVARCHAR parameter with a varchar field.  Had been using a hardcoded 255 to determine
    when to switch from VARCHAR to LONGVARCHAR.  Now uses SQLGetTypeInfo to determine the maximum
    varchar and binary widths.  This will also help performance for programs that bind a lot of
    strings greater than 255 but less than their db's max varchar size.
Commits on Dec 31, 2009
  1. Issue 82: Crash on Windows if cursor freed after cnxn (sometimes)

    Crash due to using HSTMT while cleaning up parameters after the connection is
    closed.  Unfortunately I wasn't able to put together an easy test case without
    using the with statement like the reporter did.
  2. Fix: Writing None/NULL to binary column only worked if 1st parameter.

    SQL Server 2008 doesn't allow SQLDescribeParam calls once parameters have been
    bound.  This error caused the varchar default to be used instead of raising an
    error, which works for all columns except binary.  SS won't convert char to
    binary automatically.  Fix is to call describe for all NULL parameters before
    Added test_none_param to SQL Server unit tests.
Commits on May 14, 2009
  1. Issue 48: Patch to add SQL Server XML data type

    John Chandler authored committed
Commits on Dec 31, 2008
Commits on Dec 30, 2008
  1. Merge branch 'perf'

  2. More comments in new code

Commits on Dec 9, 2008
  1. Performance: SQLDescribeCol not called unless needed (when binding No…

    Michael Kleehammer authored
    Performance work for Joe Salmeri, a great pyodbc user (and tester).
    Unfortunately we now don't know when a column is a BIT column, so we can't convert all objects
    to bools.  This was never documented and doesn't seem like a big deal since all numeric values
    should still work normally.
Commits on Dec 6, 2008
Commits on Oct 13, 2008
  1. Added SQL Server 2008 date/time extensions support. Now caches connec…

    …tion info.
    The connection info is in preparation for querying even more info per connection to implement
    Fixed the file so it doesn't build a debug library all the time.  You can add --assert
    and --trace to turn those on instead of modifying pyodbc.h.
    Also added a license file (feature request).
Commits on Oct 7, 2008
Something went wrong with that request. Please try again.