日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python调用access数据库_Python3.7 pyodbc完美配置访问access数据库

發布時間:2024/1/1 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用access数据库_Python3.7 pyodbc完美配置访问access数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境 win2008 r2 64為系統

python3.7、pyodbc

安裝好python3.7以后,那么就需要安裝pyodbc了。

數據庫連接

數據庫連接網上大致有兩種方法,一種是使用pyodbc,另一種是使用win32com.client,測試了很多遍,最終只有pyodbc成功,而且比較好用,所以這里只介紹這種方法

工具庫安裝

在此基礎上安裝pyodbc工具庫,在cmd窗口執行如下語句安裝

pip install pyodbc

如果安裝了anaconda也可以使用conda install pyodbc

分享給大家供大家參考,具體如下:

檢驗是否可以正常連接數據庫檢查是否有一個Microsoft Access ODBC驅動程序可用于你的Python環境(在Windows上)的方法:

>>> import pyodbc

>>>[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

如果你看到一個空列表,那么您正在運行64位Python,并且需要安裝64位版本的“ACE”驅動程序。如果您只看到['Microsoft Access Driver (*.mdb)']并且需要使用.accdb文件,那么您需要安裝32位版本的“ACE”驅動程序

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驅動程序管理器] 未發

現數據源名稱并且未指定默認驅動程序 (0) (SQLDriverConnect)')

例如上面這樣的提示就需要安裝64位的ODBC 驅動器:

64位ODBC驅動器的下載地址 https://www.microsoft.com/en-us/download/details.aspx?id=13255

直接安裝會報錯,所以我們需要修改一下文件AccessDatabaseEngine_X64.exe,先對其進行解壓,然后打開AccessDatabaseEngine_X64文件夾,有一個AceRedist.msi文件。用Orca軟件將AceRedist.msi打開,找到找到LaunchCondition里面的BLOCKINSTALLATION,刪除那一行數據并進行保存。然后再運行AceRedist.msi,就可以把64位的ODBC 驅動器安裝成功。

如果感覺上面的操作比較麻煩,可以直接下載腳本之家小編已經處理過的版本。

注意:

下面是經過腳本之家小編測試過的代碼

access是2000的,理論上2010也可以。

import pyodbc

DBfile = r"F:\python\caiji.mdb" # 數據庫文件需要帶路徑

print(DBfile)

conn = pyodbc.connect(r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+ DBfile +";Uid=;Pwd=;")

cursor = conn.cursor()

SQL = "SELECT * from sites;"

for row in cursor.execute(SQL):

print(row)

cursor.close()

conn.close()

如果可以打印出結果

完整測試代碼

# -*-coding:utf-8-*-

import pyodbc

# 連接數據庫(不需要配置數據源),connect()函數創建并返回一個 Connection 對象

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\data\goods.mdb')

# cursor()使用該連接創建(并返回)一個游標或類游標的對象

crsr = cnxn.cursor()

# 打印數據庫goods.mdb中的所有表的表名

print('`````````````` goods ``````````````')

for table_info in crsr.tables(tableType='TABLE'):

print(table_info.table_name)

l = crsr.execute("SELECT * from goods WHERE goodsId='0001'")# [('0001', '扇葉', 20, 'A公司', 'B公司', 2000, 2009)]

rows = crsr.execute("SELECT currentStock from goods") # 返回的是一個元組

for item in rows:

print(item)

l = crsr.execute("UPDATE users SET username='lind' WHERE password='123456'")

print(crsr.rowcount) # 想知道數據修改和刪除時,到底影響了多少條記錄,這個時候你可以使用cursor.rowcount的返回值。

# 修改數據庫中int類型的值

value = 10

SQL = "UPDATE goods " \

"SET lowestStock=" + str(value) + " " \

"WHERE goodsId='0005'"

# 刪除表users

crsr.execute("DROP TABLE users")

# 創建新表 users

crsr.execute('CREATE TABLE users (login VARCHAR(8),userid INT, projid INT)')

# 給表中插入新數據

crsr.execute("INSERT INTO users VALUES('Linda',211,151)")

''''''

# 更新數據

crsr.execute("UPDATE users SET projid=1 WHERE userid=211")

# 刪除行數據

crsr.execute("DELETE FROM goods WHERE goodNum='0001'")

# 打印查詢的結果

for row in crsr.execute("SELECT * from users"):

print(row)

# 提交數據(只有提交之后,所有的操作才會對實際的物理表格產生影響)

crsr.commit()

crsr.close()

cnxn.close()

補充

# -*- coding: utf-8 -*-

# 功能:python連接access2010數據庫(.accdb)

import pyodbc

DBfile = r"C:\Users\lenovo\Desktop\test.accdb" # 數據庫文件

conn = pyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + DBfile + ";Uid=;Pwd=;")

cursor = conn.cursor()

SQL = "SELECT * from table1;"

for row in cursor.execute(SQL):

print row.col1

cursor.close()

注意:win7系統是64位,office安裝的是32位,AccessDatabaseEngine安裝的是32位。

在win7 64位系統打開ODBC數據源管理器:

要查看32位ODBC驅動:運行 C:/Windows/SysWOW64/odbcad32.exe

要查看64位ODBC驅動:運行 C:/WINDOWS/system32/odbcad32.exe或者控制面板—管理工具—數據源(ODBC)

如果只運行odbcad32.exe,則默認打開的是后者。

剩下的就需要你自行發揮了,腳本之家小編今天就先介紹到這了,后期我們會分享更多的資料

總結

以上是生活随笔為你收集整理的python调用access数据库_Python3.7 pyodbc完美配置访问access数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。