标签: pyodbc

如何使用 pyodbc 执行 MS Access 中保存的查询

网上有很多关于如何使用 pyodbc 在 MS Access 2007 中运行查询的提示,但所有这些查询都是在 Python 脚本本身中编码的。我想使用 pyodbc 调用已保存在 MS Access 中的查询。我怎样才能做到这一点?

python sql ms-access ms-access-2007 pyodbc

2
推荐指数
1
解决办法
9841
查看次数

为什么使用 pyodbc 从 MSSQL 获取数据时出现此错误?

我正在使用 pyodbc 从 MSSQL 检索数据,这是我正在使用的代码:

import pyodbc
server = 'xxxxxxxx\DEV'
database = 'SandBox'
username = 'zzzzzzz'
password = 'xxxxxxx'
driver = '{SQL Server}'

cnxn = pyodbc.connect('DRIVER='+driver+';PORT=4853;SERVER='+server+';PORT=4853;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("select * from fieldscreenscheme ")
row = cursor.fetchone()
if row:
    print row
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误消息:

cnxn = pyodbc.connect('DRIVER='+driver+';PORT=43853;SERVER='+server+';PORT=43853;DATABASE='+database+';UID='+username+';PWD='+ password)

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53); [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)')
Run Code Online (Sandbox Code Playgroud)

我安装了 …

python sql-server pyodbc

2
推荐指数
1
解决办法
5321
查看次数

Python - Pyodbc 连接错误

我正在尝试使用Python3.4连接到SQL Server数据库

这是适合我的代码

cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;Trusted_Connection=yes')
Run Code Online (Sandbox Code Playgroud)

我使用 Windows 连接登录到我的 Management studio - 数据库。

这是代码,它对我不起作用:

cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;UID=DESKTOP-GDM2HQ17\sid;PWD=123')
Run Code Online (Sandbox Code Playgroud)

请分享您对我出错的地方的想法。

python sql-server authentication pyodbc

2
推荐指数
1
解决办法
1万
查看次数

无法在 Python 映像上找到包 msodbcsql

这是我第一次尝试使用 pyodbc 连接到 docker 映像中的 Azure SQL 数据库。我的 Dockerfile 如下所示:

# the base image
FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
COPY music_trends.py ./

# install SQL Server drivers
RUN apt-get update
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql unixodbc-dev

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./music_trends.py" ]
Run Code Online (Sandbox Code Playgroud)

这会抛出错误消息:

E: Unable to locate package msodbcsql
The command '/bin/sh -c apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql unixodbc-dev' returned a non-zero code: …
Run Code Online (Sandbox Code Playgroud)

python azure pyodbc python-3.x docker

2
推荐指数
1
解决办法
7093
查看次数

Python - “pyodbc”未访问 Pylance

我刚开始使用 python,并且在使用 pyodbc 连接到 MS SQL 时遇到一些问题。到目前为止,我已经重新安装了除 Windows 之外的几乎所有内容。重新安装了几次,都是用pip/pip3。甚至尝试过旧版本的 pyodbc。只安装了一个版本的python。未运行任何虚拟机。

使用 python 3.8-32 和 pyodbc 4.0.32。我得到的错误是:

未访问“pyodbc”Pylance

导入“pyodbc”无法解析 Pylance (reportMissingImports)

只是提一下,几个小时以来一直在寻找解决方案,有点疲倦。两年内找不到修复程序,甚至找不到任何相关的帖子。

任何人如果有任何提示/建议,Python 新手都会非常感激。

python pyodbc visual-studio-code pylance

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

sqlalchemy + pyodbc如何信任证书?

我有一个使用 pyodbc 的 python 脚本,它连接到远程服务器,并在其上运行 sql 服务器。我有一个使用 sqlalchemy 编写的函数的包,我可以在我的一台计算机上使用它。我用这个字符串连接:

driver = 'SQL+Server+Native+Client+11.0'
engine_string = prefix + '://' + username + ':' + password + '@' + server + '/' + database + '?driver=' + driver
Run Code Online (Sandbox Code Playgroud)

在另一台计算机上,我无法安装本机客户端 11.0,我知道该客户端已被弃用。我尝试将值切换为

driver = 'ODBC+Driver+18+for+SQL+Server'
Run Code Online (Sandbox Code Playgroud)

我在该版本中遇到错误

[ODBC Driver 18 for SQL Server]SSL Provider: The certificate chain was issued by an authority that is not trusted.
Run Code Online (Sandbox Code Playgroud)

然后我尝试了与 Windows 实用程序的通用 odbc 连接,并得到了相同的错误。当我检查“信任服务器证书”时,我能够使 odbc 管理器连接正常工作

从长远来看,这可能不太好,但是有没有办法将该属性添加到上面的第一个字符串中?我尝试了几种变体,但没有任何效果。

