标签: pyodbc

将 pyodbc Connection 对象与 pandas 一起使用时收到警告

我试图理解当我设置 python 代码在 VM 服务器上运行时开始出现的以下错误,该服务器在我的桌面上安装了 3.9.5 而不是 3.8.5。不确定这是否重要,但这可能是部分原因。

错误

C:\ProgramData\Miniconda3\lib\site-packages\pandas\io\sql.py:758: UserWarning: pandas only support SQLAlchemy connectable(engine/connection) or
database string URI or sqlite3 DBAPI2 connection
other DBAPI2 objects are not tested, please consider using SQLAlchemy
  warnings.warn(
Run Code Online (Sandbox Code Playgroud)

这是一个相当简单的 .py 文件,该文件导入 pyodbc 和 sqlalchemy fwiw。产生警告的 sql 调用的相当通用/简单的版本是:

myserver_string = "xxxxxxxxx,nnnn"
db_string = "xxxxxx"

cnxn = "Driver={ODBC Driver 17 for SQL Server};Server=tcp:"+myserver_string+";Database="+db_string +";TrustServerCertificate=no;Connection Timeout=600;Authentication=ActiveDirectoryIntegrated;"

def readAnyTable(tablename, date):
    conn = pyodbc.connect(cnxn)
    
    query_result = pd.read_sql_query(
            ''' 
                 SELECT *
                 FROM [{0}].[dbo].[{1}]
                where Asof >= '{2}'
            '''.format(db_string,tablename,date,), conn) …
Run Code Online (Sandbox Code Playgroud)

sql-server pyodbc python-3.x pandas

76
推荐指数
4
解决办法
14万
查看次数

无法在Linux上安装pyodbc

我正在运行Linux(2.6.18-164.15.1.el5.centos.plus)并尝试安装pyodbc.我正在做pip install pyodbc并得到一个很长的错误列表,最终以

错误:命令'gcc'失败,退出状态为1

我查看了 /root/.pip/pip.log并看到以下内容:

InstallationError:命令/ usr/local/bin/python -c"import setuptools; file ='/ home/build/pyodbc/setup.py'; execfile('/ home/build/pyodbc/setup.py')"install - -single-version-external-managed --record /tmp/pip-7MS9Vu-record/install-record.txt失败,错误代码为1

安装pyodbc有没有类似的问题?

python linux centos pyodbc

69
推荐指数
8
解决办法
7万
查看次数

python pip指定库目录和include目录

我正在使用pip并尝试安装一个名为pyodbc的python模块,它对unixodbc-dev,unixodbc-bin,unixodbc等非python库有一些依赖性.我目前无法在系统中安装这些依赖项,因为我只是在玩,所以我已将它们安装在非标准位置.我如何告诉pip在哪里寻找这些依赖项?更确切地说,如何通过包含dirs(gcc -I)和库dirs(gcc -L -l)的pip来传递信息,以便在构建pyodbc扩展时使用?

python pip shared-libraries pyodbc include-path

67
推荐指数
6
解决办法
5万
查看次数

输出pyodbc游标结果为python字典

如何序列pyodbc光标输出(从.fetchone,.fetchmany.fetchall)Python字典?

我正在使用bottlepy并需要返回dict,因此它可以将其作为JSON返回.

python dictionary cursor pyodbc pypyodbc

56
推荐指数
4
解决办法
7万
查看次数

在生产中使用带有Django的Sql Server

有没有人最近有部署带有SQL Server数据库后端的Django应用程序的经验?我们的工作场所大量投入SQL Server,如果没有足够开发的后端,它将不支持Django.

我知道mssql.django-pyodbc和django-mssql是非正式支持的后端.这两个项目似乎只有一个人贡献,这有点担心,虽然贡献似乎有点规律.

是否有很好的支持SQL Server的任何其他后端?我在这里提到的两个"足够好"用于生产吗?你有什么经历?

python sql-server django pyodbc

47
推荐指数
4
解决办法
3万
查看次数

使用Python通过Windows身份验证连接到MS SQL Server?

如何使用Windows身份验证将MS SQL Server与pyodbc库连接?

我可以通过MS Access和SQL Server Management Studio连接,但无法获得Python的工作连接ODBC字符串.

这是我尝试过的(也没有'Trusted_Connection=yes'):

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='[system_name]',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes', uid='me',
               driver='{SQL Server}', server='localhost',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               uid='me', pwd='[windows_pass]', database='[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}',
               database='[server_name]\[database_name]')
