最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3.7 pyodbc完美配置訪問(wèn)access數(shù)據(jù)庫(kù)

 更新時(shí)間:2019年10月03日 23:04:35   投稿:mdxy-dxy  
最近小編需要學(xué)習(xí)python連接access數(shù)據(jù)庫(kù),發(fā)現(xiàn)很多朋友推薦pyodbc,那么這篇文章就先為大家介紹一下Python3.7下pyodbc的配置方法

環(huán)境 win2008 r2 64為系統(tǒng)

python3.7、pyodbc

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

數(shù)據(jù)庫(kù)連接

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

工具庫(kù)安裝

在此基礎(chǔ)上安裝pyodbc工具庫(kù),在cmd窗口執(zhí)行如下語(yǔ)句安裝

pip install pyodbc

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

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

檢驗(yàn)是否可以正常連接數(shù)據(jù)庫(kù)檢查是否有一個(gè)Microsoft Access ODBC驅(qū)動(dòng)程序可用于你的Python環(huán)境(在Windows上)的方法:

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

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

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驅(qū)動(dòng)程序管理器] 未發(fā)
現(xiàn)數(shù)據(jù)源名稱(chēng)并且未指定默認(rèn)驅(qū)動(dòng)程序 (0) (SQLDriverConnect)')

例如上面這樣的提示就需要安裝64位的ODBC 驅(qū)動(dòng)器:

64位ODBC驅(qū)動(dòng)器的下載地址 https://www.microsoft.com/en-us/download/details.aspx?id=13255
直接安裝會(huì)報(bào)錯(cuò),所以我們需要修改一下文件AccessDatabaseEngine_X64.exe,先對(duì)其進(jìn)行解壓,然后打開(kāi)AccessDatabaseEngine_X64文件夾,有一個(gè)AceRedist.msi文件。用Orca軟件將AceRedist.msi打開(kāi),找到找到LaunchCondition里面的BLOCKINSTALLATION,刪除那一行數(shù)據(jù)并進(jìn)行保存。然后再運(yùn)行AceRedist.msi,就可以把64位的ODBC 驅(qū)動(dòng)器安裝成功。

如果感覺(jué)上面的操作比較麻煩,可以直接下載腳本之家小編已經(jīng)處理過(guò)的版本。

下載地址:http://m.fzitv.net/softs/695978.html

注意:

1、不用配置數(shù)據(jù)源
2、Orcad的下載地址 http://m.fzitv.net/softs/16217.html

下面是經(jīng)過(guò)腳本之家小編測(cè)試過(guò)的代碼

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

import pyodbc 
 
DBfile = r"F:\python\caiji.mdb" # 數(shù)據(jù)庫(kù)文件需要帶路徑
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()

如果可以打印出結(jié)果

完整測(cè)試代碼

# -*-coding:utf-8-*-
import pyodbc
 
# 連接數(shù)據(jù)庫(kù)(不需要配置數(shù)據(jù)源),connect()函數(shù)創(chuàng)建并返回一個(gè) Connection 對(duì)象
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\data\goods.mdb')
# cursor()使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)或類(lèi)游標(biāo)的對(duì)象
crsr = cnxn.cursor()
 
# 打印數(shù)據(jù)庫(kù)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") # 返回的是一個(gè)元組
for item in rows:
 print(item)
 
l = crsr.execute("UPDATE users SET username='lind' WHERE password='123456'")
print(crsr.rowcount) # 想知道數(shù)據(jù)修改和刪除時(shí),到底影響了多少條記錄,這個(gè)時(shí)候你可以使用cursor.rowcount的返回值。
 
# 修改數(shù)據(jù)庫(kù)中int類(lèi)型的值
value = 10
SQL = "UPDATE goods " \
 "SET lowestStock=" + str(value) + " " \
 "WHERE goodsId='0005'"
 
# 刪除表users
crsr.execute("DROP TABLE users")
# 創(chuàng)建新表 users
crsr.execute('CREATE TABLE users (login VARCHAR(8),userid INT, projid INT)')
# 給表中插入新數(shù)據(jù)
crsr.execute("INSERT INTO users VALUES('Linda',211,151)")
 
''''''
# 更新數(shù)據(jù)
crsr.execute("UPDATE users SET projid=1 WHERE userid=211")
 
# 刪除行數(shù)據(jù)
crsr.execute("DELETE FROM goods WHERE goodNum='0001'")
 
# 打印查詢(xún)的結(jié)果
for row in crsr.execute("SELECT * from users"):
 print(row)
 
 
# 提交數(shù)據(jù)(只有提交之后,所有的操作才會(huì)對(duì)實(shí)際的物理表格產(chǎn)生影響)
crsr.commit()
crsr.close()
cnxn.close()

補(bǔ)充

# -*- coding: utf-8 -*-
# 功能:python連接access2010數(shù)據(jù)庫(kù)(.accdb)
 
import pyodbc
 