我能够与以下内容建立工作连接:

cnxn = pyodbc.connect( 
driver = '{ODBC Driver 18 for SQL Server}', …
Run Code Online (Sandbox Code Playgroud)

python sql-server odbc pyodbc

2
推荐指数
1
解决办法
4184
查看次数

python Pyodbc,无法在表中创建一个名为“ Date”的字段

问题是我无法创建一个名为Date(我想是因为它是类型)的字段。有什么主意该怎么做?

from pyodbc import connect
# database connect
conn = connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=test.mdb')
cursor = conn.cursor()
# sql query execute
query = "create table MyTable(name varchar(30), age integer , Date date)"
cursor.execute(query)
# commit changes             
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "\Path\to\myscript\test.py", line 9, in <module>
    cursor.execute(query)
ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in field definition. (-3553) (SQLExecDirectW)')
Run Code Online (Sandbox Code Playgroud)

环境:Windows 7 64bit,Python 2.7 pyodbc-3.0.6.win-amd64-py2.7

python windows ms-access pyodbc

1
推荐指数
1
解决办法
629
查看次数

pyodbc和ms访问2010连接错误

如何使用pyodbc访问我的Microsoft Access 2010数据库(accdb)?以前,我使用了一个mdb数据库,它与连接字符串工作正常:

ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;' % ACCESS_DATABASE_FILE 
Run Code Online (Sandbox Code Playgroud)

现在我使用:

import pyodbc
ACCESS_DATABASE_FILE = "PSA_TEST.accdb"
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % ACCESS_DATABASE_FILE
conn = pyodbc.connect(ODBC_CONN_STR)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:pyodbc.Error:('HY000','[HY000] [Microsoft] [ODBC-Treiber for Microsoft Access]KeinzulässigerDateniname.( - 1044)(SQLDriverConnect)')

这意味着"文件名是不可接受的".我发现了一个相关的问题,但答案对我不起作用(使用pyodbc连接到MS Access 2007(.accdb)数据库).我根据输出使用32位python:

python -c 'import struct; print struct.calcsize("P") * 8'
Run Code Online (Sandbox Code Playgroud)

和MS Access 32位.

[编辑]

  • 为了以防万一,我检查os.path.isfile(ACCESS_DATABASE_FILE)文件实际存在
  • 可以使用Access打开该文件
  • 使用新连接字符串打开上一个mdb文件会给出相同的错误消息,其中afaik不是预期的行为

python ms-access pyodbc

1
推荐指数
1
解决办法
4960
查看次数

如何与功能连接Pyodbc?

我遇到的问题是,在使用函数启动程序时无法连接到数据库.如果我没有用函数启动它,它可以正常工作.我的程序从serverlist.txt中获取计算机名称并在数据库中查找它.然后它给我一台该计算机的"位置ID".

这个版本有效:

import os
import shutil
import fileinput
import pypyodbc

def replaceid(servername):
    try:
        cursor = connection.cursor()

        SQLCommand = ("SELECT Name, Location_ID "
            "FROM dbo.I_Location "   # table name
            "with (nolock)"
            "WHERE Name = ?")
        Values = [servername]
        cursor.execute(SQLCommand,Values)
        results = cursor.fetchone()
        if results:

            print (" Name: " + results[0] + " Location ID: " + str(results[1]))
            print (" ")
        else:
            print (" Location ID for " + servername + " does not exist.")
            print (" ")
            connection.close()
    except:
        print("Database is …
Run Code Online (Sandbox Code Playgroud)

python sql-server pyodbc

1
推荐指数
1
解决办法
783
查看次数

使用django连接到旧的informix数据库

我正在尝试使用Django连接到现有的Informix数据库,我使用django-pyodbc-azure通过odbc处理连接,在python解释器中尝试时连接工作正常:

>>>import pyodbc 
>>>conn = pyodbc.connect('DSN=test_ifx;UID=test;PWD=test')
>>>curs = conn.cursor()
>>>curs.execute("select * from someTable")
<pyodbc.Cursor object at 0x0052E520>
Run Code Online (Sandbox Code Playgroud)

所以这项工作很好但是在django中我创建了这样的数据库连接参数:

DATABASES = {
    'default' : {
        'ENGINE' : 'sql_server.pyodbc',
        'NAME' : 'test',
        'USERNAME' : 'test',
        'PASSWORD' : 'test',
        'PORT' : '1260',
        'OPTIONS':{
            'dsn' : 'test_ifx'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我启动服务器时,我收到以下错误:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0353DED0>
Traceback (most recent call last):
  File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\base\base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sql_server\pyodbc\base.py", …
Run Code Online (Sandbox Code Playgroud)

django informix pyodbc django-pyodbc django-pyodbc-azure

1
推荐指数
1
解决办法
283
查看次数