Run Code Online (Sandbox Code Playgroud)

sql-server odbc windows-authentication pyodbc sql-server-2008-r2

46
推荐指数
3
解决办法
7万
查看次数

如何在Python cursor.execute中查看真正的SQL查询

我在Python中使用以下代码(pyodbc用于MS-Access基础).

cursor.execute("select a from tbl where b=? and c=?", (x, y))
Run Code Online (Sandbox Code Playgroud)

没关系,但是出于维护目的,我需要知道发送到数据库的完整而准确的SQL字符串.
有可能吗?怎么样?

python sql ms-access pyodbc

45
推荐指数
4
解决办法
6万
查看次数

使用pyODBC的fast_executemany加速pandas.DataFrame.to_sql

我想发送一个大型pandas.DataFrame到运行MS SQL的远程服务器.我现在的方法是将data_frame对象转换为元组列表,然后使用pyODBC的executemany()函数将其发送出去.它是这样的:

 import pyodbc as pdb

 list_of_tuples = convert_df(data_frame)

 connection = pdb.connect(cnxn_str)

 cursor = connection.cursor()
 cursor.fast_executemany = True
 cursor.executemany(sql_statement, list_of_tuples)
 connection.commit()

 cursor.close()
 connection.close()
Run Code Online (Sandbox Code Playgroud)

然后我开始怀疑使用data_frame.to_sql()方法是否可以加速(或至少更具可读性).我想出了以下解决方案:

 import sqlalchemy as sa

 engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=%s" % cnxn_str)
 data_frame.to_sql(table_name, engine, index=False)
Run Code Online (Sandbox Code Playgroud)

现在代码更具可读性,但上传速度至少慢150倍 ......

有没有办法fast_executemany在使用SQLAlchemy时翻转?

我正在使用pandas-0.20.3,pyODBC-4.0.21和sqlalchemy-1.1.13.

python sqlalchemy pyodbc pandas-to-sql

43
推荐指数
7
解决办法
3万
查看次数

Pyodbc - "未找到数据源名称,并且未指定默认驱动程序"

pyodbc上班很困难.我有unixodbc,unixodbc-dev,odbc-postgresql,pyodbc在我的Linux Mint的14.我失去希望找到自己的解决方案安装的软件包,任何帮助表示赞赏.详情如下:

运行:

>>> import pyodbc
>>> conn = pyodbc.connect("DRIVER={PostgreSQL};SERVER=localhost;DATABASE=test;USER=openerp;OPTION=3;")
Run Code Online (Sandbox Code Playgroud)

给我:

>>> pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)

#odbcinst -j给出:

unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/atman/.odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
Run Code Online (Sandbox Code Playgroud)

这让我觉得存在unixodbc配置问题.这是我的unixodbc配置文件内容:

档案 /etc/odbcinst.ini:

[PostgreSQL ANSI]
Description     = PostgreSQL ODBC …
Run Code Online (Sandbox Code Playgroud)

postgresql unixodbc pyodbc python-2.7

41
推荐指数
3
解决办法
8万
查看次数

在Heroku上安装PyODBC时找不到sql.h

我正在尝试在Heroku上安装PyODBC,但是fatal error: sql.h: No such file or directory当pip运行时我会进入日志.我该如何解决这个错误?

python heroku pyodbc

41
推荐指数
3
解决办法
3万
查看次数