{ "info": { "author": "Matt Lewellyn", "author_email": "matt.lewellyn@level12.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "sqlalchemy_pyodbc_mssql Readme\n==========================================\n\n.. image:: https://circleci.com/gh/level12/sqlalchemy_pyodbc_mssql.svg?&style=shield\n :target: https://circleci.com/gh/level12/sqlalchemy_pyodbc_mssql\n\n.. image:: https://codecov.io/gh/level12/sqlalchemy_pyodbc_mssql/branch/master/graph/badge.svg\n :target: https://codecov.io/github/level12/sqlalchemy_pyodbc_mssql?branch=master\n\nOverview\n--------\n\nPyODBC is Microsoft's recommended DBAPI layer for connecting a python application to MSSQL. However,\nthe layer is not MSSQL-specific, and so it has some limitations:\n\n- parameterized queries with GROUP BY will not always work ([source](https://github.com/mkleehammer/pyodbc/issues/479))\n- stored procedures (such as those called by the prepared statements in pyodbc) are limited to\n 2100 parameters ([source](https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-2017))\n\nSQLAlchemy has a PyODBC dialect for MSSQL usage, but it also shares these limitations.\n\n- for GROUP BY details, see https://github.com/sqlalchemy/sqlalchemy/issues/4540\n\n[PyMSSQL](http://www.pymssql.org) exists as an alternative DBAPI layer and dialect for SQLAlchemy. Since it prepares queries\nby rolling parameters into the query string itself (properly quoted, of course) rather than issuing\nODBC prepared statements, it does not share the above problems.\n\nsqlalchemy_pyodbc_mssql extends the built-in SQLAlchemy PyODBC dialect in order to work around\nthese limits in a manner consistent with PyMSSQL's implementation. Most queries are passed as-is to\nPyODBC to be prepared and executed normally. Those that would not work, due to the above issues,\nare given special treatment to avoid the limitations and keep the app developer from needing to\nkeep track of when to apply workarounds.\n\nUsage\n-----\n\n- Installation\n - for usage in app: `pip install sqlalchemy_pyodbc_mssql`\n - to run tests: `pip install sqlalchemy_pyodbc_mssql[tests]`\n- Usage\n - see [SQLAlchemy instructions for PyODBC usage](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc)\n - dialect name to use is `mssql+pyodbc_mssql`\n - examples:\n - `mssql+pyodbc_mssql://:@`\n - `mssql+pyodbc_mssql://:@?driver=SQL+Server+Native+Client+11.0`\n\n\nChangelog\n=========\n\n0.1.0 released 2019-06-17\n-------------------------\n\n- initial release\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/level12/sqlalchemy_pyodbc_mssql", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sqlalchemy-pyodbc-mssql", "package_url": "https://pypi.org/project/sqlalchemy-pyodbc-mssql/", "platform": "", "project_url": "https://pypi.org/project/sqlalchemy-pyodbc-mssql/", "project_urls": { "Homepage": "https://github.com/level12/sqlalchemy_pyodbc_mssql" }, "release_url": "https://pypi.org/project/sqlalchemy-pyodbc-mssql/0.1.0/", "requires_dist": [ "pyodbc", "sqlalchemy (>=1.3.3)", "blazeform; extra == 'test'", "flake8; extra == 'test'", "pytest; extra == 'test'", "pytest-cov; extra == 'test'", "tox; extra == 'test'" ], "requires_python": "", "summary": "SA dialect for MSSQL using PyODBC which handles MSSQL-specific limitations", "version": "0.1.0" }, "last_serial": 5410079, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "248b257eb597b8f821e01e02e61792a2", "sha256": "7c8fedf16ccedf7b67cde3394dda759225f81b57de11b1c141fcc53347be3577" }, "downloads": -1, "filename": "sqlalchemy_pyodbc_mssql-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "248b257eb597b8f821e01e02e61792a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6789, "upload_time": "2019-06-17T12:56:11", "url": "https://files.pythonhosted.org/packages/c7/dd/8cff6a212206e48a9db044856aa250dda45ac92a1d6e83287cf80dbe5b71/sqlalchemy_pyodbc_mssql-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8628945ee273731a45995d79b798b391", "sha256": "ebaa29f294507af3ee6f61af1375c5eefbaa3ade3e02837ec8ee6a3b80e2ba22" }, "downloads": -1, "filename": "sqlalchemy_pyodbc_mssql-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8628945ee273731a45995d79b798b391", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6813, "upload_time": "2019-06-17T12:56:14", "url": "https://files.pythonhosted.org/packages/67/c0/068c6374902e63d63432ebb431cc41cad314230e4c72402b6bf0c0a32bba/sqlalchemy_pyodbc_mssql-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "248b257eb597b8f821e01e02e61792a2", "sha256": "7c8fedf16ccedf7b67cde3394dda759225f81b57de11b1c141fcc53347be3577" }, "downloads": -1, "filename": "sqlalchemy_pyodbc_mssql-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "248b257eb597b8f821e01e02e61792a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6789, "upload_time": "2019-06-17T12:56:11", "url": "https://files.pythonhosted.org/packages/c7/dd/8cff6a212206e48a9db044856aa250dda45ac92a1d6e83287cf80dbe5b71/sqlalchemy_pyodbc_mssql-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8628945ee273731a45995d79b798b391", "sha256": "ebaa29f294507af3ee6f61af1375c5eefbaa3ade3e02837ec8ee6a3b80e2ba22" }, "downloads": -1, "filename": "sqlalchemy_pyodbc_mssql-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8628945ee273731a45995d79b798b391", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6813, "upload_time": "2019-06-17T12:56:14", "url": "https://files.pythonhosted.org/packages/67/c0/068c6374902e63d63432ebb431cc41cad314230e4c72402b6bf0c0a32bba/sqlalchemy_pyodbc_mssql-0.1.0.tar.gz" } ] }