You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Work Item / Issue Reference
<!--
IMPORTANT: Please follow the PR template guidelines below.
For mssql-python maintainers: Insert your ADO Work Item ID below (e.g.
AB#37452)
For external contributors: Insert Github Issue number below (e.g. #149)
Only one reference is required - either GitHub issue OR ADO Work Item.
-->
<!-- mssql-python maintainers: ADO Work Item -->
>
[AB#39058](https://sqlclientdrivers.visualstudio.com/c6d89619-62de-46a0-8b46-70b92a84d85e/_workitems/edit/39058)
-------------------------------------------------------------------
### Summary
This pull request introduces comprehensive support for setting ODBC
connection attributes in the `mssql_python` library, aligning its
functionality with pyodbc's `set_attr` API. The changes include new
constants for connection attributes, transaction isolation levels, and
related options, as well as robust error handling and input validation
in both Python and C++ layers. This enables users to configure
connection behavior (e.g., autocommit, isolation level, timeouts) in a
standardized and secure manner.
### Connection Attribute Support
* Added a wide set of ODBC connection attribute constants, transaction
isolation level constants, access mode constants, and related enums to
`mssql_python/__init__.py` and `mssql_python/constants.py`, making them
available for use in Python code.
* Implemented the `set_attr` method in the `Connection` Python class,
providing pyodbc-compatible functionality for setting connection
attributes with detailed input validation and error handling.
### C++ Backend Enhancements
* Exposed `setAttribute` as a public method in the C++ `Connection`
class, and added a new `setAttr` method in `ConnectionHandle`, with
improved error reporting and range validation for SQLUINTEGER values.
* Registered the new `set_attr` method with the Python bindings, making
it accessible from Python code.
### Code Cleanup and Refactoring
* Moved and consolidated connection attribute constants in
`ConstantsDDBC` to improve maintainability, and removed legacy/unused
constants.
These changes provide a robust interface for configuring ODBC connection
attributes, improve compatibility with pyodbc, and enhance error
handling for attribute operations.
0 commit comments