DBfile = r"C:\Users\lenovo\Desktop\test.accdb" # 數(shù)據(jù)庫(kù)文件
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系統(tǒng)是64位,office安裝的是32位,AccessDatabaseEngine安裝的是32位。

在win7 64位系統(tǒng)打開(kāi)ODBC數(shù)據(jù)源管理器:

    要查看32位ODBC驅(qū)動(dòng):運(yùn)行 C:/Windows/SysWOW64/odbcad32.exe

    要查看64位ODBC驅(qū)動(dòng):運(yùn)行 C:/WINDOWS/system32/odbcad32.exe或者控制面板—管理工具—數(shù)據(jù)源(ODBC)

    如果只運(yùn)行odbcad32.exe,則默認(rèn)打開(kāi)的是后者。

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

相關(guān)文章

  • Python從csv文件中讀取數(shù)據(jù)及提取數(shù)據(jù)的方法

    Python從csv文件中讀取數(shù)據(jù)及提取數(shù)據(jù)的方法

    這篇文章主要介紹了Python從csv文件中讀取數(shù)據(jù)并提取數(shù)據(jù)的方法,文中通過(guò)多種方法給大家講解獲取指定列的數(shù)據(jù),并存入一個(gè)數(shù)組中,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-11-11
  • Python txt文件如何轉(zhuǎn)換成字典

    Python txt文件如何轉(zhuǎn)換成字典

    這篇文章主要介紹了Python txt文件如何轉(zhuǎn)換成字典,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python中的變量及簡(jiǎn)單數(shù)據(jù)類(lèi)型應(yīng)用

    Python中的變量及簡(jiǎn)單數(shù)據(jù)類(lèi)型應(yīng)用

    這篇文章主要介紹了Python中的變量及簡(jiǎn)單數(shù)據(jù)類(lèi)型應(yīng)用,簡(jiǎn)單的數(shù)據(jù)類(lèi)型包括字符串和數(shù)字,更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python編程基礎(chǔ)之函數(shù)和模塊

    Python編程基礎(chǔ)之函數(shù)和模塊

    這篇文章主要為大家介紹了Python函數(shù)和模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • Python中yield關(guān)鍵字及與return的區(qū)別詳解

    Python中yield關(guān)鍵字及與return的區(qū)別詳解

    這篇文章主要介紹了Python中yield關(guān)鍵字及與return的區(qū)別詳解,帶有 yield 的函數(shù)在 Python 中被稱(chēng)之為 generator生成器,比如列表所有數(shù)據(jù)都在內(nèi)存中,如果有海量數(shù)據(jù)的話將會(huì)非常耗內(nèi)存,想要得到龐大的數(shù)據(jù),又想讓它占用空間少,那就用生成器,需要的朋友可以參考下
    2023-08-08
  • python三大器之迭代器、生成器、裝飾器

    python三大器之迭代器、生成器、裝飾器

    迭代是Python最強(qiáng)大的功能之一,是訪問(wèn)集合元素的一種方式;迭代器是一個(gè)可以記住遍歷的位置的對(duì)象,本文給大家介紹python三大器之迭代器、生成器、裝飾器的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • Python集合之set和frozenset的使用詳解

    Python集合之set和frozenset的使用詳解

    目前Python有兩種內(nèi)置集合類(lèi)型:set和frozenset,其中set?是可變的,而frozenset?是不可變的。本文將通過(guò)示例詳細(xì)講解二者的使用,感興趣的小伙伴可以了解一下
    2022-04-04
  • Python中match的具體使用

    Python中match的具體使用

    在Python 3.10中引入了一個(gè)match語(yǔ)句,其類(lèi)似于其他語(yǔ)言(eg:C,JAVA)中的switch或case語(yǔ)句,本文就來(lái)介紹一下Python中match的具體使用,感興趣的可以了解一下
    2023-11-11
  • Django框架視圖介紹與使用詳解

    Django框架視圖介紹與使用詳解

    這篇文章主要介紹了Django框架視圖介紹與使用,結(jié)合實(shí)例形式分析了Django框架視圖的功能、配置、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • Python四大模塊文件管理介紹

    Python四大模塊文件管理介紹

    我們可以使用python來(lái)操作文件,比如讀取文件內(nèi)容、寫(xiě)入新的內(nèi)容等,本文主要介紹了Python IO文件管理的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論

阿图什市| 龙陵县| 罗甸县| 莲花县| 深水埗区| 色达县| 镇沅| 剑阁县| 潼关县| 出国| 祁阳县| 大庆市| 富平县| 台南市| 特克斯县| 浙江省| 灌云县| 凤凰县| 西盟| 界首市| 江永县| 聊城市| 道孚县| 垫江县| 堆龙德庆县| 搜索| 阿鲁科尔沁旗| 延长县| 琼海市| 个旧市| 沙洋县| 沐川县| 北安市| 建德市| 蒲城县| 灵璧县| 乌苏市| 梁河县| 逊克县| 罗定市| 昌邑市|